summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.h2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index b6c88af3a9e..9d155c908f5 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -227,10 +227,14 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
if (semName == TGSI_SEMANTIC_CLIPDIST) {
info->num_written_clipdistance +=
util_bitcount(fulldecl->Declaration.UsageMask);
+ info->clipdist_writemask |=
+ fulldecl->Declaration.UsageMask << (semIndex*4);
}
else if (semName == TGSI_SEMANTIC_CULLDIST) {
info->num_written_culldistance +=
util_bitcount(fulldecl->Declaration.UsageMask);
+ info->culldist_writemask |=
+ fulldecl->Declaration.UsageMask << (semIndex*4);
}
else if (semName == TGSI_SEMANTIC_VIEWPORT_INDEX) {
info->writes_viewport_index = TRUE;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h
index b50b650c801..56079977bf1 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
@@ -81,6 +81,8 @@ struct tgsi_shader_info
boolean writes_layer;
boolean is_msaa_sampler[PIPE_MAX_SAMPLERS];
+ unsigned clipdist_writemask;
+ unsigned culldist_writemask;
unsigned num_written_culldistance;
unsigned num_written_clipdistance;
/**