From bf910c94e061893e0ab722c817d9b66d366f1c30 Mon Sep 17 00:00:00 2001 From: Oleksii Bozhenko Date: Thu, 9 Mar 2023 14:06:15 +0200 Subject: [PATCH] glsl: fix gl_CullDistance lowering from float[8] to vec4[2] Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7152 Fixes: ad355652c20b ("glsl: Extend lowering pass for gl_ClipDistance to support other arrays") Signed-off-by: Oleksii Bozhenko oleksii.bozhenko@globallogic.com Reviewed-by: Timothy Arceri Part-of: --- src/compiler/glsl/gl_nir_link_varyings.c | 4 +--- src/compiler/glsl/lower_distance.cpp | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/glsl/gl_nir_link_varyings.c b/src/compiler/glsl/gl_nir_link_varyings.c index a4c6a0f7403..bb8de2d526d 100644 --- a/src/compiler/glsl/gl_nir_link_varyings.c +++ b/src/compiler/glsl/gl_nir_link_varyings.c @@ -686,10 +686,8 @@ xfb_decl_find_candidate(struct xfb_decl *xfb_decl, name = xfb_decl->var_name; break; case clip_distance: - name = "gl_ClipDistanceMESA"; - break; case cull_distance: - name = "gl_CullDistanceMESA"; + name = "gl_ClipDistanceMESA"; break; case tess_level_outer: name = "gl_TessLevelOuterMESA"; diff --git a/src/compiler/glsl/lower_distance.cpp b/src/compiler/glsl/lower_distance.cpp index 1df0421133a..a91c58cf5d5 100644 --- a/src/compiler/glsl/lower_distance.cpp +++ b/src/compiler/glsl/lower_distance.cpp @@ -169,6 +169,7 @@ lower_distance_visitor::visit(ir_variable *ir) *new_var = ir->clone(ralloc_parent(ir), NULL); (*new_var)->name = ralloc_strdup(*new_var, GLSL_CLIP_VAR_NAME); (*new_var)->data.location = VARYING_SLOT_CLIP_DIST0; + (*new_var)->data.assigned = true; if (!ir->type->fields.array->is_array()) { /* gl_ClipDistance (used for vertex, tessellation evaluation and