panfrost: Resource management for linear 2D texture arrays
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 14 Jun 2019 23:31:14 +0000 (16:31 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Mon, 17 Jun 2019 15:36:15 +0000 (08:36 -0700)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/gallium/drivers/panfrost/pan_resource.c

index b9d0e931ae75fb5d34bcc20d7ac0b4e41103ea1d..ac83f38b3279915bbde9d204a754e65343cab692 100644 (file)
@@ -286,7 +286,7 @@ panfrost_create_bo(struct panfrost_screen *screen, const struct pipe_resource *t
         /* Tiling textures is almost always faster, unless we only use it once */
 
         bool is_texture = (template->bind & PIPE_BIND_SAMPLER_VIEW);
-        bool is_2d = template->depth0 == 1;
+        bool is_2d = template->depth0 == 1 && template->array_size == 1;
         bool is_streaming = (template->usage != PIPE_USAGE_STREAM);
 
         bool should_tile = is_streaming && is_texture && is_2d;
@@ -329,6 +329,7 @@ panfrost_resource_create(struct pipe_screen *screen,
                 case PIPE_TEXTURE_3D:
                 case PIPE_TEXTURE_CUBE:
                 case PIPE_TEXTURE_RECT:
+                case PIPE_TEXTURE_2D_ARRAY:
                         break;
                 default:
                         DBG("Unknown texture target %d\n", template->target);