From: Jonathan Marek Date: Sat, 6 Jun 2020 15:26:11 +0000 (-0400) Subject: turnip: fix HW binning with geometry shader X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e16608e2338ded844a850c6242b08f65f43c1aed;p=mesa.git 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 Part-of: --- diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index f95b9e174ac..a0369235444 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -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; }