mesa/src/gallium/drivers
Marek Olšák cdac733874 radeonsi: rewrite si_update_ps_colorbuf0_slot to fix crashes and recursions
I'm convinced that u_blitter interactions with fbfetch can't be handled
in si_update_ps_colorbuf0_slot alone, so it has to be force-disabled
by si_blitter_begin. Another reason why it has to be disabled for u_blitter
and not ignored is because FBFETCH with MSAA enables sample shading
regardless of context states, and we don't want that for u_blitter.

Also, si_update_ps_colorbuf0_slot now disables FBFETCH explicitly before
its own DCC and CMASK decompression because even though u_blitter can't do
anything (due to blitter_running), si_blitter_end calls it too.

The result is that no recursion can occur thanks to the blitter_running
and suppress_update_ps_colorbuf0_slot flags, and FBFETCH is always
force-disabled before those flags are set, which is the state we want
to be in.

Fixes: bc6d22b920 ("radeonsi: fix ps_uses_fbfetch value")

Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20318>
(cherry picked from commit 3632d39835)
2023-01-11 17:44:23 +00:00
..
asahi meson: add missing dependency 2023-01-11 17:44:21 +00:00
crocus intel: Fix a hang caused by invalid dispatch enables on gfx6/7 2023-01-01 17:07:04 +00:00
d3d12 d3d12: Don't crash when libd3d12.so can't be found 2022-12-14 20:47:00 +00:00
etnaviv etnaviv: blt: properly use upper half of clear value 2023-01-11 17:44:22 +00:00
freedreno freedreno/a6xx: Mark gl45 supported 2022-11-02 15:42:14 +00:00
i915 CI: convert to use the new S3 server instead of the legacy minio 2022-11-17 14:05:04 +00:00
iris iris: let isl set tiling mode for external resources 2023-01-11 17:44:22 +00:00
lima gallium: Default to PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT 2022-10-31 23:35:33 -04:00
llvmpipe Revert "glx: Fix drawable refcounting for naked Windows" 2022-11-30 21:12:43 +00:00
nouveau nv30: Fix an offset for vbos being applied to a buffer twice 2023-01-11 17:44:20 +00:00
panfrost panfrost: Use PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY 2022-11-17 14:05:04 +00:00
r300 r300: be more careful with presubtract and non-native swizzles 2022-12-29 19:25:29 +00:00
r600 r600/sfn: Don't try to re-use the iterator when uses is updated 2022-12-29 19:25:30 +00:00
radeonsi radeonsi: rewrite si_update_ps_colorbuf0_slot to fix crashes and recursions 2023-01-11 17:44:23 +00:00
softpipe Revert "glx: Fix drawable refcounting for naked Windows" 2022-11-30 21:12:43 +00:00
svga gallium: Default to PIPE_CAP_MIXED_COLORBUFFER_FORMATS 2022-10-19 18:06:51 +00:00
tegra gallium: fixup some inconsistent uses of enum pipe_shader_type. 2022-08-04 08:17:39 +00:00
v3d meson: add missing dependency 2023-01-11 17:44:21 +00:00
vc4 vc4: Fix running process_mux_deps on irrelevant type of instructions 2023-01-11 17:44:22 +00:00
virgl virgl: Use virgl host side shader stage IDs when reading caps 2023-01-11 17:44:21 +00:00
zink zink: stop using VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT 2023-01-11 17:44:22 +00:00