aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-03-23 14:47:03 -0600
committerMark Lobodzinski <mark@lunarg.com>2017-03-29 10:58:32 -0600
commit8625181fffd3e0034950eef237dea60be5d9fe1c (patch)
treec16480f95fe5025e501b8e1879fabf55bcb39eee /layers/core_validation.cpp
parented38fe2ab23cc761d78da1a7b3ece92ae87351a9 (diff)
downloadusermoji-8625181fffd3e0034950eef237dea60be5d9fe1c.tar.xz
layers: Support viewport_array2 ext shader caps
Recognize and validate shader capabilities added in the new VK_NV_viewport_array2 extension. Change-Id: Ifeb21d9230ca071a56246acc928add0a572b55f9
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp11
1 files changed, 11 insertions, 0 deletions
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;
+ }
}
}