diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-11 14:42:41 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-17 05:20:02 -0400 |
commit | bf97b276ca04cee9ab65ffd378fa8e6aedd71ff6 (patch) | |
tree | 70730bee7c79aaee958cb6e8d0febf546480ca6c /drivers/gpu/drm/i915 | |
parent | 48ecfa1090b65390b1cfa4c693ece6b171a407e4 (diff) |
drm/i915: implement w/a for incorrect guarband clipping
According to Bsepc, this should be set by default, but isn't. See vo1c.4
"Render Engine Command Streamer", Section 1.1.14.3 "3D_CHICKEN3"
Bspec also says that we always need to set all mask bits.
v2: Add comment about the mask bits wtf.
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index a9030f852cf9..6d9205436121 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -497,6 +497,7 @@ | |||
497 | */ | 497 | */ |
498 | # define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14) | 498 | # define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14) |
499 | #define _3D_CHICKEN3 0x02090 | 499 | #define _3D_CHICKEN3 0x02090 |
500 | #define _3D_CHICKEN_SF_DISABLE_FASTCLIP_CULL (1 << 5) | ||
500 | 501 | ||
501 | #define MI_MODE 0x0209c | 502 | #define MI_MODE 0x0209c |
502 | # define VS_TIMER_DISPATCH (1 << 6) | 503 | # define VS_TIMER_DISPATCH (1 << 6) |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 813cc3cda059..1a6bb6101491 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -8897,6 +8897,10 @@ static void gen6_init_clock_gating(struct drm_device *dev) | |||
8897 | GEN6_RCPBUNIT_CLOCK_GATE_DISABLE | | 8897 | GEN6_RCPBUNIT_CLOCK_GATE_DISABLE | |
8898 | GEN6_RCCUNIT_CLOCK_GATE_DISABLE); | 8898 | GEN6_RCCUNIT_CLOCK_GATE_DISABLE); |
8899 | 8899 | ||
8900 | /* Bspec says we need to always set all mask bits. */ | ||
8901 | I915_WRITE(_3D_CHICKEN, (0xFFFF << 16) | | ||
8902 | _3D_CHICKEN_SF_DISABLE_FASTCLIP_CULL); | ||
8903 | |||
8900 | /* | 8904 | /* |
8901 | * According to the spec the following bits should be | 8905 | * According to the spec the following bits should be |
8902 | * set in order to enable memory self-refresh and fbc: | 8906 | * set in order to enable memory self-refresh and fbc: |