From: Dave Airlie Date: Wed, 14 Jun 2023 20:05:44 +0000 (+1000) Subject: gallium/va: fix superres av1 decoding. X-Git-Tag: upstream/23.3.3~5810 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=55d9ffc99ed03c903e2e33283384b3722d54023b;p=platform%2Fupstream%2Fmesa.git gallium/va: fix superres av1 decoding. On a superres sample, vulkan was decoding fine, but vaapi failed, fix the micols calculations. Reviewed-by: Ruijing Dong Part-of: --- diff --git a/src/gallium/frontends/va/picture_av1.c b/src/gallium/frontends/va/picture_av1.c index e642b3c..1f6a949 100644 --- a/src/gallium/frontends/va/picture_av1.c +++ b/src/gallium/frontends/va/picture_av1.c @@ -51,6 +51,12 @@ static void tile_info(vlVaContext *context, VADecPictureParameterBufferAV1 *av1) unsigned TileColsLog2 = util_logbase2_ceil(av1->tile_cols); unsigned TileRowsLog2 = util_logbase2_ceil(av1->tile_rows); + if (av1->pic_info_fields.bits.use_superres) { + unsigned width = ((av1->frame_width_minus1 + 1) * 8 + av1->superres_scale_denominator / 2) + / av1->superres_scale_denominator; + MiCols = 2 * (((width - 1) + 8) >> 3); + } + sbCols = (av1->seq_info_fields.fields.use_128x128_superblock) ? ((MiCols + 31) >> 5) : ((MiCols + 15) >> 4); sbRows = (av1->seq_info_fields.fields.use_128x128_superblock) ?