aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2017-03-23 14:04:56 -0600
committerMark Lobodzinski <mark@lunarg.com>2017-03-29 10:58:32 -0600
commit91ff4bcb967ef7ba2916eaa086c82e67d7cc9b1f (patch)
tree06b806be736ecbfa2bf4b64ff6a72a3fa9e10561 /layers/core_validation.cpp
parentd6c275433a201cff516e7e93e387271a487d740a (diff)
downloadusermoji-91ff4bcb967ef7ba2916eaa086c82e67d7cc9b1f.tar.xz
layers: Support CapabilityGeometryShaderPassThroughNV
Recognize and validate shader capability added in the new VK_NV_geometry_shader_passthrough extension. Change-Id: Iea46b9a8d0c77b695507ac5f1c8f8852f528c210
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index f5928e48..4664c344 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -2531,6 +2531,11 @@ static bool validate_shader_capabilities(layer_data *dev_data, shader_module con
VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME);
break;
+ case spv::CapabilityGeometryShaderPassthroughNV:
+ pass &= require_extension(report_data, dev_data->device_extensions.nv_geometry_shader_passthrough_enabled,
+ VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME);
+ break;
+
default:
// Spirv-validator should catch these errors
break;
@@ -3842,6 +3847,7 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
dev_data->device_extensions.khr_descriptor_update_template_enabled = false;
dev_data->device_extensions.khr_shader_draw_parameters_enabled = false;
dev_data->device_extensions.khr_maintenance1_enabled = false;
+ dev_data->device_extensions.nv_geometry_shader_passthrough_enabled = false;
for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) {
@@ -3862,6 +3868,9 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo,
if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_MAINTENANCE1_EXTENSION_NAME) == 0) {
dev_data->device_extensions.khr_maintenance1_enabled = true;
}
+ if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME) == 0) {
+ dev_data->device_extensions.nv_geometry_shader_passthrough_enabled = true;
+ }
}
}