From: Mark Lobodzinski Date: Tue, 28 Mar 2017 20:09:16 +0000 (-0600) Subject: layers: Add shader_subgroup_vote ext shader caps X-Git-Tag: upstream/1.1.92~1379 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f856a0003d08aa9753eba13e1ea5fc84c249007;p=platform%2Fupstream%2FVulkan-Tools.git layers: Add shader_subgroup_vote ext shader caps Recognize and validate shader capabilities added in the new VK_KHR_shader_subgroup_vote extension. Change-Id: Ifbbcb1aa3b056707750c53d9a18965bfcae9028f --- diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index c4cba30..a2d5b3a 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -2552,6 +2552,11 @@ static bool validate_shader_capabilities(layer_data *dev_data, shader_module con VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME); break; + case spv::CapabilitySubgroupVoteKHR: + pass &= require_extension(report_data, dev_data->device_extensions.khr_subgroup_vote_enabled, + VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME); + break; + default: // Spirv-validator should catch these errors break; @@ -3867,7 +3872,7 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, dev_data->device_extensions.nv_sample_mask_override_coverage_enabled = false; dev_data->device_extensions.nv_viewport_array2_enabled = false; dev_data->device_extensions.khr_subgroup_ballot_enabled = false; - + dev_data->device_extensions.khr_subgroup_vote_enabled = false; for (i = 0; i < pCreateInfo->enabledExtensionCount; i++) { if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) { @@ -3900,6 +3905,10 @@ static void checkDeviceRegisterExtensions(const VkDeviceCreateInfo *pCreateInfo, if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME) == 0) { dev_data->device_extensions.khr_subgroup_ballot_enabled = true; } + if (strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME) == 0) { + dev_data->device_extensions.khr_subgroup_vote_enabled = true; + } + } } diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index 5dd0dbf..246040f 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -795,6 +795,8 @@ struct devExts { bool nv_sample_mask_override_coverage_enabled; bool nv_viewport_array2_enabled; bool khr_subgroup_ballot_enabled; + bool khr_subgroup_vote_enabled; + std::unordered_map> swapchainMap; std::unordered_map imageToSwapchainMap; };