diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lrc.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index f11bb213ec07..7720569f2024 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -2425,12 +2425,17 @@ enum i915_power_well_id { | |||
2425 | #define _3D_CHICKEN _MMIO(0x2084) | 2425 | #define _3D_CHICKEN _MMIO(0x2084) |
2426 | #define _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB (1 << 10) | 2426 | #define _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB (1 << 10) |
2427 | #define _3D_CHICKEN2 _MMIO(0x208c) | 2427 | #define _3D_CHICKEN2 _MMIO(0x208c) |
2428 | |||
2429 | #define FF_SLICE_CHICKEN _MMIO(0x2088) | ||
2430 | #define FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX (1 << 1) | ||
2431 | |||
2428 | /* Disables pipelining of read flushes past the SF-WIZ interface. | 2432 | /* Disables pipelining of read flushes past the SF-WIZ interface. |
2429 | * Required on all Ironlake steppings according to the B-Spec, but the | 2433 | * Required on all Ironlake steppings according to the B-Spec, but the |
2430 | * particular danger of not doing so is not specified. | 2434 | * particular danger of not doing so is not specified. |
2431 | */ | 2435 | */ |
2432 | # define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14) | 2436 | # define _3D_CHICKEN2_WM_READ_PIPELINED (1 << 14) |
2433 | #define _3D_CHICKEN3 _MMIO(0x2090) | 2437 | #define _3D_CHICKEN3 _MMIO(0x2090) |
2438 | #define _3D_CHICKEN_SF_PROVOKING_VERTEX_FIX (1 << 12) | ||
2434 | #define _3D_CHICKEN_SF_DISABLE_OBJEND_CULL (1 << 10) | 2439 | #define _3D_CHICKEN_SF_DISABLE_OBJEND_CULL (1 << 10) |
2435 | #define _3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE (1 << 5) | 2440 | #define _3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE (1 << 5) |
2436 | #define _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL (1 << 5) | 2441 | #define _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL (1 << 5) |
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c index f3968580e5e2..7c4c8fb1dae4 100644 --- a/drivers/gpu/drm/i915/intel_lrc.c +++ b/drivers/gpu/drm/i915/intel_lrc.c | |||
@@ -1545,11 +1545,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch) | |||
1545 | /* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */ | 1545 | /* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */ |
1546 | batch = gen8_emit_flush_coherentl3_wa(engine, batch); | 1546 | batch = gen8_emit_flush_coherentl3_wa(engine, batch); |
1547 | 1547 | ||
1548 | *batch++ = MI_LOAD_REGISTER_IMM(3); | ||
1549 | |||
1548 | /* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */ | 1550 | /* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */ |
1549 | *batch++ = MI_LOAD_REGISTER_IMM(1); | ||
1550 | *batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2); | 1551 | *batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2); |
1551 | *batch++ = _MASKED_BIT_DISABLE( | 1552 | *batch++ = _MASKED_BIT_DISABLE( |
1552 | GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE); | 1553 | GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE); |
1554 | |||
1555 | /* BSpec: 11391 */ | ||
1556 | *batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN); | ||
1557 | *batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX); | ||
1558 | |||
1559 | /* BSpec: 11299 */ | ||
1560 | *batch++ = i915_mmio_reg_offset(_3D_CHICKEN3); | ||
1561 | *batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX); | ||
1562 | |||
1553 | *batch++ = MI_NOOP; | 1563 | *batch++ = MI_NOOP; |
1554 | 1564 | ||
1555 | /* WaClearSlmSpaceAtContextSwitch:kbl */ | 1565 | /* WaClearSlmSpaceAtContextSwitch:kbl */ |