diff --git a/docs/features.txt b/docs/features.txt index dc4c330c6be..9b267001380 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -461,7 +461,7 @@ Vulkan 1.2 -- all DONE: anv, vn VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv, vn) VK_KHR_spirv_1_4 DONE (anv, radv, tu, vn) VK_KHR_timeline_semaphore DONE (anv, lvp, radv, tu, vn) - VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, v3dv, vn) + VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_vulkan_memory_model DONE (anv, radv, tu, vn) VK_EXT_descriptor_indexing DONE (anv/gen9+, radv, tu, vn) VK_EXT_host_query_reset DONE (anv, lvp, radv, tu, vn) diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index 9b136c75719..985447f3351 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -147,6 +147,7 @@ get_device_extensions(const struct tu_physical_device *device, .KHR_spirv_1_4 = true, .KHR_storage_buffer_storage_class = true, .KHR_swapchain = TU_HAS_SURFACE, + .KHR_uniform_buffer_standard_layout = true, .KHR_variable_pointers = true, .KHR_vulkan_memory_model = true, #ifndef TU_USE_KGSL @@ -643,6 +644,12 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->vertexAttributeInstanceRateZeroDivisor = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: { + VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR *features = + (VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR *)ext; + features->uniformBufferStandardLayout = true; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: { VkPhysicalDevicePrivateDataFeaturesEXT *features = (VkPhysicalDevicePrivateDataFeaturesEXT *)ext;