From 2b77a658005afe018d49609fb86c2c1c39f39ebc Mon Sep 17 00:00:00 2001 From: SoroushIMG Date: Wed, 4 Jan 2023 10:05:09 +0000 Subject: [PATCH] zink: fix disappearing smooth lines after workaround The passthrough geometery shader was using points for smooth lines. This meant the shader would always statically get 1 vertex and never emit a line. Fixes: 80285db9efe ("zink: lower smooth-lines if not supported") Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_program.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 898ca6c617e..7fc0ddbbebc 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -1875,8 +1875,8 @@ zink_set_primitive_emulation_keys(struct zink_context *ctx) nir_shader *nir = nir_create_passthrough_gs( &screen->nir_options, ctx->gfx_stages[prev_vertex_stage]->nir, - lower_line_stipple ? SHADER_PRIM_LINE_STRIP : SHADER_PRIM_POINTS, - lower_line_stipple ? 2 : 1); + (lower_line_stipple || lower_line_smooth) ? SHADER_PRIM_LINE_STRIP : SHADER_PRIM_POINTS, + (lower_line_stipple || lower_line_smooth) ? 2 : 1); struct zink_shader *shader = zink_shader_create(screen, nir, NULL); ctx->gfx_stages[prev_vertex_stage]->non_fs.generated_gs = shader;