From 5d1b81d8ac9cab3f9213b7d19ac2f3035cf60a3c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 1 Nov 2021 10:44:59 -0400 Subject: [PATCH] zink: clamp PIPE_SHADER_CAP_MAX_INPUTS for xfb vertex shader stages that can produce xfb must have their input size clamped to the compiler define MAX_VARYING to successfully be able to export an xfb output for each input fixes KHR-GL46.geometry_shader.limits.max_input_components cc: mesa-stable Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_screen.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index a07083213f2..fd8dcf2f82a 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -790,6 +790,14 @@ zink_get_shader_param(struct pipe_screen *pscreen, default: return 0; /* unsupported stage */ } + switch (shader) { + case PIPE_SHADER_VERTEX: + case PIPE_SHADER_TESS_EVAL: + case PIPE_SHADER_GEOMETRY: + /* last vertex stage must support streamout, and this is capped in glsl compiler */ + return MIN2(max, MAX_VARYING); + default: break; + } return MIN2(max, 64); // prevent overflowing struct shader_info::inputs_read }