From: Dave Airlie <airl...@redhat.com> Otherwise we were writing these as 4 components, and things went bad.
Fixes (the remaining): dEQP-VK.clipping.user_defined.*.vert_geom.* Signed-off-by: Dave Airlie <airl...@redhat.com> --- src/amd/common/ac_nir_to_llvm.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index d817aec..3870204 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -4318,17 +4318,19 @@ handle_shader_output_decl(struct nir_to_llvm_context *ctx, variable->data.driver_location = idx * 4; - if (ctx->stage == MESA_SHADER_VERTEX) { - + if (ctx->stage == MESA_SHADER_VERTEX || + ctx->stage == MESA_SHADER_GEOMETRY) { if (idx == VARYING_SLOT_CLIP_DIST0 || idx == VARYING_SLOT_CULL_DIST0) { int length = glsl_get_length(variable->type); - if (idx == VARYING_SLOT_CLIP_DIST0) { - ctx->shader_info->vs.clip_dist_mask = (1 << length) - 1; - ctx->num_clips = length; - } else if (idx == VARYING_SLOT_CULL_DIST0) { - ctx->shader_info->vs.cull_dist_mask = (1 << length) - 1; - ctx->num_culls = length; + if (ctx->stage == MESA_SHADER_VERTEX) { + if (idx == VARYING_SLOT_CLIP_DIST0) { + ctx->shader_info->vs.clip_dist_mask = (1 << length) - 1; + ctx->num_clips = length; + } else if (idx == VARYING_SLOT_CULL_DIST0) { + ctx->shader_info->vs.cull_dist_mask = (1 << length) - 1; + ctx->num_culls = length; + } } if (length > 4) attrib_count = 2; -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev