Module: Mesa Branch: main Commit: aa3405e8123324b3d8173c709e6573d86570d99a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa3405e8123324b3d8173c709e6573d86570d99a
Author: Samuel Pitoiset <[email protected]> Date: Fri Feb 11 11:17:49 2022 +0100 radv/winsys: fix initializing debug/perftest options if multiple instances Since the winsys uses refcount, options like RADV_DEBUG_ZERO_VRAM might have not been initialized if the first instance wasn't created with application info. This fixes missing zerovram for vkd3d-proton. Cc: 21.3 22.0 mesa-stable Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14978> --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c index 122447b4055..847a5091b42 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c @@ -217,6 +217,20 @@ radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags, if (ws) { simple_mtx_unlock(&winsys_creation_mutex); amdgpu_device_deinitialize(dev); + + /* Check that options don't differ from the existing winsys. */ + if (((debug_flags & RADV_DEBUG_ALL_BOS) && !ws->debug_all_bos) || + ((debug_flags & RADV_DEBUG_HANG) && !ws->debug_log_bos) || + ((debug_flags & RADV_DEBUG_NO_IBS) && ws->use_ib_bos) || + (perftest_flags != ws->perftest)) { + fprintf(stderr, "amdgpu: Found options that differ from the existing winsys.\n"); + return NULL; + } + + /* RADV_DEBUG_ZERO_VRAM is the only option that is allowed to be set again. */ + if (debug_flags & RADV_DEBUG_ZERO_VRAM) + ws->zero_all_vram_allocs = true; + return &ws->base; }
