[Mesa-dev] [PATCH 2/5] i965/gen8+: Don't upload the MCS buffer for single-sampled textures
Ben Widawsky
ben at bwidawsk.net
Wed Nov 25 11:01:18 PST 2015
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.
> 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
More information about the mesa-dev
mailing list