diff options
author | Brian Rogers <brian@xyzw.org> | 2009-09-28 18:41:08 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-09-28 19:03:21 -0400 |
commit | 4781f20f29926ec68715f5cc930273a79fc0a9eb (patch) | |
tree | 470ebb13271b823392d5d9eaafb745009eeb3504 /drivers/gpu | |
parent | 17d857be649a21ca90008c6dc425d849fa83db5c (diff) |
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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 93ff6c03733e..7a5fb7932c0e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -3095,7 +3095,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3095 | struct drm_gem_object *bo; | 3095 | struct drm_gem_object *bo; |
3096 | struct drm_i915_gem_object *obj_priv; | 3096 | struct drm_i915_gem_object *obj_priv; |
3097 | int pipe = intel_crtc->pipe; | 3097 | int pipe = intel_crtc->pipe; |
3098 | int plane = intel_crtc->plane; | ||
3099 | uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; | 3098 | uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; |
3100 | uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; | 3099 | uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; |
3101 | uint32_t temp = I915_READ(control); | 3100 | uint32_t temp = I915_READ(control); |
@@ -3182,9 +3181,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3182 | drm_gem_object_unreference(intel_crtc->cursor_bo); | 3181 | drm_gem_object_unreference(intel_crtc->cursor_bo); |
3183 | } | 3182 | } |
3184 | 3183 | ||
3185 | if ((IS_I965G(dev) || plane == 0)) | ||
3186 | intel_update_fbc(crtc, &crtc->mode); | ||
3187 | |||
3188 | mutex_unlock(&dev->struct_mutex); | 3184 | mutex_unlock(&dev->struct_mutex); |
3189 | 3185 | ||
3190 | intel_crtc->cursor_addr = addr; | 3186 | intel_crtc->cursor_addr = addr; |