On Wed, Mar 26, 2014 at 12:38:15PM +0000, Chris Wilson wrote: > If the cursor width is changed, we may need to recompute our WM to > prevent untold flickering. We hope that the registers are flushed on the > same vblank to prevent underruns... > > Cc: Damien Lespiau <damien.lespiau@xxxxxxxxx> > Cc: Sagar Kamble <sagar.a.kamble@xxxxxxxxx> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Indeed, I'll learn to see the bigger picture one day, one day... Reviewed-by: Damien Lespiau <damien.lespiau@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index c8c52d105b8c..e15b3abe1350 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -7763,6 +7763,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, > struct drm_i915_private *dev_priv = dev->dev_private; > struct intel_crtc *intel_crtc = to_intel_crtc(crtc); > struct drm_i915_gem_object *obj; > + unsigned old_width; > uint32_t addr; > int ret; > > @@ -7853,13 +7854,18 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, > > mutex_unlock(&dev->struct_mutex); > > + old_width = intel_crtc->cursor_width; > + > intel_crtc->cursor_addr = addr; > intel_crtc->cursor_bo = obj; > intel_crtc->cursor_width = width; > intel_crtc->cursor_height = height; > > - if (intel_crtc->active) > + if (intel_crtc->active) { > + if (old_width != width) > + intel_update_watermarks(crtc); > intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); > + } > > return 0; > fail_unpin: > -- > 1.9.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx