diff --git a/src/gallium/drivers/radeonsi/radeon_uvd.c b/src/gallium/drivers/radeonsi/radeon_uvd.c index 3a8361f7508..9fd94febba2 100644 --- a/src/gallium/drivers/radeonsi/radeon_uvd.c +++ b/src/gallium/drivers/radeonsi/radeon_uvd.c @@ -1194,7 +1194,7 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder, struct pipe_video_b FB_BUFFER_OFFSET + dec->fb_size, RADEON_USAGE_READ, RADEON_DOMAIN_GTT); set_reg(dec, dec->reg.cntl, 1); - flush(dec, PIPE_FLUSH_ASYNC, picture->fence); + flush(dec, picture->flush_flags, picture->fence); next_buffer(dec); } diff --git a/src/gallium/drivers/radeonsi/radeon_uvd_enc.c b/src/gallium/drivers/radeonsi/radeon_uvd_enc.c index 7c0984da2ae..93be78f46a6 100644 --- a/src/gallium/drivers/radeonsi/radeon_uvd_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_uvd_enc.c @@ -230,7 +230,7 @@ static void radeon_uvd_enc_end_frame(struct pipe_video_codec *encoder, struct pipe_picture_desc *picture) { struct radeon_uvd_encoder *enc = (struct radeon_uvd_encoder *)encoder; - flush(enc, PIPE_FLUSH_ASYNC); + flush(enc, picture->flush_flags); } static void radeon_uvd_enc_destroy(struct pipe_video_codec *encoder) diff --git a/src/gallium/drivers/radeonsi/radeon_vce.c b/src/gallium/drivers/radeonsi/radeon_vce.c index bf1e8878d94..2e5770964d9 100644 --- a/src/gallium/drivers/radeonsi/radeon_vce.c +++ b/src/gallium/drivers/radeonsi/radeon_vce.c @@ -310,7 +310,7 @@ static void rvce_end_frame(struct pipe_video_codec *encoder, struct pipe_video_b struct rvce_cpb_slot *slot = list_entry(enc->cpb_slots.prev, struct rvce_cpb_slot, list); if (!enc->dual_inst || enc->bs_idx > 1) - flush(enc, PIPE_FLUSH_ASYNC); + flush(enc, picture->flush_flags); /* update the CPB backtrack with the just encoded frame */ slot->picture_type = enc->pic.picture_type; diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c index 189f3de8074..20a21014642 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c @@ -2971,7 +2971,7 @@ static void radeon_dec_end_frame(struct pipe_video_codec *decoder, struct pipe_v return; dec->send_cmd(dec, target, picture); - flush(dec, PIPE_FLUSH_ASYNC, picture->fence); + flush(dec, picture->flush_flags, picture->fence); if (picture->fence) dec->ws->fence_reference(dec->ws, &dec->prev_fence, *picture->fence); next_buffer(dec); @@ -3000,7 +3000,7 @@ static void radeon_dec_jpeg_end_frame(struct pipe_video_codec *decoder, struct p if (dec->jpg.crop_y + dec->jpg.crop_height > pic->picture_parameter.picture_height) dec->jpg.crop_height = 0; dec->send_cmd(dec, target, picture); - dec->ws->cs_flush(&dec->jcs[dec->cb_idx], PIPE_FLUSH_ASYNC, NULL); + dec->ws->cs_flush(&dec->jcs[dec->cb_idx], picture->flush_flags, NULL); next_buffer(dec); dec->cb_idx = (dec->cb_idx+1) % dec->njctx; } diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index 23078c3bfa2..f905790fbae 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -1249,7 +1249,7 @@ static void radeon_enc_end_frame(struct pipe_video_codec *encoder, struct pipe_v struct pipe_picture_desc *picture) { struct radeon_encoder *enc = (struct radeon_encoder *)encoder; - flush(enc, PIPE_FLUSH_ASYNC); + flush(enc, picture->flush_flags); } static void radeon_enc_destroy(struct pipe_video_codec *encoder) diff --git a/src/gallium/drivers/radeonsi/si_vpe.c b/src/gallium/drivers/radeonsi/si_vpe.c index 0c3078ada2c..59d7192bb1e 100755 --- a/src/gallium/drivers/radeonsi/si_vpe.c +++ b/src/gallium/drivers/radeonsi/si_vpe.c @@ -997,7 +997,7 @@ si_vpe_processor_end_frame(struct pipe_video_codec *codec, struct pipe_fence_handle *process_fence = NULL; assert(codec); - vpeproc->ws->cs_flush(&vpeproc->cs, PIPE_FLUSH_ASYNC, &process_fence); + vpeproc->ws->cs_flush(&vpeproc->cs, picture->flush_flags, &process_fence); next_buffer(vpeproc); if (picture->fence && process_fence) {