[Mesa-dev] [PATCH 13/22] tiling-bo

Chris Wilson chris at chris-wilson.co.uk
Sat Aug 5 09:40:05 UTC 2017


---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 5cd8d24f1e..74e120b983 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -787,11 +787,17 @@ intel_miptree_create_for_bo(struct brw_context *brw,
         base_format == GL_DEPTH_STENCIL)) {
       const mesa_format depth_only_format =
          intel_depth_format_for_depthstencil_format(format);
+
+      tiling = ISL_TILING_Y0_BIT;
+      if (layout_flags & MIPTREE_LAYOUT_TILING_NONE)
+         tiling = ISL_TILING_LINEAR;
+
       mt = make_surface(brw, target,
                         brw->gen >= 6 ? depth_only_format : format,
-                        0, 0, width, height, depth, 1, ISL_TILING_Y0_BIT,
-                        ISL_SURF_USAGE_DEPTH_BIT | ISL_SURF_USAGE_TEXTURE_BIT,
-                        BO_ALLOC_FOR_RENDER, pitch, bo);
+                        0, 0, width, height, depth, 1, tiling,
+                        ISL_SURF_USAGE_DEPTH_BIT |
+                        ISL_SURF_USAGE_TEXTURE_BIT,
+                        0, pitch, bo);
       if (!mt)
          return NULL;
 
@@ -802,9 +808,13 @@ intel_miptree_create_for_bo(struct brw_context *brw,
 
       return mt;
    } else if (format == MESA_FORMAT_S_UINT8) {
+      tiling = ISL_TILING_W_BIT;
+      if (layout_flags & MIPTREE_LAYOUT_TILING_NONE)
+         tiling = ISL_TILING_LINEAR;
+
       mt = make_surface(brw, target, MESA_FORMAT_S_UINT8,
                         0, 0, width, height, depth, 1,
-                        ISL_TILING_W_BIT,
+                        tiling,
                         ISL_SURF_USAGE_STENCIL_BIT |
                         ISL_SURF_USAGE_TEXTURE_BIT,
                         BO_ALLOC_FOR_RENDER, pitch, bo);
@@ -817,6 +827,9 @@ intel_miptree_create_for_bo(struct brw_context *brw,
       return mt;
    }
 
+   /* The BO already has a tiling format and we shouldn't confuse the lower
+    * layers by making it try to find a tiling format again.
+    */
    brw_bo_get_tiling(bo, &tiling, &swizzle);
 
    /* Nothing will be able to use this miptree with the BO if the offset isn't
@@ -830,12 +843,6 @@ intel_miptree_create_for_bo(struct brw_context *brw,
     */
    assert(pitch >= 0);
 
-   /* The BO already has a tiling format and we shouldn't confuse the lower
-    * layers by making it try to find a tiling format again.
-    */
-   assert((layout_flags & MIPTREE_LAYOUT_TILING_ANY) == 0);
-   assert((layout_flags & MIPTREE_LAYOUT_TILING_NONE) == 0);
-
    mt = make_surface(brw, target, format,
                      0, 0, width, height, depth, 1,
                      1lu << isl_tiling_from_i915_tiling(tiling),
-- 
2.13.3



More information about the mesa-dev mailing list