[Mesa-dev] [PATCH 2/2] nvc0: fix setting of tess_mode in various situations

Ilia Mirkin imirkin at alum.mit.edu
Sat May 21 20:49:28 UTC 2016


On Sat, May 21, 2016 at 4:39 PM, Martin Peres <martin.peres at free.fr> wrote:
> On 21/05/16 23:18, Ilia Mirkin wrote:
>>
>> This fixes a lot of INVALID_VALUE errors reported by the card when
>> running dEQP tests.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> Cc: "11.1 11.2" <mesa-stable at lists.freedesktop.org>
>> ---
>>   src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 17 +++++++++++++----
>>   1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
>> b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
>> index b573ac0..37517c22 100644
>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
>> @@ -294,11 +294,20 @@ nvc0_tp_get_tess_mode(struct nvc0_program *tp,
>> struct nv50_ir_prog_info *info)
>>         return;
>>      }
>>   -   if (info->prop.tp.winding > 0)
>> -      tp->tp.tess_mode |= NVC0_3D_TESS_MODE_CW;
>> +   // It seems like lines want the "CW" bit to indicate they're
>> connected, and
>> +   // spit out errors in dmesg when the "CONNECTED" bit is set.
>
>
> // is a c++ thing :)
>
> Seems like the rest of the file is mostly using /* */

Indeed. And I fixed that bit of it locally like 30s after I sent it.
Didn't seem worthwhile for a v2.

>
>> +   if (info->prop.tp.outputPrim != PIPE_PRIM_POINTS) {
>> +      if (info->prop.tp.domain == PIPE_PRIM_LINES)
>> +         tp->tp.tess_mode |= NVC0_3D_TESS_MODE_CW;
>> +      else
>> +         tp->tp.tess_mode |= NVC0_3D_TESS_MODE_CONNECTED;
>> +   }
>>   -   if (info->prop.tp.outputPrim != PIPE_PRIM_POINTS)
>> -      tp->tp.tess_mode |= NVC0_3D_TESS_MODE_CONNECTED;
>> +   // Winding only matters for triangles/quads, not lines.
>> +   if (info->prop.tp.domain != PIPE_PRIM_LINES &&
>> +       info->prop.tp.outputPrim != PIPE_PRIM_POINTS &&
>> +       info->prop.tp.winding > 0)
>> +      tp->tp.tess_mode |= NVC0_3D_TESS_MODE_CW;
>>        switch (info->prop.tp.partitioning) {
>>      case PIPE_TESS_SPACING_EQUAL:
>
>
>


More information about the mesa-dev mailing list