diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 4beb11c33ec..89f6b2cb8cf 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -1219,10 +1219,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