From ec9fcf97f4241ed0a967b7a31c769ec993535d83 Mon Sep 17 00:00:00 2001 From: TheJackiMonster Date: Fri, 13 Jan 2023 14:38:45 +0100 Subject: [PATCH] Fix Vulkan spec violation regarding requiredSubgroupSizeStages with subgroupSizeControl Signed-off-by: TheJackiMonster --- src/ffx-fsr2-api/vk/ffx_fsr2_vk.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ffx-fsr2-api/vk/ffx_fsr2_vk.cpp b/src/ffx-fsr2-api/vk/ffx_fsr2_vk.cpp index 4768708..cc12022 100644 --- a/src/ffx-fsr2-api/vk/ffx_fsr2_vk.cpp +++ b/src/ffx-fsr2-api/vk/ffx_fsr2_vk.cpp @@ -720,9 +720,11 @@ FfxErrorCode GetDeviceCapabilitiesVK(FfxFsr2Interface* backendInterface, FfxDevi deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; deviceProperties2.pNext = &subgroupSizeControlProperties; vkGetPhysicalDeviceProperties2(context->physicalDevice, &deviceProperties2); - - deviceCapabilities->waveLaneCountMin = subgroupSizeControlProperties.minSubgroupSize; - deviceCapabilities->waveLaneCountMax = subgroupSizeControlProperties.maxSubgroupSize; + + if (subgroupSizeControlProperties.requiredSubgroupSizeStages & VK_SHADER_STAGE_COMPUTE_BIT) { + deviceCapabilities->waveLaneCountMin = subgroupSizeControlProperties.minSubgroupSize; + deviceCapabilities->waveLaneCountMax = subgroupSizeControlProperties.maxSubgroupSize; + } } if (strcmp(backendContext->extensionProperties[i].extensionName, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME) == 0) {