[Mesa-dev] [PATCH v2] nir: add a comparison simplification

Timothy Arceri tarceri at itsqueeze.com
Fri Mar 16 08:15:48 UTC 2018


On 16/03/18 18:45, Samuel Pitoiset wrote:
> shader stats?

I didn't bother posting them because they are misleading. There are a 
few instructions remove here and there but the main changes are due to 
loop unrolling.

Totals from affected shaders:
SGPRS: 640 -> 664 (3.75 %)
VGPRS: 352 -> 368 (4.55 %)
Spilled SGPRs: 6 -> 8 (33.33 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 24200 -> 36216 (49.65 %) bytes
LDS: 0 -> 0 (0.00 %) blocks
Max Waves: 52 -> 51 (-1.92 %)
Wait states: 0 -> 0 (0.00 %)


> 
> On 03/16/2018 06:48 AM, Timothy Arceri wrote:
>> These can be found in the Tomb Raider shaders, eliminating them
>> helps unroll more loops.
>> ---
>>   src/compiler/nir/nir_opt_algebraic.py | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/src/compiler/nir/nir_opt_algebraic.py 
>> b/src/compiler/nir/nir_opt_algebraic.py
>> index c9575e6be4..2148bc121b 100644
>> --- a/src/compiler/nir/nir_opt_algebraic.py
>> +++ b/src/compiler/nir/nir_opt_algebraic.py
>> @@ -152,6 +152,7 @@ optimizations = [
>>      (('inot', ('ige', a, b)), ('ilt', a, b)),
>>      (('inot', ('ieq', a, b)), ('ine', a, b)),
>>      (('inot', ('ine', a, b)), ('ieq', a, b)),
>> +   (('ine', ('b2i', 'a at bool'), 0), 'a'),
>>      # 0.0 >= b2f(a)
>>      # b2f(a) <= 0.0
>>


More information about the mesa-dev mailing list