[Mesa-dev] [PATCH] i965: Add comment to explain the weird-looking shadow compares.
Chris Forbes
chrisf at ijw.co.nz
Sat Apr 12 13:16:06 PDT 2014
Eek -- yes, I'll fix that!
On Sun, Apr 13, 2014 at 8:04 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> On 04/12/2014 03:34 AM, Chris Forbes wrote:
>> This always looks crazy when I stumble across it, until I remember
>> what the hardware is doing. Describing it ought to short-circuit
>> that process next time :)
>>
>> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
>> ---
>> src/mesa/drivers/dri/i965/intel_state.c | 17 ++++++++++++++---
>> 1 file changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/mesa/drivers/dri/i965/intel_state.c b/src/mesa/drivers/dri/i965/intel_state.c
>> index bfc35d8..1597db6 100644
>> --- a/src/mesa/drivers/dri/i965/intel_state.c
>> +++ b/src/mesa/drivers/dri/i965/intel_state.c
>> @@ -40,6 +40,17 @@
>> int
>> intel_translate_shadow_compare_func(GLenum func)
>> {
>> + /* GL specifies the result of shadow comparisons as:
>> + * 1 if ref <op> texel,
>> + * 0 otherwise.
>> + *
>> + * The hardware does:
>> + * 0 if texel <op> ref,
>> + * 1 otherwise.
>> + *
>> + * So, these look a bit strange because there's both a negation
>> + * and swapping of the arguments involved.
>> + */
>
> Thanks for adding this! I've had to do this a few times as well.
>
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>
>> switch (func) {
>> case GL_NEVER:
>> return BRW_COMPAREFUNCTION_ALWAYS;
>> @@ -50,11 +61,11 @@ intel_translate_shadow_compare_func(GLenum func)
>> case GL_GREATER:
>> return BRW_COMPAREFUNCTION_GEQUAL;
>> case GL_GEQUAL:
>> - return BRW_COMPAREFUNCTION_GREATER;
>> + return BRW_COMPAREFUNCTION_GREATER;
>
> Although your patch makes the 6-7 space indent consistent...we really
> want to use 2*3=6, not 7. :) If you wouldn't mind switching that before
> pushing...
>
>> case GL_NOTEQUAL:
>> - return BRW_COMPAREFUNCTION_EQUAL;
>> + return BRW_COMPAREFUNCTION_EQUAL;
>> case GL_EQUAL:
>> - return BRW_COMPAREFUNCTION_NOTEQUAL;
>> + return BRW_COMPAREFUNCTION_NOTEQUAL;
>> case GL_ALWAYS:
>> return BRW_COMPAREFUNCTION_NEVER;
>> }
>>
>
>
More information about the mesa-dev
mailing list