[Mesa-dev] [PATCH 2/5] i965/gen8+: Don't upload the MCS buffer for single-sampled textures

Pohjolainen, Topi topi.pohjolainen at intel.com
Thu Nov 26 01:18:34 PST 2015


On Wed, Nov 25, 2015 at 11:01:18AM -0800, Ben Widawsky wrote:
> On Wed, Nov 25, 2015 at 06:36:36PM +0100, Neil Roberts wrote:
> > For single-sampled textures the MCS buffer is only used to implement
> > fast clears. However the surface always needs to be resolved before
> > being used as a texture anyway so the the MCS buffer doesn't actually
> > achieve anything. This is important for Gen9 because in that case SRGB
> 
> I admit a good deal of ignorance, but why do we have to do a resolve before we
> sample from it? I thought the whole point of the MCS was that we can sample from
> it without a resolve.

This is my understanding also, I can't see much benefit from the fast clear
if it would need to be anyway resolved before reading it using GPU (reading
using CPU is then another story of course).

> 
> > surfaces are not supported for fast clears and we don't want the
> > hardware to see the MCS buffer in that case.
> > ---
> >  src/mesa/drivers/dri/i965/gen8_surface_state.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c
> > index 80252a5..075424a 100644
> > --- a/src/mesa/drivers/dri/i965/gen8_surface_state.c
> > +++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c
> > @@ -225,7 +225,11 @@ gen8_emit_texture_surface_state(struct brw_context *brw,
> >        pitch = mt->pitch;
> >     }
> >  
> > -   if (mt->mcs_mt) {
> > +   /* The MCS is not uploaded for single-sampled surfaces because the color
> > +    * buffer should always have been resolved before it is used as a texture
> > +    * so there is no need for it.
> > +    */
> > +   if (mt->mcs_mt && mt->num_samples > 1) {
> >        aux_mt = mt->mcs_mt;
> >        aux_mode = GEN8_SURFACE_AUX_MODE_MCS;
> >  
> 
> 
> -- 
> Ben Widawsky, Intel Open Source Technology Center
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list