diff --git a/docs/features.txt b/docs/features.txt index 653a547d10b..19955a80c51 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -454,7 +454,7 @@ Vulkan 1.2 -- all DONE: anv, vn VK_KHR_image_format_list DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, tu, v3dv, vn) VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu, v3dv, vn) - VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn, tu) + VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn, v3dv, tu) VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv, vn) VK_KHR_shader_float16_int8 DONE (anv/gen8+, lvp, radv, tu, vn) VK_KHR_shader_float_controls DONE (anv/gen8+, lvp, radv, tu, vn) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index c5e52fd48e2..70e5958222b 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -137,6 +137,7 @@ get_device_extensions(const struct v3dv_physical_device *device, .KHR_maintenance2 = true, .KHR_maintenance3 = true, .KHR_multiview = true, + .KHR_separate_depth_stencil_layouts = true, .KHR_shader_non_semantic_info = true, .KHR_sampler_mirror_clamp_to_edge = true, .KHR_storage_buffer_storage_class = true, @@ -1169,6 +1170,21 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, * not lead to best performance so let's just not support it. */ .scalarBlockLayout = false, + /* This tells applications 2 things: + * + * 1. If they can select just one aspect for barriers. For us barriers + * decide if we need to split a job and we don't care if it is only + * for one of the aspects of the image or both, so we don't really + * benefit from seeing barriers that select just one aspect. + * + * 2. If they can program different layouts for each aspect. We + * generally don't care about layouts, so again, we don't get any + * benefits from this to limit the scope of image layout transitions. + * + * Since we cannot offer any advantages to applications that use separate + * layouts for D/S, don't expose the feature. + */ + .separateDepthStencilLayouts = false, .storageBuffer8BitAccess = true, .storagePushConstant8 = true, .imagelessFramebuffer = true,