[Mesa-dev] [PATCH 1/2] i965/skl: Enable floating blend optimization

Ben Widawsky benjamin.widawsky at intel.com
Fri Apr 10 15:52:53 PDT 2015


This optimization is disabled by default, and it is recommended to be enabled.
The docs do not provide much info.

Cc: Ian Romanick <ian.d.romanick at intel.com>
Cc: "Neil S. Roberts" <neil at linux.intel.com>
Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
---

Notes:
    I am enabling this optimization separately for BSW as the recommendation was
    explicit for SKL only.
    
    I will get perf data and piglit data before pushing. I'd propose we plan to push
    (with review of course) provided there are no regressions. It's possible the
    optimization will not show up in the existing workloads I test.

 src/mesa/drivers/dri/i965/brw_state_upload.c | 6 ++++--
 src/mesa/drivers/dri/i965/intel_reg.h        | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index ab316bf..11098cf 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -350,8 +350,10 @@ brw_upload_initial_gpu_state(struct brw_context *brw)
       BEGIN_BATCH(3);
       OUT_BATCH(MI_LOAD_REGISTER_IMM | (3 - 2));
       OUT_BATCH(GEN7_CACHE_MODE_1);
-      OUT_BATCH((GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC << 16) |
-                GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC);
+      OUT_BATCH((GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC << 16)  |
+                (GEN9_FLOAT_BLEND_OPTMIZATION_ENABLE << 16) |
+                GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC          |
+                GEN9_FLOAT_BLEND_OPTMIZATION_ENABLE);
       ADVANCE_BATCH();
    }
 
diff --git a/src/mesa/drivers/dri/i965/intel_reg.h b/src/mesa/drivers/dri/i965/intel_reg.h
index 488fb5b..235a022 100644
--- a/src/mesa/drivers/dri/i965/intel_reg.h
+++ b/src/mesa/drivers/dri/i965/intel_reg.h
@@ -142,8 +142,9 @@
 #define GEN7_3DPRIM_BASE_VERTEX         0x2440
 
 #define GEN7_CACHE_MODE_1               0x7004
-# define GEN8_HIZ_NP_PMA_FIX_ENABLE        (1 << 11)
 # define GEN8_HIZ_NP_EARLY_Z_FAILS_DISABLE (1 << 13)
+# define GEN8_HIZ_NP_PMA_FIX_ENABLE        (1 << 11)
+# define GEN9_FLOAT_BLEND_OPTMIZATION_ENABLE (1 << 4)
 # define GEN9_PARTIAL_RESOLVE_DISABLE_IN_VC (1 << 1)
 # define GEN8_HIZ_PMA_MASK_BITS \
    ((GEN8_HIZ_NP_PMA_FIX_ENABLE | GEN8_HIZ_NP_EARLY_Z_FAILS_DISABLE) << 16)
-- 
2.3.5



More information about the mesa-dev mailing list