panfrost: Set depth for 3D textures on Bifrost
authorBoris Brezillon <boris.brezillon@collabora.com>
Tue, 17 Nov 2020 18:09:26 +0000 (19:09 +0100)
committerBoris Brezillon <boris.brezillon@collabora.com>
Wed, 25 Nov 2020 15:21:10 +0000 (16:21 +0100)
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7653>

src/panfrost/lib/midgard.xml
src/panfrost/lib/pan_texture.c

index 97005c8..5587e3e 100644 (file)
     <field name="Maximum LOD" size="13" start="3:16" type="uint" default="0"/>
     <field name="Surfaces" size="64" start="4:0" type="address"/>
     <field name="Array size" size="16" start="6:0" type="uint" modifier="minus(1)" default="1"/>
+    <field name="Depth" size="16" start="7:0" type="uint" modifier="minus(1)" default="1"/>
   </struct>
 
   <enum name="FP Mode">
index 8fb10d8..c668b28 100644 (file)
@@ -474,6 +474,8 @@ panfrost_new_texture_bifrost(
 
                 cfg.width = u_minify(width, first_level);
                 cfg.height = u_minify(height, first_level);
+                if (dim == MALI_TEXTURE_DIMENSION_3D)
+                        cfg.depth = u_minify(depth, first_level);
                 cfg.swizzle = swizzle;
                 cfg.texel_ordering = panfrost_modifier_to_layout(modifier);
                 cfg.levels = last_level - first_level;