Module: Mesa
Branch: main
Commit: 007ff4ea00c20b746123663b24a4f3af68775f2e
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=007ff4ea00c20b746123663b24a4f3af68775f2e

Author: David Rosca <now...@gmail.com>
Date:   Tue Oct 31 14:40:48 2023 +0100

radeonsi/uvd: Implement destroy_fence vfunc

Reviewed-by: Leo Liu <leo....@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25991>

---

 src/gallium/drivers/radeonsi/radeon_uvd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/radeonsi/radeon_uvd.c 
b/src/gallium/drivers/radeonsi/radeon_uvd.c
index dea67bf6466..dd203777df9 100644
--- a/src/gallium/drivers/radeonsi/radeon_uvd.c
+++ b/src/gallium/drivers/radeonsi/radeon_uvd.c
@@ -87,6 +87,14 @@ static int ruvd_dec_get_decoder_fence(struct 
pipe_video_codec *decoder,
    return dec->ws->fence_wait(dec->ws, fence, timeout);
 }
 
+static void ruvd_dec_destroy_fence(struct pipe_video_codec *decoder,
+                                   struct pipe_fence_handle *fence)
+{
+   struct ruvd_decoder *dec = (struct ruvd_decoder *)decoder;
+
+   dec->ws->fence_reference(&fence, NULL);
+}
+
 /* add a new set register command to the IB */
 static void set_reg(struct ruvd_decoder *dec, unsigned reg, uint32_t val)
 {
@@ -1251,6 +1259,7 @@ struct pipe_video_codec 
*si_common_uvd_create_decoder(struct pipe_context *conte
    dec->base.end_frame = ruvd_end_frame;
    dec->base.flush = ruvd_flush;
    dec->base.get_decoder_fence = ruvd_dec_get_decoder_fence;
+   dec->base.destroy_fence = ruvd_dec_destroy_fence;
 
    dec->stream_type = profile2stream_type(dec, sctx->family);
    dec->set_dtb = set_dtb;

Reply via email to