radeonsi/vcn: enable RGBP format on gfx940 jpeg
decode output format conversion to RGBP is supported on gfx940 jpeg. Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com> Reviewed-by: Leo Liu <leo.liu@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22388>
This commit is contained in:

committed by
Marge Bot

parent
bdb7f36aa8
commit
87a44c44b4
@@ -51,6 +51,7 @@ static struct pb_buffer *radeon_jpeg_get_decode_param(struct radeon_decoder *dec
|
||||
case PIPE_FORMAT_IYUV:
|
||||
case PIPE_FORMAT_YV12:
|
||||
case PIPE_FORMAT_Y8_U8_V8_444_UNORM:
|
||||
case PIPE_FORMAT_R8_G8_B8_UNORM:
|
||||
chromav = (struct si_texture *)((struct vl_video_buffer *)target)->resources[2];
|
||||
dec->jpg.dt_chromav_top_offset = chromav->surface.u.gfx9.surf_offset;
|
||||
chroma = (struct si_texture *)((struct vl_video_buffer*)target)->resources[1];
|
||||
@@ -252,16 +253,20 @@ static void send_cmd_target_direct(struct radeon_decoder *dec, struct pb_buffer
|
||||
uint32_t fc_sps_info_val = 0;
|
||||
|
||||
switch (buffer_format) {
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
format_convert = true;
|
||||
fc_sps_info_val = 1 | (1 << 4) | (0xff << 8);
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
format_convert = true;
|
||||
fc_sps_info_val = 1 | (1 << 4) | (1 << 5) | (0xff << 8);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
format_convert = true;
|
||||
fc_sps_info_val = 1 | (1 << 4) | (0xff << 8);
|
||||
break;
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
format_convert = true;
|
||||
fc_sps_info_val = 1 | (1 << 4) | (1 << 5) | (0xff << 8);
|
||||
break;
|
||||
case PIPE_FORMAT_R8_G8_B8_UNORM:
|
||||
format_convert = true;
|
||||
fc_sps_info_val = 1 | (1 << 5) | (0xff << 8);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (dec->jpg_reg.version == RDECODE_JPEG_REG_VER_V3 && format_convert) {
|
||||
|
@@ -906,6 +906,7 @@ static bool si_vid_is_format_supported(struct pipe_screen *screen, enum pipe_for
|
||||
return false;
|
||||
case PIPE_FORMAT_R8G8B8A8_UNORM:
|
||||
case PIPE_FORMAT_A8R8G8B8_UNORM:
|
||||
case PIPE_FORMAT_R8_G8_B8_UNORM:
|
||||
if (sscreen->info.family == CHIP_GFX940)
|
||||
return true;
|
||||
else
|
||||
|
Reference in New Issue
Block a user