kk: Support attachment feedback loop extensions

Metal GPU image optimization is disabled for attachment feedback
usage since it causes some CTS flakes.

Reviewed-by: Aitor Camacho <aitor@lunarg.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41613>
This commit is contained in:
squidbus 2026-05-15 14:54:01 -07:00 committed by Marge Bot
parent 2a119991f6
commit f52f7bf8d5
3 changed files with 20 additions and 2 deletions

View file

@ -604,8 +604,8 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_acquire_drm_display DONE (anv, hk, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_acquire_xlib_display DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_astc_decode_mode DONE (panvk)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, lvp, panvk, radv, tu, vn)
VK_EXT_attachment_feedback_loop_layout DONE (anv, hk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_attachment_feedback_loop_dynamic_state DONE (anv, kk, lvp, panvk, radv, tu, vn)
VK_EXT_attachment_feedback_loop_layout DONE (anv, hk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
VK_EXT_blend_operation_advanced DONE (hk, lvp, vn)
VK_EXT_border_color_swizzle DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv/gfx10+, tu, v3dv, vn)
VK_EXT_buffer_device_address DONE (anv, dzn/sm6.6+, hasvk, hk, kk, nvk, panvk, radv, vn)

View file

@ -92,6 +92,16 @@ kk_image_layout_can_optimize(VkImageUsageFlags usage, VkImageTiling tiling,
!util_format_is_compressed(format))
return false;
/* Attachment feedback usage may produce incorrect results with
* optimization, causing flakes in CTS
*
* E.g. `dEQP-VK.pipeline.monolithic.attachment_feedback_loop_layout.sampler.
* attachment_feedback_loop_optimal.sampled_image.image_type.2d_unnormalized.
* format.d16_unorm_depth_read_write_different_areas_dynamic_bad_static`
*/
if (usage & VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT)
return false;
return true;
}

View file

@ -152,6 +152,8 @@ kk_get_device_extensions(const struct kk_instance *instance,
#endif
.KHR_workgroup_memory_explicit_layout = true,
.EXT_attachment_feedback_loop_layout = true,
.EXT_attachment_feedback_loop_dynamic_state = true,
.EXT_calibrated_timestamps = true,
.EXT_depth_clip_control = true,
.EXT_extended_dynamic_state3 = true,
@ -359,6 +361,12 @@ kk_get_device_features(
.formatA4R4G4B4 = true,
.formatA4B4G4R4 = true,
/* VK_EXT_attachment_feedback_loop_layout */
.attachmentFeedbackLoopLayout = true,
/* VK_EXT_attachment_feedback_loop_dynamic_state */
.attachmentFeedbackLoopDynamicState = true,
/* VK_EXT_depth_clip_control */
.depthClipControl = true,