diff options
author | Arun Siluvery <arun.siluvery@linux.intel.com> | 2015-09-25 12:40:42 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-09-30 04:20:30 -0400 |
commit | 6def8fdd5d9528db7fb6dfebd994491f6ba45785 (patch) | |
tree | 79a6b6e829dd6ffdb2182273aa98ab65b0f0f2c7 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | d0581194566eb9744fa657812b2693556392451b (diff) |
drm/i915/gen8: Move HiZ RAW stall optimization disable WA to common init fn
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 8c1d17ac7d4c..6adc7f110568 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -814,6 +814,16 @@ static int gen8_init_workarounds(struct intel_engine_cs *ring) | |||
814 | WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, | 814 | WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, |
815 | PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE); | 815 | PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE); |
816 | 816 | ||
817 | /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0: | ||
818 | * "The Hierarchical Z RAW Stall Optimization allows non-overlapping | ||
819 | * polygons in the same 8x4 pixel/sample area to be processed without | ||
820 | * stalling waiting for the earlier ones to write to Hierarchical Z | ||
821 | * buffer." | ||
822 | * | ||
823 | * This optimization is off by default for BDW and CHV; turn it on. | ||
824 | */ | ||
825 | WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE); | ||
826 | |||
817 | return 0; | 827 | return 0; |
818 | } | 828 | } |
819 | 829 | ||
@@ -851,16 +861,6 @@ static int bdw_init_workarounds(struct intel_engine_cs *ring) | |||
851 | /* WaDisableFenceDestinationToSLM:bdw (pre-prod) */ | 861 | /* WaDisableFenceDestinationToSLM:bdw (pre-prod) */ |
852 | (IS_BDW_GT3(dev) ? HDC_FENCE_DEST_SLM_DISABLE : 0)); | 862 | (IS_BDW_GT3(dev) ? HDC_FENCE_DEST_SLM_DISABLE : 0)); |
853 | 863 | ||
854 | /* From the Haswell PRM, Command Reference: Registers, CACHE_MODE_0: | ||
855 | * "The Hierarchical Z RAW Stall Optimization allows non-overlapping | ||
856 | * polygons in the same 8x4 pixel/sample area to be processed without | ||
857 | * stalling waiting for the earlier ones to write to Hierarchical Z | ||
858 | * buffer." | ||
859 | * | ||
860 | * This optimization is off by default for Broadwell; turn it on. | ||
861 | */ | ||
862 | WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE); | ||
863 | |||
864 | /* Wa4x4STCOptimizationDisable:bdw */ | 864 | /* Wa4x4STCOptimizationDisable:bdw */ |
865 | WA_SET_BIT_MASKED(CACHE_MODE_1, | 865 | WA_SET_BIT_MASKED(CACHE_MODE_1, |
866 | GEN8_4x4_STC_OPTIMIZATION_DISABLE); | 866 | GEN8_4x4_STC_OPTIMIZATION_DISABLE); |
@@ -903,11 +903,6 @@ static int chv_init_workarounds(struct intel_engine_cs *ring) | |||
903 | HDC_FORCE_NON_COHERENT | | 903 | HDC_FORCE_NON_COHERENT | |
904 | HDC_DONOT_FETCH_MEM_WHEN_MASKED); | 904 | HDC_DONOT_FETCH_MEM_WHEN_MASKED); |
905 | 905 | ||
906 | /* According to the CACHE_MODE_0 default value documentation, some | ||
907 | * CHV platforms disable this optimization by default. Turn it on. | ||
908 | */ | ||
909 | WA_CLR_BIT_MASKED(CACHE_MODE_0_GEN7, HIZ_RAW_STALL_OPT_DISABLE); | ||
910 | |||
911 | /* Wa4x4STCOptimizationDisable:chv */ | 906 | /* Wa4x4STCOptimizationDisable:chv */ |
912 | WA_SET_BIT_MASKED(CACHE_MODE_1, | 907 | WA_SET_BIT_MASKED(CACHE_MODE_1, |
913 | GEN8_4x4_STC_OPTIMIZATION_DISABLE); | 908 | GEN8_4x4_STC_OPTIMIZATION_DISABLE); |