From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> ILK should work pretty much the same as SNB, except it doesn't have the blitter, so we only care about render tracking. v2: Rebased against earlier changes v3: Rebased due to fbc.obj changes Acked-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> --- drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/i915/intel_pm.c | 3 --- drivers/gpu/drm/i915/intel_ringbuffer.c | 5 ++++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 78310c1..f0caab3 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -1503,7 +1503,7 @@ enum punit_power_well { #define ILK_DPFC_CHICKEN 0x43224 #define ILK_FBC_RT_BASE 0x2128 #define ILK_FBC_RT_VALID (1<<0) -#define SNB_FBC_FRONT_BUFFER (1<<1) +#define ILK_FBC_FRONT_BUFFER (1<<1) #define ILK_DISPLAY_CHICKEN1 0x42000 #define ILK_FBCQ_DIS (1<<22) diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index a5d3d9f..3bde3ce 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -204,9 +204,6 @@ static void ironlake_enable_fbc(struct drm_device *dev) dpfc_ctl |= dev_priv->fbc.fence_reg; I915_WRITE(ILK_DPFC_FENCE_YOFF, dev_priv->fbc.y); - if (IS_GEN5(dev)) - I915_WRITE(ILK_FBC_RT_BASE, i915_gem_obj_ggtt_offset(dev_priv->fbc.obj) | - ILK_FBC_RT_VALID); /* enable it... */ I915_WRITE(ILK_DPFC_CONTROL, dpfc_ctl | DPFC_CTL_EN); diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index d19738a..dbfa280 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -85,7 +85,7 @@ static int gen5_render_fbc_tracking(struct intel_engine_cs *ring) intel_ring_emit(ring, ILK_FBC_RT_BASE); if (ring->fbc_address != -1) intel_ring_emit(ring, ring->fbc_address | - SNB_FBC_FRONT_BUFFER | ILK_FBC_RT_VALID); + ILK_FBC_FRONT_BUFFER | ILK_FBC_RT_VALID); else intel_ring_emit(ring, 0); intel_ring_advance(ring); @@ -201,6 +201,9 @@ gen4_render_ring_flush(struct intel_engine_cs *ring, intel_ring_emit(ring, MI_NOOP); intel_ring_advance(ring); + if (invalidate_domains && IS_GEN5(dev)) + return gen5_render_fbc_tracking(ring); + return 0; } -- 1.8.5.5 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx