[Mesa-dev] [PATCH] i965/gen8: Use HALIGN_16 for single sample mcs buffers

Mark Janes mark.a.janes at intel.com
Fri Jun 19 10:05:42 PDT 2015


Tested-by: Mark Janes <mark.a.janes at intel.com>

Ben Widawsky <benjamin.widawsky at intel.com> writes:

> The original code meant to do this, but was only checking num_samples == 1 to
> figure out if a surface was fast clear capable. However, we can allocate single
> sample miptrees with num_samples == 0 (when it's an internally created buffer).
>
> This fixes a bunch of the piglit tests on gen8. Other gens should have been
> fine.
>
> Here is the order of events that allowed this to slip through:
> t0: I wrote halign patches and tested them. These alignment assertions are for
>    gen8 fast clear surfaces, basically.
> t1: I pushed bogus perf patch which made fast clears never happen
> t2: Reworked halign patches based on Chad's feedback and introduced the bug this
>    patch fixes.
> t2.5: I tested reworked patches, but assertion wasn't hit because of t1.
> t3. Matt fixed issue in t1 which made fast clears happen here:
> commit 22af95af8316f2888a3935cdf774ff0997b3dd42
> Author: Matt Turner <mattst88 at gmail.com>
> Date:   Thu Jun 18 16:14:50 2015 -0700
>
>     i965: Add missing braces around if-statement.
>
> This logic should match that of the v1 of my halign patch series.
>
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> Cc: Matt Turner <mattst88 at gmail.com>
> Reported-by: Kenneth Graunke <kenneth at whitecape.org>
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> index 80c52f2..6aa969a 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -501,7 +501,7 @@ intel_miptree_create_layout(struct brw_context *brw,
>      *  6   |      ?         |        ?
>      */
>     if (intel_miptree_is_fast_clear_capable(brw, mt)) {
> -      if (brw->gen >= 9 || (brw->gen == 8 && num_samples == 1))
> +      if (brw->gen >= 9 || (brw->gen == 8 && num_samples <= 1))
>           layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16;
>     } else if (brw->gen >= 9 && num_samples > 1) {
>        layout_flags |= MIPTREE_LAYOUT_FORCE_HALIGN16;
> -- 
> 2.4.4
>
> _______________________________________________
> 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