From bc56dfbf3f20504fce13e0f1730eea05ea0ea69a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 16 Aug 2017 11:15:24 -0700 Subject: [PATCH] i965: Mark all EGLimages as non-coherent. EGLimages are shared with external users, and we don't know what they're going to do with them. They might scan them out. They might access them in a way that doesn't work with our explicit clflushing. It's safest to simply mark them non-coherent. Chris Wilson caught this problem and wrote a similar (though less aggressive) patch to solve it; the miptree code has since undergone a lot of refactoring so I had to rewrite it. Cc: "17.2" Reviewed-by: Jason Ekstrand Reviewed-by: Chris Wilson --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 237ab182712..dab60c4b045 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -1061,12 +1061,10 @@ intel_miptree_create_for_dri_image(struct brw_context *brw, } } - /* If this is a window-system image, then we can no longer assume it's - * cache-coherent because it may suddenly get scanned out which destroys - * coherency. + /* Don't assume coherency for imported EGLimages. We don't know what + * external clients are going to do with it. They may scan it out. */ - if (is_winsys_image) - image->bo->cache_coherent = false; + image->bo->cache_coherent = false; return mt; } -- 2.30.2