[Mesa-dev] [PATCH 2/4] radeon/uvd: move polaris fw check into radeon_video.c
Christian König
deathsimple at vodafone.de
Thu Jul 7 13:45:00 UTC 2016
Am 07.07.2016 um 15:33 schrieb Leo Liu:
>
>
> On 07/07/2016 05:57 AM, Christian König wrote:
>> From: Christian König <christian.koenig at amd.com>
>>
>> It's actually not very clever to claim to support H.264
>> and then fail to create a decoder.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>> src/gallium/drivers/radeon/radeon_uvd.c | 8 --------
>> src/gallium/drivers/radeon/radeon_video.c | 16 +++++++++++++---
>> 2 files changed, 13 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/gallium/drivers/radeon/radeon_uvd.c
>> b/src/gallium/drivers/radeon/radeon_uvd.c
>> index 7223417..52658fa 100644
>> --- a/src/gallium/drivers/radeon/radeon_uvd.c
>> +++ b/src/gallium/drivers/radeon/radeon_uvd.c
>> @@ -60,8 +60,6 @@
>> #define FB_BUFFER_SIZE_TONGA (2048 * 64)
>> #define IT_SCALING_TABLE_SIZE 992
>> -#define FW_1_66_16 ((1 << 24) | (66 << 16) | (16 << 8))
>> -
>> /* UVD decoder representation */
>> struct ruvd_decoder {
>> struct pipe_video_codec base;
>> @@ -1185,12 +1183,6 @@ struct pipe_video_codec
>> *ruvd_create_decoder(struct pipe_context *context,
>> height = align(height, VL_MACROBLOCK_HEIGHT);
>> break;
>> case PIPE_VIDEO_FORMAT_MPEG4_AVC:
>> - if ((info.family == CHIP_POLARIS10 || info.family ==
>> CHIP_POLARIS11) &&
>> - info.uvd_fw_version < FW_1_66_16 ) {
>> - RVID_ERR("POLARIS10/11 firmware version need to be
>> updated.\n");
>> - return NULL;
>> - }
>> -
>> width = align(width, VL_MACROBLOCK_WIDTH);
>> height = align(height, VL_MACROBLOCK_HEIGHT);
>> break;
>> diff --git a/src/gallium/drivers/radeon/radeon_video.c
>> b/src/gallium/drivers/radeon/radeon_video.c
>> index 69e4416..a26668b 100644
>> --- a/src/gallium/drivers/radeon/radeon_video.c
>> +++ b/src/gallium/drivers/radeon/radeon_video.c
>> @@ -43,6 +43,8 @@
>> #include "radeon_video.h"
>> #include "radeon_vce.h"
>> +#define FW_1_66_16 ((1 << 24) | (66 << 16) | (16 << 8))
>> +
>
> Please add "UVD_" in front of Macro, 'cause at radeon/video, we are
> dealing VCE as well.
> With that fixed, patch series are:
Good point, thanks for the review. Going to fix that and push the patches.
Christian.
> Reviewed-by: Leo Liu <leo.liu at amd.com>
>
> Regards,
> Leo
>
>
>> /* generate an stream handle */
>> unsigned rvid_alloc_stream_handle()
>> {
>> @@ -206,6 +208,9 @@ int rvid_get_video_param(struct pipe_screen *screen,
>> {
>> struct r600_common_screen *rscreen = (struct r600_common_screen
>> *)screen;
>> enum pipe_video_format codec = u_reduce_video_profile(profile);
>> + struct radeon_info info;
>> +
>> + rscreen->ws->query_info(rscreen->ws, &info);
>> if (entrypoint == PIPE_VIDEO_ENTRYPOINT_ENCODE) {
>> switch (param) {
>> @@ -239,10 +244,15 @@ int rvid_get_video_param(struct pipe_screen
>> *screen,
>> case PIPE_VIDEO_FORMAT_MPEG12:
>> return profile != PIPE_VIDEO_PROFILE_MPEG1;
>> case PIPE_VIDEO_FORMAT_MPEG4:
>> + /* no support for MPEG4 on older hw */
>> + return rscreen->family >= CHIP_PALM;
>> case PIPE_VIDEO_FORMAT_MPEG4_AVC:
>> - if (rscreen->family < CHIP_PALM)
>> - /* no support for MPEG4 */
>> - return codec != PIPE_VIDEO_FORMAT_MPEG4;
>> + if ((rscreen->family == CHIP_POLARIS10 ||
>> + rscreen->family == CHIP_POLARIS11) &&
>> + info.uvd_fw_version < FW_1_66_16 ) {
>> + RVID_ERR("POLARIS10/11 firmware version need to be
>> updated.\n");
>> + return false;
>> + }
>> return true;
>> case PIPE_VIDEO_FORMAT_VC1:
>> return true;
>
More information about the mesa-dev
mailing list