panfrost: Honour first_layer...last_layer when sampling
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 24 Jun 2019 21:53:54 +0000 (14:53 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tue, 25 Jun 2019 20:39:18 +0000 (13:39 -0700)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/gallium/drivers/panfrost/pan_context.c

index c8d413261502b62ce867b10d930f94870e1ea683..f20caaad07d796f95b9c80d8ef34cb371dbecd2a 100644 (file)
@@ -831,6 +831,8 @@ panfrost_upload_tex(
         assert(pview->target != PIPE_BUFFER);
         unsigned first_level = pview->u.tex.first_level;
         unsigned last_level = pview->u.tex.last_level;
+        unsigned first_layer = pview->u.tex.first_layer;
+        unsigned last_layer = pview->u.tex.last_layer;
 
         /* Inject the addresses in, interleaving mip levels, cube faces, and
          * strides in that order */
@@ -838,7 +840,7 @@ panfrost_upload_tex(
         unsigned idx = 0;
 
         for (unsigned l = first_level; l <= last_level; ++l) {
-                for (unsigned f = 0; f < pview->texture->array_size; ++f) {
+                for (unsigned f = first_layer; f <= last_layer; ++f) {
                         view->hw.payload[idx++] =
                                 panfrost_get_texture_address(rsrc, l, f);