diff --git a/src/vulkan/runtime/vk_physical_device.c b/src/vulkan/runtime/vk_physical_device.c index 83f358e112c..28349eb700f 100644 --- a/src/vulkan/runtime/vk_physical_device.c +++ b/src/vulkan/runtime/vk_physical_device.c @@ -325,3 +325,33 @@ vk_common_GetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice, return vk_outarray_status(&out); } + +VKAPI_ATTR VkDeviceSize VKAPI_CALL +vk_common_GetPhysicalDeviceDescriptorSizeEXT(VkPhysicalDevice physicalDevice, + VkDescriptorType descriptorType) +{ + VK_FROM_HANDLE(vk_physical_device, pdevice, physicalDevice); + + switch (descriptorType) { + case VK_DESCRIPTOR_TYPE_SAMPLER: + return pdevice->properties.samplerDescriptorSize; + + case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE: + case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: + case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: + case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: + case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM: + case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM: + return pdevice->properties.imageDescriptorSize; + + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: + case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: + return pdevice->properties.bufferDescriptorSize; + + default: + UNREACHABLE("Invalid descriptor type in GetPhysicalDeviceDescriptorSizeEXT"); + } +}