From ad8af95dd35921118f45d6cff355c80cf0906ff0 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 11 May 2010 14:52:54 +0100 Subject: [PATCH] i830: Do not cache in-flight non-reusable buffers. Signed-off-by: Chris Wilson --- src/i830_uxa.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/i830_uxa.c b/src/i830_uxa.c index e96f0a9e..544eb391 100644 --- a/src/i830_uxa.c +++ b/src/i830_uxa.c @@ -556,8 +556,15 @@ void i830_set_pixmap_bo(PixmapPtr pixmap, dri_bo * bo) priv = i830_get_pixmap_intel(pixmap); + if (priv == NULL && bo == NULL) + return; + if (priv != NULL) { - if (list_is_empty(&priv->batch)) { + if (priv->bo == bo) + return; + + if (list_is_empty(&priv->batch) || + !drm_intel_bo_is_reusable(priv->bo)) { dri_bo_unreference(priv->bo); } else { list_add(&priv->in_flight, &intel->in_flight);