layers: Added VK_NV_viewport_swizzle
Added support for VK_NV_viewport_swizzle to the
validation layers.
diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp
index cfb82a3..87346fb 100644
--- a/layers/parameter_validation_utils.cpp
+++ b/layers/parameter_validation_utils.cpp
@@ -1190,6 +1190,8 @@
pCreateInfos[i].pViewportState->pNext);
auto coarse_sample_order_struct = lvl_find_in_chain<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV>(
pCreateInfos[i].pViewportState->pNext);
+ const auto vp_swizzle_struct =
+ lvl_find_in_chain<VkPipelineViewportSwizzleStateCreateInfoNV>(pCreateInfos[i].pViewportState->pNext);
if (!physical_device_features.multiViewport) {
if (viewport_state.viewportCount != 1) {
@@ -1360,6 +1362,17 @@
i, i);
}
+ if (vp_swizzle_struct) {
+ if (vp_swizzle_struct->viewportCount != viewport_state.viewportCount) {
+ skip |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
+ VK_NULL_HANDLE, "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215",
+ "vkCreateGraphicsPipelines: The viewport swizzle state vieport count of %" PRIu32
+ " does "
+ "not match the viewport count of %" PRIu32 " in VkPipelineViewportStateCreateInfo.",
+ vp_swizzle_struct->viewportCount, viewport_state.viewportCount);
+ }
+ }
+
// validate the VkViewports
if (!has_dynamic_viewport && viewport_state.pViewports) {
for (uint32_t viewport_i = 0; viewport_i < viewport_state.viewportCount; ++viewport_i) {