From: Kenneth Graunke Date: Wed, 16 Aug 2017 18:15:24 +0000 (-0700) Subject: i965: Mark all EGLimages as non-coherent. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc56dfbf3f20504fce13e0f1730eea05ea0ea69a;p=mesa.git 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 --- 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; }