From 8625181fffd3e0034950eef237dea60be5d9fe1c Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 23 Mar 2017 14:47:03 -0600 Subject: layers: Support viewport_array2 ext shader caps Recognize and validate shader capabilities added in the new VK_NV_viewport_array2 extension. Change-Id: Ifeb21d9230ca071a56246acc928add0a572b55f9 --- layers/core_validation.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 5d481a9d..374103bf 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -2541,6 +2541,12 @@ static bool validate_shader_capabilities(layer_data *dev_data, shader_module con VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME); break; + case spv::CapabilityShaderViewportIndexLayerNV: + case spv::CapabilityShaderViewportMaskNV: + pass &= require_extension(report_data, dev_data->device_extensions.nv_viewport_array2_enabled, + VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME); + break; + default: // Spirv-validator should catch these errors break; @@ -3854,6 +3860,8 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, dev_data->device_extensions.khr_maintenance1_enabled = false; dev_data->device_extensions.nv_geometry_shader_passthrough_enabled = false; dev_data->device_extensions.nv_sample_mask_override_coverage_enabled = false; + dev_data->device_extensions.nv_viewport_array2_enabled = false; + for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) { if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) { @@ -3880,6 +3888,9 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME) == 0) { dev_data->device_extensions.nv_sample_mask_override_coverage_enabled = true; } + if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME) == 0) { + dev_data->device_extensions.nv_viewport_array2_enabled = true; + } } } -- cgit v1.2.3