On Sat, 8 Jun 2019 at 02:15, Alyssa Rosenzweig <[email protected]> wrote: > > Now that we support custom strides on mipmapped lines textures > (theoretically, at least), extend the stride check to support mipmaps. > Fixes incorrect strides of linear windows in Weston. > > Signed-off-by: Alyssa Rosenzweig <[email protected]>
Looks good too me! Reviewed-by: Tomeu Vizoso <[email protected]> Thanks, Tomeu > --- > src/gallium/drivers/panfrost/pan_context.c | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/src/gallium/drivers/panfrost/pan_context.c > b/src/gallium/drivers/panfrost/pan_context.c > index 90f60f35581..c5e49805872 100644 > --- a/src/gallium/drivers/panfrost/pan_context.c > +++ b/src/gallium/drivers/panfrost/pan_context.c > @@ -2002,15 +2002,23 @@ panfrost_create_sampler_view( > > /* Check if we need to set a custom stride by computing the > "expected" > * stride and comparing it to what the BO actually wants. Only > applies > - * to linear textures TODO: Mipmap? */ > + * to linear textures, since tiled/compressed textures have strict > + * alignment requirements for their strides as it is */ > > - unsigned actual_stride = prsrc->bo->slices[0].stride; > + unsigned first_level = template->u.tex.first_level; > + unsigned last_level = template->u.tex.last_level; > > - if (prsrc->bo->layout == PAN_LINEAR && > - template->u.tex.last_level == 0 && > - template->u.tex.first_level == 0 && > - (texture->width0 * bytes_per_pixel) != actual_stride) { > - usage2_layout |= MALI_TEX_MANUAL_STRIDE; > + if (prsrc->bo->layout == PAN_LINEAR) { > + for (unsigned l = first_level; l <= last_level; ++l) { > + unsigned actual_stride = prsrc->bo->slices[l].stride; > + unsigned width = u_minify(texture->width0, l); > + unsigned comp_stride = width * bytes_per_pixel; > + > + if (comp_stride != actual_stride) { > + usage2_layout |= MALI_TEX_MANUAL_STRIDE; > + break; > + } > + } > } > > struct mali_texture_descriptor texture_descriptor = { > -- > 2.20.1 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
