diff options
author | Boyuan Zhang <[email protected]> | 2015-11-12 18:01:16 -0500 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2015-11-29 17:58:34 +0000 |
commit | bb7a1ee11f818a279a0859fcd6bb6e361d21b5bf (patch) | |
tree | 479c6c677afa2b36702e20e6fa59e9055c2dba83 | |
parent | 7a41162b45fedff82d56b21c3eed533af5367bbf (diff) |
radeon/uvd: uv pitch separation for stoney
v2: set the behaviour default for future ASICs.
Signed-off-by: Boyuan Zhang <[email protected]>
Reviewed-by: Leo Liu <[email protected]>
Cc: [email protected]
(cherry picked from commit f55f134a033a61d67c2a71bbe57f85eb3484eec1)
-rw-r--r-- | src/gallium/drivers/radeon/radeon_uvd.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/radeon_uvd.h | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/radeon_uvd.c b/src/gallium/drivers/radeon/radeon_uvd.c index 0c643e5cd59..6ea07be72fe 100644 --- a/src/gallium/drivers/radeon/radeon_uvd.c +++ b/src/gallium/drivers/radeon/radeon_uvd.c @@ -958,6 +958,8 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder, dec->msg->body.decode.db_pitch = dec->base.width; dt = dec->set_dtb(dec->msg, (struct vl_video_buffer *)target); + if (((struct r600_common_screen*)dec->screen)->family >= CHIP_STONEY) + dec->msg->body.decode.dt_wa_chroma_top_offset = dec->msg->body.decode.dt_pitch / 2; switch (u_reduce_video_profile(picture->profile)) { case PIPE_VIDEO_FORMAT_MPEG4_AVC: diff --git a/src/gallium/drivers/radeon/radeon_uvd.h b/src/gallium/drivers/radeon/radeon_uvd.h index 9cc0a694c30..88013bd5653 100644 --- a/src/gallium/drivers/radeon/radeon_uvd.h +++ b/src/gallium/drivers/radeon/radeon_uvd.h @@ -394,7 +394,10 @@ struct ruvd_msg { uint32_t dt_chroma_top_offset; uint32_t dt_chroma_bottom_offset; uint32_t dt_surf_tile_config; - uint32_t dt_reserved[3]; + uint32_t dt_uv_surf_tile_config; + // re-use dt_wa_chroma_top_offset as dt_ext_info for UV pitch in stoney + uint32_t dt_wa_chroma_top_offset; + uint32_t dt_wa_chroma_bottom_offset; uint32_t reserved[16]; |