Module: Mesa Branch: main Commit: b9181c3218bbadfd272eeb94621f0bafaad63c77 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9181c3218bbadfd272eeb94621f0bafaad63c77
Author: Mike Blumenkrantz <[email protected]> Date: Tue Feb 7 16:34:49 2023 -0500 zink: set PIPE_CAP_VALIDATE_ALL_DIRTY_STATES failing to set this yields patterns like * bind fs * bind samplerviews * draw * bind fs2 * ~~unbind samplerviews~~ (eliminated) * draw the eliminated unbinding of samplerviews between draws also eliminates a descriptor update, triggering various artifacts in certain corner cases (like DOOM2016 shadows) it's possible to manage the updating during shader binding, but the detection is a bit more complex, and the cpu overhead from maintaining the current codepath with an extra pipe_context::set_sampler_views (et al) isn't high enough to warrant further investigation at this time fixes #8252 Fixes: 153af03b941 ("gallium: Add cap to request state validation for all dirty state") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21176> --- src/gallium/drivers/zink/zink_screen.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index b7f5399d7d2..0a7a12b47aa 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -528,6 +528,7 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_NATIVE_FENCE_FD: return screen->instance_info.have_KHR_external_semaphore_capabilities && screen->info.have_KHR_external_semaphore_fd; + case PIPE_CAP_VALIDATE_ALL_DIRTY_STATES: case PIPE_CAP_ALLOW_MAPPED_BUFFERS_DURING_EXECUTION: case PIPE_CAP_MAP_UNSYNCHRONIZED_THREAD_SAFE: case PIPE_CAP_SHAREABLE_SHADERS:
