pan/midgard: Fix recursive csel scheduling
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Sat, 18 Jan 2020 14:34:39 +0000 (09:34 -0500)
committerMarge Bot <eric+marge@anholt.net>
Sat, 18 Jan 2020 14:40:05 +0000 (14:40 +0000)
commit4af8d5b0645bd96ed71691811e07c01b52af6094
tree8d7c7e0f881d268c0c8c5139ef7cca83a669b2b0
parent564a782ff78ebbb7c56a6a4ed84cac4818c91485
pan/midgard: Fix recursive csel scheduling

Corner case causing invalid scheduling on shaders with nested csels,
i.e. GLSL code resembling:

   (foo ? bool1 : bool2) ? x : y

By explicitly disallowing csels this is fixed.

Fixes INSTR_INVALID_ENC on a glamor shader (noticeable with slowdown and
visual corruption when scrolling "too far" on GTK apps).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3463>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3463>
src/panfrost/midgard/midgard_schedule.c