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

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Mar 16 08:34:28 UTC 2018



On 03/16/2018 09:15 AM, Timothy Arceri wrote:
> 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 %)

Mmmh, the stats don't seem really good to me. Which games are affected 
by this change?

As you know, we shouldn't *always* trust shader stats. Though, it would 
quite appreciated to run some benchmarks in this situation.

> 
> 
>>
>> 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