etnaviv: fill in layer_stride for imported resources
authorLucas Stach <l.stach@pengutronix.de>
Thu, 22 Jun 2017 14:10:48 +0000 (16:10 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Thu, 29 Jun 2017 09:34:24 +0000 (11:34 +0200)
The layer stride information is used in various parts of the driver,
so it needs to be present regardless if the driver allocated the
buffer itself or merely imported it from an external source.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_resource.c

index 1c098445b17a6fed0b2610f3ea7f864a6acb012c..dfd0870711932bbff817cb6a11125d5c3bb73674 100644 (file)
@@ -352,6 +352,8 @@ etna_resource_from_handle(struct pipe_screen *pscreen,
 
    level->padded_width = align(level->width, paddingX);
    level->padded_height = align(level->height, paddingY);
 
    level->padded_width = align(level->width, paddingX);
    level->padded_height = align(level->height, paddingY);
+   level->layer_stride = level->stride * util_format_get_nblocksy(prsc->format,
+                                                                  level->padded_height);
 
    /* The DDX must give us a BO which conforms to our padding size.
     * The stride of the BO must be greater or equal to our padded
 
    /* The DDX must give us a BO which conforms to our padding size.
     * The stride of the BO must be greater or equal to our padded