X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fradeonsi%2Fsi_fence.c;h=bb53ccba947869bb55de2d18fb4837885d35f120;hb=63b91f25bc451bc5b4c34d2129cb4d7dfc62513f;hp=7b4271a1e98ec58725be67bb12ea2bf6f3ab9496;hpb=4666f36c04826c902836d77022cb0120457e09c5;p=mesa.git diff --git a/src/gallium/drivers/radeonsi/si_fence.c b/src/gallium/drivers/radeonsi/si_fence.c index 7b4271a1e98..bb53ccba947 100644 --- a/src/gallium/drivers/radeonsi/si_fence.c +++ b/src/gallium/drivers/radeonsi/si_fence.c @@ -193,17 +193,17 @@ static void si_fence_reference(struct pipe_screen *screen, struct pipe_fence_handle *src) { struct radeon_winsys *ws = ((struct si_screen*)screen)->ws; - struct si_multi_fence **rdst = (struct si_multi_fence **)dst; - struct si_multi_fence *rsrc = (struct si_multi_fence *)src; - - if (pipe_reference(&(*rdst)->reference, &rsrc->reference)) { - ws->fence_reference(&(*rdst)->gfx, NULL); - ws->fence_reference(&(*rdst)->sdma, NULL); - tc_unflushed_batch_token_reference(&(*rdst)->tc_token, NULL); - si_resource_reference(&(*rdst)->fine.buf, NULL); - FREE(*rdst); + struct si_multi_fence **sdst = (struct si_multi_fence **)dst; + struct si_multi_fence *ssrc = (struct si_multi_fence *)src; + + if (pipe_reference(&(*sdst)->reference, &ssrc->reference)) { + ws->fence_reference(&(*sdst)->gfx, NULL); + ws->fence_reference(&(*sdst)->sdma, NULL); + tc_unflushed_batch_token_reference(&(*sdst)->tc_token, NULL); + si_resource_reference(&(*sdst)->fine.buf, NULL); + FREE(*sdst); } - *rdst = rsrc; + *sdst = ssrc; } static struct si_multi_fence *si_create_multi_fence()