turnip: fix HW binning with geometry shader

Fixes failures with TU_DEBUG=forcebin and geometry shaders, for example:
dEQP-VK.binding_model.*geometry*
dEQP-VK.transform_feedback.simple.query*

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5370>
This commit is contained in:
Jonathan Marek 2020-06-06 11:26:11 -04:00
parent 6ac4d778fa
commit e16608e233

View file

@ -1578,9 +1578,13 @@ tu6_emit_program(struct tu_cs *cs,
if (binning_pass) {
/* if we have streamout, use full VS in binning pass, as the
* binning pass VS will have outputs on other than position/psize
* stripped out:
* stripped out
*
* GS also can have streamout, but we completely disable the
* the binning pass variant when GS is present because we don't
* support compiling correct binning pass variants with GS
*/
if (vs->shader->stream_output.num_outputs == 0) {
if (vs->shader->stream_output.num_outputs == 0 && !has_gs) {
vs = &builder->shaders[MESA_SHADER_VERTEX]->variants[1];
vs_offset = builder->binning_vs_offset;
}