Kenneth Graunke <kenn...@whitecape.org> writes:

> On 10/22/2012 10:21 AM, Eric Anholt wrote:
>> Chris Forbes <chr...@ijw.co.nz> writes:
>>
>>> Next few patches build on this to add other workarounds
>>> for packed formats.
>>
>>> diff --git a/src/mesa/drivers/dri/i965/brw_vs.h 
>>> b/src/mesa/drivers/dri/i965/brw_vs.h
>>> index adeff7f..9da4cb0 100644
>>> --- a/src/mesa/drivers/dri/i965/brw_vs.h
>>> +++ b/src/mesa/drivers/dri/i965/brw_vs.h
>>> @@ -39,13 +39,21 @@
>>>   #include "brw_program.h"
>>>   #include "program/program.h"
>>>
>>> +/* fixup bits for gl_packed_input_flags,
>>> + * to enable various VS workarounds */
>>> +#define BRW_ATTRIB_WA_COMPONENTS    7  /* mask for GL_FIXED scale channel 
>>> count */
>>> +#define BRW_ATTRIB_WA_NORMALIZE     8  /* normalize in shader */
>>> +#define BRW_ATTRIB_WA_BGRA          16 /* swap r/b channels in shader */
>>> +#define BRW_ATTRIB_WA_SIGN          32 /* interpret as signed in shader */
>>> +#define BRW_ATTRIB_WA_SCALE         64 /* interpret as scaled in shader */
>>
>> For bitmasks, we usually call a more-than-one-bit mask
>> BRW_WHATEVER_MASK.  Perhaps BRW_ATTRIB_GL_FIXED_COMPONENTS_MASK?.  For
>> the others, (1 << bit) as the value is preferred.  I think
>> BRA_ATTRIB_WA_SCALE whould be BRW_ATTRIB_WA_NORMALIZED, since in our
>> hardware SCALED refers to casting the integer value to a float, and the
>> last thing we need in vertex upload is more confusion about formats! :)
>>
>> Other than that, looks good.
>
> Eric,
>
> Do we actually need to record the size and writemask off channels when 
> applying the GL_FIXED rescaling (or such)?  I didn't think attributes 
> were packed, so each attribute would take up a whole vec4, and we can 
> just MUL the whole register and not worry about it.
>
> That would simplify the code that applies the workarounds a bit, and 
> also allow us to use an ordinary bitfield here.

Yeah, you do, otherwise the 1.0 we upload as the fourth channel of a 1,
2, or 3-component vertex array gets scaled down to 1/65536.

Attachment: pgpCQcQGMvBIp.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to