From: "bernard.r.kilarski" <your-user-name at intel.com> Full disclosure: my IVB hangs on nexuiz both before, and after this patch, and I haven't done any debug This patch was given to me by Bernard, by way of Daniel. The patch came with very little description, and I haven't really spent too much time in the spec to make much sense out of it. The improvement (IVB only) with my nexuiz configuration is almost unbelievable. It has a more humble improvement on OpenArena. I'll throw other tests at it, and try to debug the hangs a bit, but given the nexuiz results, I was compelled to post this sooner, rather than later. I see about a 2% improvement on OA and about a 40$% improvement on nexuiz CC: Daniel Vetter <daniel.vetter at ffwll.ch> Signed-off-by: Ben Widawsky <benjamin.widawsky at intel.com> --- drivers/gpu/drm/i915/i915_reg.h | 3 +++ drivers/gpu/drm/i915/intel_display.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index cb55444..755bdff 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -682,6 +682,9 @@ #define GEN6_BSD_RNCID 0x12198 +#define GEN7_FF_THREAD_MODE 0x20a0 +#define GEN7_FF_THREAD_SIMPLE_SCHED 0x28a00010 + /* * Framebuffer compression (915+ only) */ diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6ec81b4..bbd5f46 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -8893,6 +8893,9 @@ static void ivybridge_init_clock_gating(struct drm_device *dev) DISPPLANE_TRICKLE_FEED_DISABLE); intel_flush_display_plane(dev_priv, pipe); } + + /* Fix vertex load balancing */ + I915_WRITE(GEN7_FF_THREAD_MODE,GEN7_FF_THREAD_SIMPLE_SCHED); } static void valleyview_init_clock_gating(struct drm_device *dev) -- 1.7.10