lima: lower bool to float when building shaders
authorIcenowy Zheng <icenowy@aosc.io>
Thu, 11 Apr 2019 15:54:03 +0000 (23:54 +0800)
committerIcenowy Zheng <icenowy@aosc.io>
Fri, 12 Apr 2019 05:40:47 +0000 (13:40 +0800)
commit400f0bfba123e829fafa6449e6d45e11b6f20e78
tree9b1a0220dec51258efc25540e0941173b0e18191
parent8f1c686bca3f98ef8b1e5f1e6b781a8dd2f2c417
lima: lower bool to float when building shaders

Both processors of Mali Utgard are float-only, so bool are not
acceptable data type of them. Fortunately the NIR compiler
infrastructure has a lower pass to lower bool to float.

Call this lower pass to lower bool to float for both GP and PP. This
makes Glamor on Xorg server 1.20.3 at least doesn't hang when starting
gtk3-demo.

The old map of nir op bcsel is changed to fcsel, and the map of b2f32 in
PP is dropped because it's not needed now (it's originally only mapped
to ppir_op_mov).

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
src/gallium/drivers/lima/ir/gp/nir.c
src/gallium/drivers/lima/ir/pp/nir.c
src/gallium/drivers/lima/lima_program.c