* [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA
@ 2015-09-25 13:23 Arun Siluvery
2015-09-25 13:23 ` [PATCH 2/7] drm/i915/gen8: Move INSTPM WA to common function Arun Siluvery
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 16a4ead..10f9ea0 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -800,11 +800,22 @@ static int wa_add(struct drm_i915_private *dev_priv,
#define WA_WRITE(addr, val) WA_REG(addr, 0xffffffff, val)
+static int gen8_init_workarounds(struct intel_engine_cs *ring)
+{
+
+ return 0;
+}
+
static int bdw_init_workarounds(struct intel_engine_cs *ring)
{
+ int ret;
struct drm_device *dev = ring->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
+ ret = gen8_init_workarounds(ring);
+ if (ret)
+ return ret;
+
WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
/* WaDisableAsyncFlipPerfMode:bdw */
@@ -868,9 +879,14 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
static int chv_init_workarounds(struct intel_engine_cs *ring)
{
+ int ret;
struct drm_device *dev = ring->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
+ ret = gen8_init_workarounds(ring);
+ if (ret)
+ return ret;
+
WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
/* WaDisableAsyncFlipPerfMode:chv */
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/7] drm/i915/gen8: Move INSTPM WA to common function
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 13:23 ` [PATCH 3/7] drm/i915/gen8: Move WaDisableAsyncFlipPerfMode to common init fn Arun Siluvery
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 10f9ea0..4f3942f 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -802,6 +802,10 @@ static int wa_add(struct drm_i915_private *dev_priv,
static int gen8_init_workarounds(struct intel_engine_cs *ring)
{
+ struct drm_device *dev = ring->dev;
+ struct drm_i915_private *dev_priv = dev->dev_private;
+
+ WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
return 0;
}
@@ -816,8 +820,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
-
/* WaDisableAsyncFlipPerfMode:bdw */
WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
@@ -887,8 +889,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
-
/* WaDisableAsyncFlipPerfMode:chv */
WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/7] drm/i915/gen8: Move WaDisableAsyncFlipPerfMode to common init fn
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
2015-09-25 13:23 ` [PATCH 2/7] drm/i915/gen8: Move INSTPM WA to common function Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 13:23 ` [PATCH 4/7] drm/i915/gen8: Move Wa4x4STCOptimizationDisable " Arun Siluvery
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 4f3942f..3bc14fa 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -807,6 +807,9 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
+ /* WaDisableAsyncFlipPerfMode:bdw,chv */
+ WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
+
return 0;
}
@@ -820,9 +823,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- /* WaDisableAsyncFlipPerfMode:bdw */
- WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
-
/* WaDisablePartialInstShootdown:bdw */
/* WaDisableThreadStallDopClockGating:bdw (pre-production) */
WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
@@ -889,9 +889,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- /* WaDisableAsyncFlipPerfMode:chv */
- WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
-
/* WaDisablePartialInstShootdown:chv */
/* WaDisableThreadStallDopClockGating:chv */
WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/7] drm/i915/gen8: Move Wa4x4STCOptimizationDisable to common init fn
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
2015-09-25 13:23 ` [PATCH 2/7] drm/i915/gen8: Move INSTPM WA to common function Arun Siluvery
2015-09-25 13:23 ` [PATCH 3/7] drm/i915/gen8: Move WaDisableAsyncFlipPerfMode to common init fn Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 13:23 ` [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA " Arun Siluvery
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 3bc14fa..a06788a 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -810,6 +810,9 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
/* WaDisableAsyncFlipPerfMode:bdw,chv */
WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
+ /* Wa4x4STCOptimizationDisable:bdw,chv */
+ WA_SET_BIT_MASKED(CACHE_MODE_1, GEN8_4x4_STC_OPTIMIZATION_DISABLE);
+
return 0;
}
@@ -860,10 +863,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
*/
WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
- /* Wa4x4STCOptimizationDisable:bdw */
- WA_SET_BIT_MASKED(CACHE_MODE_1,
- GEN8_4x4_STC_OPTIMIZATION_DISABLE);
-
/*
* BSpec recommends 8x4 when MSAA is used,
* however in practice 16x4 seems fastest.
@@ -910,10 +909,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
*/
WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
- /* Wa4x4STCOptimizationDisable:chv */
- WA_SET_BIT_MASKED(CACHE_MODE_1,
- GEN8_4x4_STC_OPTIMIZATION_DISABLE);
-
/* Improve HiZ throughput on CHV. */
WA_SET_BIT_MASKED(HIZ_CHICKEN, CHV_HZ_8X8_MODE_IN_1X);
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA to common init fn
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
` (2 preceding siblings ...)
2015-09-25 13:23 ` [PATCH 4/7] drm/i915/gen8: Move Wa4x4STCOptimizationDisable " Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 14:18 ` Ville Syrjälä
2015-09-25 13:23 ` [PATCH 6/7] drm/i915/gen8: Move GEN7_GT_MODE " Arun Siluvery
2015-09-25 13:23 ` [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable " Arun Siluvery
5 siblings, 1 reply; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Move WaDisablePartialInstShootdown and WaDisableThreadStallDopClockGating
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index a06788a..5d15e31 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -807,6 +807,12 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
+ /* WaDisablePartialInstShootdown:bdw,chv */
+ /* WaDisableThreadStallDopClockGating:chv, bdw (pre-production) */
+ WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
+ PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
+ STALL_DOP_GATING_DISABLE);
+
/* WaDisableAsyncFlipPerfMode:bdw,chv */
WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
@@ -826,12 +832,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- /* WaDisablePartialInstShootdown:bdw */
- /* WaDisableThreadStallDopClockGating:bdw (pre-production) */
- WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
- PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
- STALL_DOP_GATING_DISABLE);
-
/* WaDisableDopClockGating:bdw */
WA_SET_BIT_MASKED(GEN7_ROW_CHICKEN2,
DOP_CLOCK_GATING_DISABLE);
@@ -888,12 +888,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
if (ret)
return ret;
- /* WaDisablePartialInstShootdown:chv */
- /* WaDisableThreadStallDopClockGating:chv */
- WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
- PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
- STALL_DOP_GATING_DISABLE);
-
/* Use Force Non-Coherent whenever executing a 3D context. This is a
* workaround for a possible hang in the unlikely event a TLB
* invalidation occurs during a PSD flush.
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 6/7] drm/i915/gen8: Move GEN7_GT_MODE WA to common init fn
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
` (3 preceding siblings ...)
2015-09-25 13:23 ` [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA " Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 13:23 ` [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable " Arun Siluvery
5 siblings, 0 replies; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 36 +++++++++++----------------------
1 file changed, 12 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 5d15e31..c681c66 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -819,6 +819,18 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
/* Wa4x4STCOptimizationDisable:bdw,chv */
WA_SET_BIT_MASKED(CACHE_MODE_1, GEN8_4x4_STC_OPTIMIZATION_DISABLE);
+ /*
+ * BSpec recommends 8x4 when MSAA is used,
+ * however in practice 16x4 seems fastest.
+ *
+ * Note that PS/WM thread counts depend on the WIZ hashing
+ * disable bit, which we don't touch here, but it's good
+ * to keep in mind (see 3DSTATE_PS and 3DSTATE_WM).
+ */
+ WA_SET_FIELD_MASKED(GEN7_GT_MODE,
+ GEN6_WIZ_HASHING_MASK,
+ GEN6_WIZ_HASHING_16x4);
+
return 0;
}
@@ -863,18 +875,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
*/
WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
- /*
- * BSpec recommends 8x4 when MSAA is used,
- * however in practice 16x4 seems fastest.
- *
- * Note that PS/WM thread counts depend on the WIZ hashing
- * disable bit, which we don't touch here, but it's good
- * to keep in mind (see 3DSTATE_PS and 3DSTATE_WM).
- */
- WA_SET_FIELD_MASKED(GEN7_GT_MODE,
- GEN6_WIZ_HASHING_MASK,
- GEN6_WIZ_HASHING_16x4);
-
return 0;
}
@@ -906,18 +906,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
/* Improve HiZ throughput on CHV. */
WA_SET_BIT_MASKED(HIZ_CHICKEN, CHV_HZ_8X8_MODE_IN_1X);
- /*
- * BSpec recommends 8x4 when MSAA is used,
- * however in practice 16x4 seems fastest.
- *
- * Note that PS/WM thread counts depend on the WIZ hashing
- * disable bit, which we don't touch here, but it's good
- * to keep in mind (see 3DSTATE_PS and 3DSTATE_WM).
- */
- WA_SET_FIELD_MASKED(GEN7_GT_MODE,
- GEN6_WIZ_HASHING_MASK,
- GEN6_WIZ_HASHING_16x4);
-
return 0;
}
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable WA to common init fn
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
` (4 preceding siblings ...)
2015-09-25 13:23 ` [PATCH 6/7] drm/i915/gen8: Move GEN7_GT_MODE " Arun Siluvery
@ 2015-09-25 13:23 ` Arun Siluvery
2015-09-25 14:28 ` Ville Syrjälä
5 siblings, 1 reply; 9+ messages in thread
From: Arun Siluvery @ 2015-09-25 13:23 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
---
drivers/gpu/drm/i915/intel_ringbuffer.c | 25 ++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index c681c66..fdff606 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -819,6 +819,16 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
/* Wa4x4STCOptimizationDisable:bdw,chv */
WA_SET_BIT_MASKED(CACHE_MODE_1, GEN8_4x4_STC_OPTIMIZATION_DISABLE);
+ /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0:
+ * "The Hierarchical Z RAW Stall Optimization allows non-overlapping
+ * polygons in the same 8x4 pixel/sample area to be processed without
+ * stalling waiting for the earlier ones to write to Hierarchical Z
+ * buffer."
+ *
+ * This optimization is off by default for BDW and CHV; turn it on.
+ */
+ WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
+
/*
* BSpec recommends 8x4 when MSAA is used,
* however in practice 16x4 seems fastest.
@@ -865,16 +875,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
/* WaDisableFenceDestinationToSLM:bdw (pre-prod) */
(IS_BDW_GT3(dev) ? HDC_FENCE_DEST_SLM_DISABLE : 0));
- /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0:
- * "The Hierarchical Z RAW Stall Optimization allows non-overlapping
- * polygons in the same 8x4 pixel/sample area to be processed without
- * stalling waiting for the earlier ones to write to Hierarchical Z
- * buffer."
- *
- * This optimization is off by default for Broadwell; turn it on.
- */
- WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
-
return 0;
}
@@ -898,11 +898,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
HDC_FORCE_NON_COHERENT |
HDC_DONOT_FETCH_MEM_WHEN_MASKED);
- /* According to the CACHE_MODE_0 default value documentation, some
- * CHV platforms disable this optimization by default. Turn it on.
- */
- WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
-
/* Improve HiZ throughput on CHV. */
WA_SET_BIT_MASKED(HIZ_CHICKEN, CHV_HZ_8X8_MODE_IN_1X);
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA to common init fn
2015-09-25 13:23 ` [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA " Arun Siluvery
@ 2015-09-25 14:18 ` Ville Syrjälä
0 siblings, 0 replies; 9+ messages in thread
From: Ville Syrjälä @ 2015-09-25 14:18 UTC (permalink / raw)
To: Arun Siluvery; +Cc: intel-gfx
On Fri, Sep 25, 2015 at 02:23:32PM +0100, Arun Siluvery wrote:
> Move WaDisablePartialInstShootdown and WaDisableThreadStallDopClockGating
NAK for WaDisableThreadStallDopClockGating, we don't want it on production BDW.
Should just kill it for BDW instead.
>
> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 18 ++++++------------
> 1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index a06788a..5d15e31 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -807,6 +807,12 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
>
> WA_SET_BIT_MASKED(INSTPM, INSTPM_FORCE_ORDERING);
>
> + /* WaDisablePartialInstShootdown:bdw,chv */
> + /* WaDisableThreadStallDopClockGating:chv, bdw (pre-production) */
> + WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
> + PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
> + STALL_DOP_GATING_DISABLE);
> +
> /* WaDisableAsyncFlipPerfMode:bdw,chv */
> WA_SET_BIT_MASKED(MI_MODE, ASYNC_FLIP_PERF_DISABLE);
>
> @@ -826,12 +832,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
> if (ret)
> return ret;
>
> - /* WaDisablePartialInstShootdown:bdw */
> - /* WaDisableThreadStallDopClockGating:bdw (pre-production) */
> - WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
> - PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
> - STALL_DOP_GATING_DISABLE);
> -
> /* WaDisableDopClockGating:bdw */
> WA_SET_BIT_MASKED(GEN7_ROW_CHICKEN2,
> DOP_CLOCK_GATING_DISABLE);
> @@ -888,12 +888,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
> if (ret)
> return ret;
>
> - /* WaDisablePartialInstShootdown:chv */
> - /* WaDisableThreadStallDopClockGating:chv */
> - WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
> - PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE |
> - STALL_DOP_GATING_DISABLE);
> -
> /* Use Force Non-Coherent whenever executing a 3D context. This is a
> * workaround for a possible hang in the unlikely event a TLB
> * invalidation occurs during a PSD flush.
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable WA to common init fn
2015-09-25 13:23 ` [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable " Arun Siluvery
@ 2015-09-25 14:28 ` Ville Syrjälä
0 siblings, 0 replies; 9+ messages in thread
From: Ville Syrjälä @ 2015-09-25 14:28 UTC (permalink / raw)
To: Arun Siluvery; +Cc: intel-gfx
On Fri, Sep 25, 2015 at 02:23:34PM +0100, Arun Siluvery wrote:
> Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 25 ++++++++++---------------
> 1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index c681c66..fdff606 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -819,6 +819,16 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring)
> /* Wa4x4STCOptimizationDisable:bdw,chv */
> WA_SET_BIT_MASKED(CACHE_MODE_1, GEN8_4x4_STC_OPTIMIZATION_DISABLE);
>
> + /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0:
> + * "The Hierarchical Z RAW Stall Optimization allows non-overlapping
> + * polygons in the same 8x4 pixel/sample area to be processed without
> + * stalling waiting for the earlier ones to write to Hierarchical Z
> + * buffer."
> + *
> + * This optimization is off by default for BDW and CHV; turn it on.
> + */
> + WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
> +
Ok, so apart from the threadstall thing the rest looks reasonable.
One request though, can you put w/as into some decent order? I
suggest ordering based on the register, so eg.
instpm
mi_mode
row chicken
half slice chicken
common slice chicken
hdc chicken
cache_mode_0
cache_mode_1
gt_mode
I think that should match reasonably well what we have in most places.
Or you can come up with something better if you wish, as long as the
same/similar registers are grouped decently.
> /*
> * BSpec recommends 8x4 when MSAA is used,
> * however in practice 16x4 seems fastest.
> @@ -865,16 +875,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring)
> /* WaDisableFenceDestinationToSLM:bdw (pre-prod) */
> (IS_BDW_GT3(dev) ? HDC_FENCE_DEST_SLM_DISABLE : 0));
>
> - /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0:
> - * "The Hierarchical Z RAW Stall Optimization allows non-overlapping
> - * polygons in the same 8x4 pixel/sample area to be processed without
> - * stalling waiting for the earlier ones to write to Hierarchical Z
> - * buffer."
> - *
> - * This optimization is off by default for Broadwell; turn it on.
> - */
> - WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
> -
> return 0;
> }
>
> @@ -898,11 +898,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring)
> HDC_FORCE_NON_COHERENT |
> HDC_DONOT_FETCH_MEM_WHEN_MASKED);
>
> - /* According to the CACHE_MODE_0 default value documentation, some
> - * CHV platforms disable this optimization by default. Turn it on.
> - */
> - WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE);
> -
> /* Improve HiZ throughput on CHV. */
> WA_SET_BIT_MASKED(HIZ_CHICKEN, CHV_HZ_8X8_MODE_IN_1X);
>
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-09-25 14:28 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-25 13:23 [PATCH 1/7] drm/i915/gen8: Add gen8_init_workarounds for common WA Arun Siluvery
2015-09-25 13:23 ` [PATCH 2/7] drm/i915/gen8: Move INSTPM WA to common function Arun Siluvery
2015-09-25 13:23 ` [PATCH 3/7] drm/i915/gen8: Move WaDisableAsyncFlipPerfMode to common init fn Arun Siluvery
2015-09-25 13:23 ` [PATCH 4/7] drm/i915/gen8: Move Wa4x4STCOptimizationDisable " Arun Siluvery
2015-09-25 13:23 ` [PATCH 5/7] drm/i915/gen8: Move GEN8_ROW_CHICKEN WA " Arun Siluvery
2015-09-25 14:18 ` Ville Syrjälä
2015-09-25 13:23 ` [PATCH 6/7] drm/i915/gen8: Move GEN7_GT_MODE " Arun Siluvery
2015-09-25 13:23 ` [PATCH 7/7] drm/i915/gen8: Move HiZ RAW stall optimization disable " Arun Siluvery
2015-09-25 14:28 ` Ville Syrjälä
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox