diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2022-02-11 11:17:49 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2022-02-24 14:56:50 -0800 |
commit | 95f87609de568cbcfbd98a18a2cde3e144423e45 (patch) | |
tree | a8eb947a65be8f8485b9703935431ecc70781739 | |
parent | 0fd825b4f4751825e9a953347d54c2336c3168a5 (diff) |
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 <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14978>
(cherry picked from commit aa3405e8123324b3d8173c709e6573d86570d99a)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/.pick_status.json b/.pick_status.json index f9f5ff17d32..5f55ec4246b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1111,7 +1111,7 @@ "description": "radv/winsys: fix initializing debug/perftest options if multiple instances", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, 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; } |