diff options
author | Boyuan Zhang <[email protected]> | 2018-10-17 15:03:21 -0400 |
---|---|---|
committer | Leo Liu <[email protected]> | 2018-10-23 08:50:02 -0400 |
commit | 4f1f128f8e6848aa87efc67799199a099103876b (patch) | |
tree | cde3e0084db0b50347f4e63788edda9e57cd7a86 /src/gallium | |
parent | f7116e4ff852c1a1a524195a21b98e624e95bd0e (diff) |
radeon/vcn: create cs based on ring type
Add RING_VCN_JPEG for VCN Jpeg decode, and keep RING_VCN_DEC for other codecs.
Signed-off-by: Boyuan Zhang <[email protected]>
Reviewed-by: Leo Liu <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/radeon/radeon_vcn_dec.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/radeon_vcn_dec.c b/src/gallium/drivers/radeon/radeon_vcn_dec.c index fbfef6d2736..26ea1f82ff9 100644 --- a/src/gallium/drivers/radeon/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeon/radeon_vcn_dec.c @@ -1433,7 +1433,7 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context, struct si_context *sctx = (struct si_context*)context; struct radeon_winsys *ws = sctx->ws; unsigned width = templ->width, height = templ->height; - unsigned dpb_size, bs_buf_size, stream_type = 0; + unsigned dpb_size, bs_buf_size, stream_type = 0, ring = RING_VCN_DEC; struct radeon_decoder *dec; int r, i; @@ -1462,6 +1462,10 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context, case PIPE_VIDEO_FORMAT_VP9: stream_type = RDECODE_CODEC_VP9; break; + case PIPE_VIDEO_FORMAT_JPEG: + stream_type = RDECODE_CODEC_JPEG; + ring = RING_VCN_JPEG; + break; default: assert(0); break; @@ -1488,7 +1492,7 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context, dec->stream_handle = si_vid_alloc_stream_handle(); dec->screen = context->screen; dec->ws = ws; - dec->cs = ws->cs_create(sctx->ctx, RING_VCN_DEC, NULL, NULL); + dec->cs = ws->cs_create(sctx->ctx, ring, NULL, NULL); if (!dec->cs) { RVID_ERR("Can't get command submission context.\n"); goto error; |