d3d12: d3d12_create_fence_win32 - Fix double refcount bump
authorSil Vilerino <sivileri@microsoft.com>
Wed, 22 Nov 2023 03:06:08 +0000 (22:06 -0500)
committerEric Engestrom <eric@engestrom.ch>
Fri, 8 Dec 2023 11:12:51 +0000 (11:12 +0000)
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26456>
(cherry picked from commit d0103648410f75c1dae48283759d884e9fbf1190)

.pick_status.json
src/gallium/drivers/d3d12/d3d12_screen.cpp

index ce9fcb9..e5bb7c2 100644 (file)
         "description": "d3d12: d3d12_create_fence_win32 - Fix double refcount bump",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null,
         "notes": null
index 192d4d9..ee74cf2 100644 (file)
@@ -1189,10 +1189,9 @@ d3d12_get_node_mask(struct pipe_screen *pscreen)
 static void
 d3d12_create_fence_win32(struct pipe_screen *pscreen, struct pipe_fence_handle **pfence, void *handle, const void *name, enum pipe_fd_type type)
 {
-   d3d12_fence_reference((struct d3d12_fence **)pfence,
-                         type == PIPE_FD_TYPE_TIMELINE_SEMAPHORE ?
-                           d3d12_open_fence(d3d12_screen(pscreen), handle, name) :
-                           nullptr);
+   d3d12_fence_reference((struct d3d12_fence **)pfence, nullptr);
+   if(type == PIPE_FD_TYPE_TIMELINE_SEMAPHORE)
+      *pfence = (struct pipe_fence_handle*) d3d12_open_fence(d3d12_screen(pscreen), handle, name);
 }
 
 static void