[Mesa-stable] [PATCH] radv: Translate logic ops.
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Mon May 14 07:07:10 UTC 2018
On Mon, May 14, 2018 at 5:09 AM, Nicholas Miell <nmiell at gmail.com> wrote:
> On 05/13/2018 06:14 PM, Bas Nieuwenhuizen wrote:
>>
>> -#define V_028808_X_0X00 0x00
>> -#define V_028808_X_0X05 0x05
>> -#define V_028808_X_0X0A 0x0A
>> -#define V_028808_X_0X0F 0x0F
>> -#define V_028808_X_0X11 0x11
>> -#define V_028808_X_0X22 0x22
>> -#define V_028808_X_0X33 0x33
>> -#define V_028808_X_0X44 0x44
>> -#define V_028808_X_0X50 0x50
>> -#define V_028808_X_0X55 0x55
>> -#define V_028808_X_0X5A 0x5A
>> -#define V_028808_X_0X5F 0x5F
>> -#define V_028808_X_0X66 0x66
>> -#define V_028808_X_0X77 0x77
>> -#define V_028808_X_0X88 0x88
>> -#define V_028808_X_0X99 0x99
>> -#define V_028808_X_0XA0 0xA0
>> -#define V_028808_X_0XA5 0xA5
>> -#define V_028808_X_0XAA 0xAA
>> -#define V_028808_X_0XAF 0xAF
>> -#define V_028808_X_0XBB 0xBB
>> -#define V_028808_X_0XCC 0xCC
>> -#define V_028808_X_0XDD 0xDD
>> -#define V_028808_X_0XEE 0xEE
>> -#define V_028808_X_0XF0 0xF0
>> -#define V_028808_X_0XF5 0xF5
>> -#define V_028808_X_0XFA 0xFA
>> -#define V_028808_X_0XFF 0xFF
>> +#define V_028808_ROP3_CLEAR 0x00
>> +#define V_028808_ROP3_NOR 0x11
>> +#define V_028808_ROP3_AND_INVERTED 0x22
>> +#define V_028808_ROP3_COPY_INVERTED 0x33
>> +#define V_028808_ROP3_AND_REVERSE 0x44
>> +#define V_028808_ROP3_INVERT 0x55
>> +#define V_028808_ROP3_XOR 0x66
>> +#define V_028808_ROP3_NAND 0x77
>> +#define V_028808_ROP3_AND 0x88
>> +#define V_028808_ROP3_EQUIVALENT 0x99
>> +#define V_028808_ROP3_NO_OP 0xaa
>> +#define V_028808_ROP3_OR_INVERTED 0xbb
>> +#define V_028808_ROP3_COPY 0xcc
>> +#define V_028808_ROP3_OR_REVERSE 0xdd
>> +#define V_028808_ROP3_OR 0xee
>> +#define V_028808_ROP3_SET 0xff
>
>
> This change removes names for some of the ternary raster operations
> supported by the hardware and also invents entirely new names for already
> named raster operations.
>
> Also I think this header is generated?
It is not (or maybe it was for the initial commit, but we've certainly
been hand editing it after).
>
> If it isn't, perhaps the constants should be:
>
> #define V_028808_ROP3_0_BLACKNESS 0x00
> #define V_028808_ROP3_DPon 0x05
> #define V_028808_ROP3_DPna 0x0A
> #define V_028808_ROP3_Pn 0x0F
> #define V_028808_ROP3_DSon_NOTSRCERASE 0x11
> #define V_028808_ROP3_DSna 0x22
> #define V_028808_ROP3_Sn_NOTSRCCOPY 0x33
> #define V_028808_ROP3_SDna_SRCERASE 0x44
> #define V_028808_ROP3_PDna 0x50
> #define V_028808_ROP3_Dn_DSTINVERT 0x55
> #define V_028808_ROP3_DPx_PATINVERT 0x5A
> #define V_028808_ROP3_DPan 0x5F
> #define V_028808_ROP3_DSx_SRCINVERT 0x66
> #define V_028808_ROP3_DSan 0x77
> #define V_028808_ROP3_DSa_SRCAND 0x88
> #define V_028808_ROP3_DSxn 0x99
> #define V_028808_ROP3_DPa 0xA0
> #define V_028808_ROP3_PDxn 0xA5
> #define V_028808_ROP3_D 0xAA
> #define V_028808_ROP3_DPno 0xAF
> #define V_028808_ROP3_DSno_MERGEPAINT 0xBB
> #define V_028808_ROP3_S_SRCCOPY 0xCC
> #define V_028808_ROP3_SDno 0xDD
> #define V_028808_ROP3_DSo_SRCPAINT 0xEE
> #define V_028808_ROP3_P_PATCOPY 0xF0
> #define V_028808_ROP3_PDno 0xF5
> #define V_028808_ROP3_DPo 0xFA
> #define V_028808_ROP3_1_WHITENESS 0xFF
I think the names I use are clearer in what they do. Yes I remove
some, but I feel that if someone needs those he is going to need to
figure out what they do anyway at which time they can be added back
with more useful names. Furthermore, how radeonsi uses it it suggests
that these are effectively 2 4-bit fields, so hopefully the person who
does that can figure out the pattern.
More information about the mesa-stable
mailing list