Message ID | 20220427135517.381959-1-benjamin.gaignard@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: hantro: HEVC: Fix tile info buffer value computation | expand |
On Wed, Apr 27, 2022 at 03:55:17PM +0200, Benjamin Gaignard wrote: > Use pps->column_width_minus1[j] + 1 as value for the tile info buffer > instead of pps->column_width_minus1[j + 1]. > The patch fix DBLK_E_VIXS_2, DBLK_F_VIXS_2, DBLK_G_VIXS_2, > SAO_B_MediaTek_5, TILES_A_Cisco_2 and TILES_B_Cisco_1 tests in fluster. > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> Fixes: cb5dd5a0fa51 ("media: hantro: Introduce G2/HEVC decoder") > --- > drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c > index bb512389c1a5..ffeb2fbeefd2 100644 > --- a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c > +++ b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c > @@ -74,7 +74,7 @@ static void prepare_tile_info_buffer(struct hantro_ctx *ctx) > no_chroma = 1; > for (j = 0, tmp_w = 0; j < num_tile_cols - 1; j++) { ^^^^ Is this "- 1" still required? I would have assumed the "- 1" here was connected with the [j + 1]. What is stored in the last element of the ->column_width_minus1 array? > tmp_w += pps->column_width_minus1[j] + 1; > - *p++ = pps->column_width_minus1[j + 1]; ^^^^^ > + *p++ = pps->column_width_minus1[j] + 1; > *p++ = h; > if (i == 0 && h == 1 && ctb_size == 16) > no_chroma = 1; regards, dan carpenter
Hey Benjamin, On 27.04.2022 15:55, Benjamin Gaignard wrote: >Use pps->column_width_minus1[j] + 1 as value for the tile info buffer >instead of pps->column_width_minus1[j + 1]. >The patch fix DBLK_E_VIXS_2, DBLK_F_VIXS_2, DBLK_G_VIXS_2, s/fix/fixes/ Greetings, Sebastian >SAO_B_MediaTek_5, TILES_A_Cisco_2 and TILES_B_Cisco_1 tests in fluster. > >Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> >--- > drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >index bb512389c1a5..ffeb2fbeefd2 100644 >--- a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >+++ b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >@@ -74,7 +74,7 @@ static void prepare_tile_info_buffer(struct hantro_ctx *ctx) > no_chroma = 1; > for (j = 0, tmp_w = 0; j < num_tile_cols - 1; j++) { > tmp_w += pps->column_width_minus1[j] + 1; >- *p++ = pps->column_width_minus1[j + 1]; >+ *p++ = pps->column_width_minus1[j] + 1; > *p++ = h; > if (i == 0 && h == 1 && ctb_size == 16) > no_chroma = 1; >-- >2.32.0 >
Le 27/04/2022 à 16:22, Dan Carpenter a écrit : > On Wed, Apr 27, 2022 at 03:55:17PM +0200, Benjamin Gaignard wrote: >> Use pps->column_width_minus1[j] + 1 as value for the tile info buffer >> instead of pps->column_width_minus1[j + 1]. >> The patch fix DBLK_E_VIXS_2, DBLK_F_VIXS_2, DBLK_G_VIXS_2, >> SAO_B_MediaTek_5, TILES_A_Cisco_2 and TILES_B_Cisco_1 tests in fluster. >> >> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> > Fixes: cb5dd5a0fa51 ("media: hantro: Introduce G2/HEVC decoder") > >> --- >> drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> index bb512389c1a5..ffeb2fbeefd2 100644 >> --- a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> +++ b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c >> @@ -74,7 +74,7 @@ static void prepare_tile_info_buffer(struct hantro_ctx *ctx) >> no_chroma = 1; >> for (j = 0, tmp_w = 0; j < num_tile_cols - 1; j++) { > ^^^^ > Is this "- 1" still required? I would have assumed the "- 1" here was > connected with the [j + 1]. What is stored in the last element of the > ->column_width_minus1 array? No "- 1" comes from the definition of the field in H.265 which is pps->num_tile_columns_minus1 We add 1 to fill the registers so we need the "- 1" in the loop. Data ordering isn't documented anywhere so that part is directly inspired by Hantro/G2 proprietary stack. Regards, Benjamin > >> tmp_w += pps->column_width_minus1[j] + 1; >> - *p++ = pps->column_width_minus1[j + 1]; > ^^^^^ > >> + *p++ = pps->column_width_minus1[j] + 1; >> *p++ = h; >> if (i == 0 && h == 1 && ctb_size == 16) >> no_chroma = 1; > regards, > dan carpenter
diff --git a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c index bb512389c1a5..ffeb2fbeefd2 100644 --- a/drivers/staging/media/hantro/hantro_g2_hevc_dec.c +++ b/drivers/staging/media/hantro/hantro_g2_hevc_dec.c @@ -74,7 +74,7 @@ static void prepare_tile_info_buffer(struct hantro_ctx *ctx) no_chroma = 1; for (j = 0, tmp_w = 0; j < num_tile_cols - 1; j++) { tmp_w += pps->column_width_minus1[j] + 1; - *p++ = pps->column_width_minus1[j + 1]; + *p++ = pps->column_width_minus1[j] + 1; *p++ = h; if (i == 0 && h == 1 && ctb_size == 16) no_chroma = 1;
Use pps->column_width_minus1[j] + 1 as value for the tile info buffer instead of pps->column_width_minus1[j + 1]. The patch fix DBLK_E_VIXS_2, DBLK_F_VIXS_2, DBLK_G_VIXS_2, SAO_B_MediaTek_5, TILES_A_Cisco_2 and TILES_B_Cisco_1 tests in fluster. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> --- drivers/staging/media/hantro/hantro_g2_hevc_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)