[Mesa-dev] [PATCH] isl: Finish tiling filtering for Gen6.

Kenneth Graunke kenneth at whitecape.org
Fri Aug 26 21:26:52 UTC 2016


Gen6 only has one additional restriction over Gen7+, so we just add it
to the existing gen7 function (which actually covers later gens too).

This should stop FINISHME spew when running GL on Sandybridge.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/intel/isl/isl.c      | 2 +-
 src/intel/isl/isl_gen7.c | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

Should probably rename the function or something, but I figured I'd throw
this out there and let Jason/Chad tell me what they'd rather see happen.

diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
index 59429fb..e97da58 100644
--- a/src/intel/isl/isl.c
+++ b/src/intel/isl/isl.c
@@ -226,7 +226,7 @@ isl_surf_choose_tiling(const struct isl_device *dev,
 {
    isl_tiling_flags_t tiling_flags = info->tiling_flags;
 
-   if (ISL_DEV_GEN(dev) >= 7) {
+   if (ISL_DEV_GEN(dev) >= 6) {
       gen7_filter_tiling(dev, info, &tiling_flags);
    } else {
       isl_finishme("%s: gen%u", __func__, ISL_DEV_GEN(dev));
diff --git a/src/intel/isl/isl_gen7.c b/src/intel/isl/isl_gen7.c
index 02273f8..37700fd 100644
--- a/src/intel/isl/isl_gen7.c
+++ b/src/intel/isl/isl_gen7.c
@@ -297,6 +297,15 @@ gen7_filter_tiling(const struct isl_device *dev,
        */
       *flags &= ~ISL_TILING_Y0_BIT;
    }
+
+   /* 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 permitted on Gen7+.
+    */
+   if (ISL_DEV_GEN(dev) <= 6 && isl_format_get_layout(info->format)->bpb >= 16)
+      *flags &= ~ISL_TILING_Y0_BIT;
 }
 
 /**
-- 
2.9.3



More information about the mesa-dev mailing list