diff options
author | Christian König <[email protected]> | 2017-01-16 15:04:47 +0100 |
---|---|---|
committer | Christian König <[email protected]> | 2017-03-13 08:51:29 +0100 |
commit | 88f34510832d4468fe887b6383d2006d9b85fb9b (patch) | |
tree | 621a9f179109f5a239ebb54b55390390c7f0437e /src/gallium/drivers/radeon/radeon_video.c | |
parent | 3e1e441aa05069e3eee906144cf96898e0b802e2 (diff) |
radeon/uvd: enable 10bit HEVC decode v2
Just use whatever the state tracker allocated.
v2: fix msb mode
Signed-off-by: Christian König <[email protected]>
Reviewed-by: Mark Thompson <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon/radeon_video.c')
-rw-r--r-- | src/gallium/drivers/radeon/radeon_video.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeon/radeon_video.c b/src/gallium/drivers/radeon/radeon_video.c index ecafaf8b546..605a2c74ecf 100644 --- a/src/gallium/drivers/radeon/radeon_video.c +++ b/src/gallium/drivers/radeon/radeon_video.c @@ -279,7 +279,11 @@ int rvid_get_video_param(struct pipe_screen *screen, case PIPE_VIDEO_CAP_MAX_HEIGHT: return (rscreen->family < CHIP_TONGA) ? 1152 : 4096; case PIPE_VIDEO_CAP_PREFERED_FORMAT: - return PIPE_FORMAT_NV12; + if (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10) + return PIPE_FORMAT_P016; + else + return PIPE_FORMAT_NV12; + case PIPE_VIDEO_CAP_PREFERS_INTERLACED: case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED: if (rscreen->family < CHIP_PALM) { @@ -331,6 +335,11 @@ boolean rvid_is_format_supported(struct pipe_screen *screen, enum pipe_video_profile profile, enum pipe_video_entrypoint entrypoint) { + /* HEVC 10 bit decoding should use P016 instead of NV12 if possible */ + if (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10) + return (format == PIPE_FORMAT_NV12) || + (format == PIPE_FORMAT_P016); + /* we can only handle this one with UVD */ if (profile != PIPE_VIDEO_PROFILE_UNKNOWN) return format == PIPE_FORMAT_NV12; |