On Tue, 2012-07-31 at 20:24 +0100, Chris Wilson wrote: > On Tue, 31 Jul 2012 11:14:17 +0100, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > > On Tue, 31 Jul 2012 10:57:10 +0100, James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote: > > > > When did you inspect the debug files? One effect I can imagine is that > > > > if your system was previously stuck at RPn and never upclocking the GPU > > > > when X starts. The question would then be what is preventing the GPU > > > > from reaching its lowest power state again. > > > > > > After I logged into an xfce4 session and powertop showed idle had been > > > reached. > > That you are using xfce4 makes the use of semaphores for pageflips as > being the root cause even more suspect. Pageflips are only used for a > fullscreen DRI client caalling SwapBuffers, to my knowledge xfce4 does > not use DRI at all - its compositing manager is XRender based if you > happen to be using it. > > Please can you try the small patch to disable the use of semaphores for > pageflips and see if the regression remains (which I judge it will...): > > diff --git a/drivers/gpu/drm/i915/i915_gem.c > b/drivers/gpu/drm/i915/i915_gem.c > index 5c4657a..f301f2f 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3067,7 +3067,7 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_o > return ret; > > if (pipelined != obj->ring) { > - ret = i915_gem_object_sync(obj, pipelined); > + ret = i915_gem_object_wait_rendering(obj); > if (ret) > return ret; > } Your patch doesn't apply ... I think because in v3.5 this line is displaced by about 200 lines in the file. patching file drivers/gpu/drm/i915/i915_gem.c Hunk #1 FAILED at 3067. 1 out of 1 hunk FAILED -- saving rejects to file drivers/gpu/drm/i915/i915_gem.c.rej I got the attached to apply and it doesn't really improve the idle power much (12.5W). James --- diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 288d7b8..2f3f279 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2869,7 +2869,7 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_object *obj, return ret; if (pipelined != obj->ring) { - ret = i915_gem_object_sync(obj, pipelined); + ret = i915_gem_object_wait_rendering(obj); if (ret) return ret; } _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel