[Mesa-dev] [PATCH v2] i965: Prevent fast clears for MSRTs on SKL
Chad Versace
chad.versace at intel.com
Mon Nov 16 14:38:24 PST 2015
On Mon 16 Nov 2015, Neil Roberts wrote:
> There are currently a bunch of formats that behave strangely when
> sampling the cleared color from the MCS buffer on SKL. They seem to
> mostly be formats that don't have an alpha component, although it's
> not all of them, and we haven't yet found anything in the specs which
> would explain this. For now to be on the safe side this patch just
> prevents fast clears for MSRTs on SKL altogether so that when fast
> clears are eventually enabled it will only be for single-sampled
> surfaces. The assumption is that clears are probably more likely to be
> used in single-sampled applications anyway so we can at least get them
> working and we can enable MSRTs later once we understand the problem
> better.
>
> This patch should have no functional effect other than perhaps
> receiving fewer perf_debug messages on SKL+.
>
> v2: Improve the commit message to avoid saying the patch disables fast
> clears because it will be merged before fast clears are enabled
> for any surfaces so it doesn't actually disable anything.
> Reviewed-by: Ben Widawsky <benjamin.widawsky at intel.com>
> ---
> src/mesa/drivers/dri/i965/brw_meta_fast_clear.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c b/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c
> index dc085ba..85576a8 100644
> --- a/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c
> +++ b/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c
> @@ -524,6 +524,13 @@ brw_meta_fast_clear(struct brw_context *brw, struct gl_framebuffer *fb,
> if (brw->gen < 7)
> clear_type = REP_CLEAR;
>
> + /* Certain formats have unresolved issues with sampling from the MCS
> + * buffer on Gen9. This disables fast clears altogether for MSRTs until
> + * we can figure out what's going on.
> + */
> + if (brw->gen >= 9 && irb->mt->num_samples > 1)
> + clear_type = REP_CLEAR;
> +
> if (irb->mt->fast_clear_state == INTEL_FAST_CLEAR_STATE_NO_MCS)
> clear_type = REP_CLEAR;
Neil, do you have a bug open for this?
Reviewed-by: Chad Versace <chad.versace at intel.com>
More information about the mesa-dev
mailing list