asahi: Calculate resource offsets for cube maps
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sat, 24 Jul 2021 16:52:15 +0000 (12:52 -0400)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sat, 24 Jul 2021 17:56:04 +0000 (13:56 -0400)
Needed to transfer.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12053>

src/gallium/drivers/asahi/agx_pipe.c

index c0e31c2..4c4e761 100644 (file)
@@ -243,6 +243,16 @@ agx_resource_create(struct pipe_screen *screen,
    return &nresource->base;
 }
 
+static uint8_t *
+agx_rsrc_offset(struct agx_resource *rsrc, unsigned level, unsigned z)
+{
+   struct agx_bo *bo = rsrc->bo;
+   uint8_t *map = ((uint8_t *) bo->ptr.cpu) + rsrc->slices[level].offset;
+   map += z * rsrc->array_stride;
+
+   return map;
+}
+
 static void
 agx_resource_destroy(struct pipe_screen *screen,
                      struct pipe_resource *prsrc)