drm/i915: Don't call intel_update_fbc from intel_crtc_cursor_set
Commit 74dff282 exposed this unnecessary call by causing a change in the failure path on i965 where framebuffer compression will be turned on and off on every cursor update. If you don't have the xf86-video-intel fix to avoid the blinking cursor effect, this is very slow. Symptoms were a far more noticeable cursor blink with every cursor image change combined with severe slowdown for animated cursors. Signed-off-by: Brian Rogers <brian@xyzw.org> Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
17d857be64
commit
4781f20f29
@ -3095,7 +3095,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
|
|||||||
struct drm_gem_object *bo;
|
struct drm_gem_object *bo;
|
||||||
struct drm_i915_gem_object *obj_priv;
|
struct drm_i915_gem_object *obj_priv;
|
||||||
int pipe = intel_crtc->pipe;
|
int pipe = intel_crtc->pipe;
|
||||||
int plane = intel_crtc->plane;
|
|
||||||
uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR;
|
uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR;
|
||||||
uint32_t base = (pipe == 0) ? CURABASE : CURBBASE;
|
uint32_t base = (pipe == 0) ? CURABASE : CURBBASE;
|
||||||
uint32_t temp = I915_READ(control);
|
uint32_t temp = I915_READ(control);
|
||||||
@ -3182,9 +3181,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
|
|||||||
drm_gem_object_unreference(intel_crtc->cursor_bo);
|
drm_gem_object_unreference(intel_crtc->cursor_bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((IS_I965G(dev) || plane == 0))
|
|
||||||
intel_update_fbc(crtc, &crtc->mode);
|
|
||||||
|
|
||||||
mutex_unlock(&dev->struct_mutex);
|
mutex_unlock(&dev->struct_mutex);
|
||||||
|
|
||||||
intel_crtc->cursor_addr = addr;
|
intel_crtc->cursor_addr = addr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user