diff --git a/docs/features.txt b/docs/features.txt index c5987895f16..b0104467874 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -419,7 +419,7 @@ Vulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn - VK_KHR_16bit_storage DONE (anv/gen8+, lvp, radv, tu/a650, vn) + VK_KHR_16bit_storage DONE (anv/gen8+, lvp, radv, tu/a650, v3dv, vn) VK_KHR_bind_memory2 DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_dedicated_allocation DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_descriptor_update_template DONE (anv, lvp, radv, tu, v3dv, vn) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 3b6a7aadcaf..d71d354ae52 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -116,6 +116,7 @@ get_device_extensions(const struct v3dv_physical_device *device, struct vk_device_extension_table *ext) { *ext = (struct vk_device_extension_table) { + .KHR_16bit_storage = true, .KHR_bind_memory2 = true, .KHR_copy_commands2 = true, .KHR_create_renderpass2 = true, @@ -1082,8 +1083,8 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, v3dv_GetPhysicalDeviceFeatures(physicalDevice, &pFeatures->features); VkPhysicalDeviceVulkan11Features vk11 = { - .storageBuffer16BitAccess = false, - .uniformAndStorageBuffer16BitAccess = false, + .storageBuffer16BitAccess = true, + .uniformAndStorageBuffer16BitAccess = true, .storagePushConstant16 = false, .storageInputOutput16 = false, .multiview = true, diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 10694cc180d..f39d0464328 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -180,6 +180,7 @@ static const struct spirv_to_nir_options default_spirv_options = { .caps = { .device_group = true, .multiview = true, + .storage_16bit = true, .subgroup_basic = true, .variable_pointers = true, },