i965: Don't force x-tiling for 16-bpp formats on Gen>7
authorNeil Roberts <neil@linux.intel.com>
Thu, 19 Feb 2015 16:09:41 +0000 (16:09 +0000)
committerNeil Roberts <neil@linux.intel.com>
Wed, 25 Feb 2015 13:19:34 +0000 (13:19 +0000)
Sandybridge doesn't support y-tiling for surface formats with 16 or
more bpp. There was previously an override to explicitly allow this
for Gen7. However, this restriction is also removed in Gen8+ so we
should use y-tiling there too.

This is important to do for Skylake which doesn't support x-tiling for
3D surfaces.

Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c

index 0e3888f3fbb70bceea72a47665d70aa5b766ce07..e085841b48dcdc679bd08acb54bd4f0c91e13f55 100644 (file)
@@ -515,10 +515,10 @@ intel_miptree_choose_tiling(struct brw_context *brw,
    /* From the Sandybridge PRM, Volume 1, Part 2, page 32:
     * "NOTE: 128BPE Format Color Buffer ( render target ) MUST be either TileX
     *  or Linear."
-    * 128 bits per pixel translates to 16 bytes per pixel.  This is necessary
-    * all the way back to 965, but is explicitly permitted on Gen7.
+    * 128 bits per pixel translates to 16 bytes per pixel. This is necessary
+    * all the way back to 965, but is permitted on Gen7+.
     */
-   if (brw->gen != 7 && mt->cpp >= 16)
+   if (brw->gen < 7 && mt->cpp >= 16)
       return I915_TILING_X;
 
    /* From the Ivy Bridge PRM, Vol4 Part1 2.12.2.1 (SURFACE_STATE for most