summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2019-02-04 14:31:59 -0500
committerMarek Olšák <[email protected]>2019-04-23 11:28:56 -0400
commit9b33465481daf465cde3ff46261486ab5c6433c6 (patch)
tree637f7217a9da875c9bc91052325529ffaa645310
parent77449d7c41acab8b365023032512cf7eaed6b886 (diff)
tgsi/scan: add uses_drawid
Tested-by: Dieter Nützel <[email protected]> Acked-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c3
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.h1
-rw-r--r--src/gallium/drivers/radeonsi/si_shader_nir.c3
3 files changed, 7 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index bfb415e439a..4cb1a3152c3 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -683,6 +683,9 @@ scan_declaration(struct tgsi_shader_info *info,
case TGSI_SEMANTIC_BASEVERTEX:
info->uses_basevertex = TRUE;
break;
+ case TGSI_SEMANTIC_DRAWID:
+ info->uses_drawid = TRUE;
+ break;
case TGSI_SEMANTIC_PRIMID:
info->uses_primid = TRUE;
break;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h
index 09eac4da95a..51d85af4fcb 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
@@ -118,6 +118,7 @@ struct tgsi_shader_info
boolean uses_vertexid;
boolean uses_vertexid_nobase;
boolean uses_basevertex;
+ boolean uses_drawid;
boolean uses_primid;
boolean uses_frontface;
boolean uses_invocationid;
diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c
index 5a925f19e09..4fe01ba0607 100644
--- a/src/gallium/drivers/radeonsi/si_shader_nir.c
+++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
@@ -171,6 +171,9 @@ static void scan_instruction(const struct nir_shader *nir,
case nir_intrinsic_load_base_vertex:
info->uses_basevertex = 1;
break;
+ case nir_intrinsic_load_draw_id:
+ info->uses_drawid = 1;
+ break;
case nir_intrinsic_load_primitive_id:
info->uses_primid = 1;
break;