layers: Validate VK_NV_shader_subgroup_partitioned
Adds a shader capability check to make sure that the
VK_NV_shader_subgroup_partitioned extension is enabled when ever
an instruction requiring the GroupNonUniformPartitionedNV capability
is used.
More info about extension:
- https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/
vkspec.html#VK_NV_shader_subgroup_partitioned
- http://htmlpreview.github.io/?https://github.com/KhronosGroup/
SPIRV-Registry/blob/master/extensions/NV/
SPV_NV_shader_subgroup_partitioned.html
Change-Id: Ia5f4e2540fb431e27a879726cc4993f5cea4b7cf
diff --git a/layers/shader_validation.cpp b/layers/shader_validation.cpp
index f8f52b5..83b649c 100644
--- a/layers/shader_validation.cpp
+++ b/layers/shader_validation.cpp
@@ -1614,6 +1614,7 @@
{spv::CapabilityShaderViewportMaskNV, {VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_nv_viewport_array2}},
{spv::CapabilitySubgroupBallotKHR, {VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_ext_shader_subgroup_ballot }},
{spv::CapabilitySubgroupVoteKHR, {VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_ext_shader_subgroup_vote }},
+ {spv::CapabilityGroupNonUniformPartitionedNV, {VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_nv_shader_subgroup_partitioned}},
{spv::CapabilityInt64Atomics, {VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_khr_shader_atomic_int64 }},
{spv::CapabilityStorageBuffer8BitAccess , {"VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}},