From 097c43e561bb4358941ec422a2bfaec49612d9c7 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 21 Jun 2018 12:05:32 +1000 Subject: [PATCH] shader: add gl_HelperInvocation support Reviewed-by: Gert Wollny --- src/vrend_shader.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vrend_shader.c b/src/vrend_shader.c index bab29a8..48ee1b6 100644 --- a/src/vrend_shader.c +++ b/src/vrend_shader.c @@ -1195,6 +1195,9 @@ iter_declaration(struct tgsi_iterate_context *iter, } else if (decl->Semantic.Name == TGSI_SEMANTIC_VERTEXID) { name_prefix = "gl_VertexID"; ctx->shader_req_bits |= SHADER_REQ_INTS; + } else if (decl->Semantic.Name == TGSI_SEMANTIC_HELPER_INVOCATION) { + name_prefix = "gl_HelperInvocation"; + ctx->shader_req_bits |= SHADER_REQ_ES31_COMPAT; } else if (decl->Semantic.Name == TGSI_SEMANTIC_SAMPLEID) { name_prefix = "gl_SampleID"; ctx->shader_req_bits |= (SHADER_REQ_SAMPLE_SHADING | SHADER_REQ_INTS); @@ -3089,6 +3092,8 @@ get_source_info(struct dump_ctx *ctx, snprintf(srcs[i], 255, "ivec4(%s)", ctx->system_values[j].glsl_name); else snprintf(srcs[i], 255, "%s(vec4(intBitsToFloat(%s)))", get_string(stypeprefix), ctx->system_values[j].glsl_name); + } else if (ctx->system_values[j].name == TGSI_SEMANTIC_HELPER_INVOCATION) { + snprintf(srcs[i], 255, "uvec4(%s)", ctx->system_values[j].glsl_name); } else if (ctx->system_values[j].name == TGSI_SEMANTIC_TESSINNER || ctx->system_values[j].name == TGSI_SEMANTIC_TESSOUTER) { snprintf(srcs[i], 255, "%s(vec4(%s[%d], %s[%d], %s[%d], %s[%d]))",