[virglrenderer-devel] [PATCH 3/8] shader: add gl_HelperInvocation support
Dave Airlie
airlied at gmail.com
Mon Jul 30 04:56:14 UTC 2018
From: Dave Airlie <airlied at redhat.com>
Reviewed-by: Gert Wollny <gert.wollny at collabora.com>
---
src/vrend_shader.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/vrend_shader.c b/src/vrend_shader.c
index b54e908..37595ac 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]))",
--
2.14.3
More information about the virglrenderer-devel
mailing list