iris: Don't enable push constants just because there are system values
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 27 Dec 2018 08:49:56 +0000 (00:49 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:11 +0000 (10:26 -0800)
commitbc3bb2864503d85d5ccdbe552178a57ab9bf20b2
tree3791f32231df8a58cf2c0b38825e41c9e000c020
parent2ca0d913ea82c8025e801b33fc4a7800d4f7a9a7
iris: Don't enable push constants just because there are system values

System values are built-in uniforms.  We set them up as UBO values, and
might pull or push them.  UBO push analysis will take care of that.  We
only want to enable push constants if there's an actual range being
pushed.  Otherwise, we might get into a scenario where 3DSTATE_PS
enables push constants but 3DSTATE_CONSTANT_PS isn't pushing anything.

This fixes GPU hangs in Broadwell image load store tests which have
unused image param system values but no other uniforms.  (We shouldn't
be making those anyway, but that's a separate fix...)
src/gallium/drivers/iris/iris_state.c