summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2014-12-07 19:08:28 +0100
committerMarek Olšák <[email protected]>2014-12-10 21:59:36 +0100
commit8115797801c10c5757c34294ef12018702c6bd91 (patch)
tree5a62e05c4a153eb6f35cd0bafc3dc79e5b29d361
parent946eb08e6a95510596471168285a20bbe1554bb3 (diff)
tgsi: add clip and cull distance writemasks into tgsi_shader_info
Reviewed-by: Brian Paul <[email protected]>
-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;
/**