radv: implement VK_EXT_attachment_feedback_loop_layout

This extension introduces a new layout which allows applications
to both render and sample from the same image inside the same draw
(aka. feedback loops).

Previously, the GENERAL layout was used and this introduced some
rendering artifacts because the hw can't read&write DCC/HTILE for
the same image, and we try to keep it compressed on GFX10+.

This helps fixing corruption with D3D9 and RPCS3 games which
are candidate for feedback loops.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4411
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17883>
This commit is contained in:
Samuel Pitoiset
2021-03-11 13:58:35 +01:00
committed by Mike Blumenkrantz
parent 38d6ae933d
commit f8bdbbdd90
3 changed files with 20 additions and 0 deletions

View File

@@ -14,3 +14,4 @@ VK_EXT_multisampled_render_to_single_sampled on lavapipe
VK_EXT_shader_subgroup_vote/ballot on lavapipe
EGL_KHR_context_flush_control for all drivers
GLX_ARB_context_flush_control for all drivers
VK_EXT_attachment_feedback_loop_layout on RADV