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

Anuj Phogat anuj.phogat at gmail.com
Fri Jun 19 13:44:22 PDT 2015


On Fri, Jun 19, 2015 at 10:05 AM, Mark Janes <mark.a.janes at intel.com> wrote:
> 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
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list