2017-06-23 17:50 GMT+02:00 Lucas Stach <l.st...@pengutronix.de>: > This fixes failures to import the scanout buffer with screen resolutions > that don't satisfy teh RS alignment restrictions, like 1680x1050. > > Signed-off-by: Lucas Stach <l.st...@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmei...@gmail.com> > --- > src/gallium/drivers/etnaviv/etnaviv_resource.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c > b/src/gallium/drivers/etnaviv/etnaviv_resource.c > index c6e7e98837b6..5cd20fafba49 100644 > --- a/src/gallium/drivers/etnaviv/etnaviv_resource.c > +++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c > @@ -215,9 +215,18 @@ etna_resource_alloc(struct pipe_screen *pscreen, > unsigned layout, > rsc->ts_bo = 0; /* TS is only created when first bound to surface */ > > if (templat->bind & PIPE_BIND_SCANOUT) { > + struct pipe_resource scanout_templat = *templat; > struct winsys_handle handle; > - rsc->scanout = renderonly_scanout_for_resource(&rsc->base, screen->ro, > - &handle); > + unsigned padX, padY; > + > + /* pad scanout buffer size to be compatible with the RS */ > + padX = ETNA_RS_WIDTH_MASK + 1; > + padY = (ETNA_RS_HEIGHT_MASK + 1) * screen->specs.pixel_pipes; > + scanout_templat.width0 = align(scanout_templat.width0, padX); > + scanout_templat.height0 = align(scanout_templat.height0, padY); > + > + rsc->scanout = renderonly_scanout_for_resource(&scanout_templat, > + screen->ro, &handle); > if (!rsc->scanout) > goto free_rsc; > > -- > 2.11.0 > greets -- Christian Gmeiner, MSc https://www.youtube.com/user/AloryOFFICIAL https://soundcloud.com/christian-gmeiner _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev