summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBoyuan Zhang <[email protected]>2018-10-17 15:03:21 -0400
committerLeo Liu <[email protected]>2018-10-23 08:50:02 -0400
commit4f1f128f8e6848aa87efc67799199a099103876b (patch)
treecde3e0084db0b50347f4e63788edda9e57cd7a86 /src
parentf7116e4ff852c1a1a524195a21b98e624e95bd0e (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')
-rw-r--r--src/gallium/drivers/radeon/radeon_vcn_dec.c8
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;