Hi Guido, Am Dienstag, den 09.10.2018, 13:50 +0200 schrieb Guido Günther: > Hi, > On Mon, Sep 17, 2018 at 04:06:57PM +0200, Guido Günther wrote: > > etna_resource_alloc and etna_resource_from_handle currently use different > > checks. > > This leads to > > > > etna_resource_from_handle:492: target=2, > > format=PIPE_FORMAT_B8G8R8X8_UNORM, 1080x1920x1, array_size=1, last_level=0, > > nr_samples=0, usage=0, bind=8000a, flags=0 > > etna_resource_from_handle:541: BO stride 4320 is too small for RS engine > > width padding (4352, format PIPE_FORMAT_B8G8R8X8_UNORM) > > > > since etna_resource_from_handle wants to be aligned to a 16 byte > > boundary while the etna_resource_alloc does not. > > > > Adjust the two checks by using a common function. > > Ping?
Thanks, I've finally pushed this to Mesa master. Regards, Lucas > > > > Broken by baff59ebf07a114f95ad66d1f54e4b1f409eebee > > > > > > Signed-off-by: Guido Günther <guido.gunt...@puri.sm> > > --- > > .../drivers/etnaviv/etnaviv_resource.c | 19 +++++++++++++------ > > 1 file changed, 13 insertions(+), 6 deletions(-) > > > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c > > b/src/gallium/drivers/etnaviv/etnaviv_resource.c > > index 7fd374ae23d..f18c6ec6bfc 100644 > > --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c > > +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c > > @@ -176,6 +176,15 @@ setup_miptree(struct etna_resource *rsc, unsigned > > paddingX, unsigned paddingY, > > return size; > > } > > > > +/* Is rs alignment needed? */ > > +static bool is_rs_align(struct etna_screen *screen, > > + const struct pipe_resource *tmpl) > > +{ > > + return screen->specs.use_blt ? false : ( > > + VIV_FEATURE(screen, chipMinorFeatures1, TEXTURE_HALIGN) || > > + !etna_resource_sampler_only(tmpl)); > > +} > > + > > /* Create a new resource object, using the given template info */ > > struct pipe_resource * > > etna_resource_alloc(struct pipe_screen *pscreen, unsigned layout, > > @@ -217,11 +226,9 @@ etna_resource_alloc(struct pipe_screen *pscreen, > > unsigned layout, > > * resolve engine's width. If not, we must not align resources used > > * only for textures. If this GPU uses the BLT engine, never do RS > > align. > > */ > > - bool rs_align = screen->specs.use_blt ? false : ( > > - VIV_FEATURE(screen, chipMinorFeatures1, > > TEXTURE_HALIGN) || > > - !etna_resource_sampler_only(templat)); > > - etna_layout_multiple(layout, screen->specs.pixel_pipes, rs_align, > > &paddingX, > > - &paddingY, &halign); > > + etna_layout_multiple(layout, screen->specs.pixel_pipes, > > + is_rs_align (screen, templat), > > + &paddingX, &paddingY, &halign); > > assert(paddingX && paddingY); > > } else { > > /* Compressed textures are padded to their block size, but we don't > > have > > @@ -519,7 +526,7 @@ etna_resource_from_handle(struct pipe_screen *pscreen, > > /* Determine padding of the imported resource. */ > > unsigned paddingX = 0, paddingY = 0; > > etna_layout_multiple(rsc->layout, screen->specs.pixel_pipes, > > - VIV_FEATURE(screen, chipMinorFeatures1, > > TEXTURE_HALIGN), > > + is_rs_align(screen, tmpl), > > &paddingX, &paddingY, &rsc->halign); > > > > if (!screen->specs.use_blt) > > -- > > 2.18.0 > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ > etnaviv mailing list > etna...@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/etnaviv _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev