[Mesa-dev] [PATCH v2 26/27] i965/miptree: More conservatively resolve external images

Jason Ekstrand jason at jlekstrand.net
Wed Jul 12 22:52:01 UTC 2017


On Wed, Jul 12, 2017 at 11:39 AM, Chad Versace <chadversary at chromium.org>
wrote:

> On Thu 29 Jun 2017, Jason Ekstrand wrote:
> > Instead of always doing a full resolve, only resolve the bits that are
> > needed.  This means that we only do a partial resolve when the miptree
> > modifier is I915_FORMAT_MOD_Y_TILED_CCS.
> >
> > Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> > ---
> >  src/mesa/drivers/dri/i965/brw_context.c       |  2 +-
> >  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 37
> +++++++++++++++++++++++++++
> >  src/mesa/drivers/dri/i965/intel_mipmap_tree.h |  9 +++++++
> >  3 files changed, 47 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_context.c
> b/src/mesa/drivers/dri/i965/brw_context.c
> > index 2525320..f086ed1 100644
> > --- a/src/mesa/drivers/dri/i965/brw_context.c
> > +++ b/src/mesa/drivers/dri/i965/brw_context.c
> > @@ -1338,7 +1338,7 @@ intel_resolve_for_dri2_flush(struct brw_context
> *brw,
> >        if (rb->mt->num_samples <= 1) {
> >           assert(rb->mt_layer == 0 && rb->mt_level == 0 &&
> >                  rb->layer_count == 1);
> > -         intel_miptree_prepare_access(brw, rb->mt, 0, 1, 0, 1, false,
> false);
> > +         intel_miptree_prepare_external(brw, rb->mt);
>
> Yes! Now it should be easy to hook up EGL_EXT_image_flush_external for
> CrOS.
>
> > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > index c4ed525..c1bd3af 100644
> > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> > @@ -636,6 +636,12 @@ struct intel_mipmap_tree
> >      */
> >     bool is_scanout;
> >
> > +   /**
> > +    * For external surfaces, this is DRM format modifier that was used
> to
> > +    * create or import the surface.
> > +    */
> > +   uint64_t drm_modifier;
>
> My natural question was "and what about non-external surfaces?". The
> question has a non-obvious answer since default initialization sets
> drm_modifier to a valid modifier (DRM_FORMAT_MOD_LINEAR). Please
> mention here that the modifier may be DRM_FORMAT_MOD_INVALID for
> non-external surfaces.
>

Ok, I can say something such as:  For internal surfaces, this will always
be DRM_FORMAT_MOD_INVALID.


> With that extra comment, this is
> Reviewed-by: Chad Versace <chadversary at chromium.org>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170712/63628b58/attachment.html>


More information about the mesa-dev mailing list