On Mon, Jun 26, 2017 at 09:27:53PM +0300, Pohjolainen, Topi wrote: > On Fri, Jun 16, 2017 at 03:41:36PM -0700, Jason Ekstrand wrote: > > We want to start using create_for_dri_image for all miptrees created > > from __DRIimage, including those which come from a window system. In > > order to allow for fast clears to still work on window system buffers, > > we need to allow for creating aux surfaces. > > --- > > src/mesa/drivers/dri/i965/intel_fbo.c | 2 +- > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 16 +++++++++++++--- > > src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 3 ++- > > src/mesa/drivers/dri/i965/intel_tex_image.c | 2 +- > > 4 files changed, 17 insertions(+), 6 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c > > b/src/mesa/drivers/dri/i965/intel_fbo.c > > index 130eab1..db4cfee 100644 > > --- a/src/mesa/drivers/dri/i965/intel_fbo.c > > +++ b/src/mesa/drivers/dri/i965/intel_fbo.c > > @@ -363,7 +363,7 @@ intel_image_target_renderbuffer_storage(struct > > gl_context *ctx, > > * content. > > */ > > irb->mt = intel_miptree_create_for_dri_image(brw, image, GL_TEXTURE_2D, > > - image->format); > > + image->format, false); > > if (!irb->mt) > > return; > > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > index 7b4d431..83c99ed 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > @@ -901,7 +901,8 @@ miptree_create_for_planar_image(struct brw_context *brw, > > struct intel_mipmap_tree * > > intel_miptree_create_for_dri_image(struct brw_context *brw, > > __DRIimage *image, GLenum target, > > - mesa_format format) > > + mesa_format format, > > + bool is_winsys_image) > > { > > if (image->planar_format && image->planar_format->nplanes > 0) > > return miptree_create_for_planar_image(brw, image, target); > > @@ -909,6 +910,16 @@ intel_miptree_create_for_dri_image(struct brw_context > > *brw, > > if (!brw->ctx.TextureFormatSupported[format]) > > return NULL; > > > > + /* If this image comes in from a window system, we have different > > + * requirements than if it comes in via an EGL import operation. Window > > + * system images can use any form of auxiliary compression we wish > > because > > + * they get "flushed" before being handed off to the window system and > > we > > + * have the opportunity to do resolves. Window system buffers also may > > be > > + * used for scanout so we need to flag that appropriately. > > + */ > > + const uint32_t mt_layout_flags = > > + is_winsys_image ? MIPTREE_LAYOUT_FOR_SCANOUT : > > MIPTREE_LAYOUT_DISABLE_AUX; > > Is there any particular why we couldn't pass 'layout_flags' directly instead > of 'is_winsys_image'? That would work at least for the next patch in the > series.
Okay, I just read patch 25. Ignore this comment. > > > + > > /* Disable creation of the texture's aux buffers because the driver > > exposes > > * no EGL API to manage them. That is, there is no API for resolving > > the aux > > * buffer's content to the main buffer nor for invalidating the aux > > buffer's > > @@ -917,8 +928,7 @@ intel_miptree_create_for_dri_image(struct brw_context > > *brw, > > struct intel_mipmap_tree *mt = > > intel_miptree_create_for_bo(brw, image->bo, format, > > image->offset, image->width, > > image->height, 1, > > - image->pitch, > > - MIPTREE_LAYOUT_DISABLE_AUX); > > + image->pitch, mt_layout_flags); > > if (mt == NULL) > > return NULL; > > > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > > index 8044a1b..2a4cda2 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h > > @@ -700,7 +700,8 @@ struct intel_mipmap_tree * > > intel_miptree_create_for_dri_image(struct brw_context *brw, > > __DRIimage *image, > > GLenum target, > > - mesa_format format); > > + mesa_format format, > > + bool is_winsys_image); > > > > bool > > intel_update_winsys_renderbuffer_miptree(struct brw_context *intel, > > diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c > > b/src/mesa/drivers/dri/i965/intel_tex_image.c > > index 76a6e13..53e1087 100644 > > --- a/src/mesa/drivers/dri/i965/intel_tex_image.c > > +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c > > @@ -344,7 +344,7 @@ intel_image_target_texture_2d(struct gl_context *ctx, > > GLenum target, > > } > > > > mt = intel_miptree_create_for_dri_image(brw, image, target, > > - image->format); > > + image->format, false); > > if (mt == NULL) > > return; > > > > -- > > 2.5.0.400.gff86faf > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev