radv: Don't optimize after lowering FS inputs
authorConnor Abbott <cwabbott0@gmail.com>
Tue, 9 Jul 2019 11:43:13 +0000 (13:43 +0200)
committerConnor Abbott <cwabbott0@gmail.com>
Wed, 10 Jul 2019 08:10:20 +0000 (10:10 +0200)
commitf18b8a1174a3ac7ca1c75bfe8ac0a5e595d094f6
treeb80c3489df4021fae3e994f776b1691b15f4aea4
parentfe3898547ae9c0653d645b50afcc30278392f87f
radv: Don't optimize after lowering FS inputs

Currently this is done rather late in radv, after lowering booleans, so
it isn't safe to run additional optimizations that may add e.g. 1-bit
booleans. We could move the lowering parts earlier, but since right now
we only lower FS inputs and by this point all indirects have been
lowered away, there's no reason we should need to optimize anything.

One shader from Devil May Cry 5 was getting optimized, but only because
the optimization loop was working on 32-bit booleans which revealed an
opportunity that was hidden with 1-bit booleans, and we generated a
1-bit boolean which is invalid.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111092
Fixes: 118a66df9907772bb9e5503b736c95d7bb62d52c
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_shader.c