From 5f0a0088af784157d8efe149ed073c8fa010e648 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 28 Jan 2010 13:23:39 +0000 Subject: [PATCH] drm-intel: Unmap a full glyph cache. When we swap a full glyph cache for a fresh one, be sure to unmap the old one prior to release. --- src/drm/cairo-drm-i915-glyphs.c | 2 +- src/drm/cairo-drm-intel.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/drm/cairo-drm-i915-glyphs.c b/src/drm/cairo-drm-i915-glyphs.c index babd59e60..f85e96d8c 100644 --- a/src/drm/cairo-drm-i915-glyphs.c +++ b/src/drm/cairo-drm-i915-glyphs.c @@ -461,8 +461,8 @@ i915_surface_glyphs (void *abstract_surface, if (unlikely (status)) goto FINISH; } - glyph = intel_glyph_pin (scaled_glyph->surface_private); + glyph = intel_glyph_pin (scaled_glyph->surface_private); if (glyph->cache->buffer.bo != last_bo) { intel_buffer_cache_t *cache = glyph->cache; diff --git a/src/drm/cairo-drm-intel.c b/src/drm/cairo-drm-intel.c index 984dcd81e..334c07c83 100644 --- a/src/drm/cairo-drm-intel.c +++ b/src/drm/cairo-drm-intel.c @@ -1182,6 +1182,9 @@ intel_get_glyph (intel_device_t *device, assert (cache->buffer.bo->exec != NULL); + if (cache->buffer.bo->virtual != NULL) + intel_bo_unmap (cache->buffer.bo); + _cairo_rtree_reset (&cache->rtree); intel_bo_destroy (device, cache->buffer.bo); cache->buffer.bo = NULL;