From e16608e2338ded844a850c6242b08f65f43c1aed Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Sat, 6 Jun 2020 11:26:11 -0400 Subject: [PATCH] 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: --- src/freedreno/vulkan/tu_pipeline.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; } -- 2.30.2