Adding people who may have some shot at understanding this stuff On Tue, Sep 12, 2017 at 4:23 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> The setTexBuffer2 hook from GLX is used to implement glxBindTexImageEXT > which has tighter restrictions than just "it's shared". In particular, > it says that any rendering to the image while it is bound causes the > contents to become undefined. This means that we can do whatever aux > tracking we want between glxBindTexImageEXT and glxReleaseTexImageEXT so > long as we always transition from external in Bind and to external in > Release. > > The fact that we were using make_shareable before was a problem because > it would resolve away 100% of the aux data and then throw away our > reference to the aux buffer. If the aux data was shared with some other > application (i.e. if we're using I915_FORMAT_MOD_Y_TILED_CCS) then we > would forget that the aux data even existed for the rest of eternity. > This is fine for the first frame but any subsequent calls to > glxBindTexImageEXT would bind the texture as if it has no aux > whatsoever and no resolves would happen and texturing would happen as if > there is no aux. This was causing rendering corruption in mutter when > running on top of X11 with modifiers. > --- > src/mesa/drivers/dri/i965/intel_tex_image.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c > b/src/mesa/drivers/dri/i965/intel_tex_image.c > index 09ff287..0e8a947 100644 > --- a/src/mesa/drivers/dri/i965/intel_tex_image.c > +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c > @@ -251,7 +251,7 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint > target, > internal_format = GL_RGB; > } > > - intel_miptree_make_shareable(brw, rb->mt); > + intel_miptree_prepare_external(brw, rb->mt); > > _mesa_lock_texture(&brw->ctx, texObj); > texImage = _mesa_get_tex_image(ctx, texObj, target, 0); > -- > 2.5.0.400.gff86faf > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev