Mesa (main): compiler: Add new non-Multiview Task/Mesh builtins
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Aug 28 04:47:08 UTC 2021
Module: Mesa
Branch: main
Commit: 813d41829da42a99e59586473ca440ffac261f93
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=813d41829da42a99e59586473ca440ffac261f93
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date: Thu Apr 29 13:45:56 2021 -0700
compiler: Add new non-Multiview Task/Mesh builtins
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10600>
---
src/compiler/shader_enums.c | 24 ++++++++++++++++++++++++
src/compiler/shader_enums.h | 5 +++++
2 files changed, 29 insertions(+)
diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c
index 8e6babed870..78d5c8baf70 100644
--- a/src/compiler/shader_enums.c
+++ b/src/compiler/shader_enums.c
@@ -160,6 +160,30 @@ gl_varying_slot_name_for_stage(gl_varying_slot slot, gl_shader_stage stage)
if (stage != MESA_SHADER_FRAGMENT && slot == VARYING_SLOT_PRIMITIVE_SHADING_RATE)
return "VARYING_SLOT_PRIMITIVE_SHADING_RATE";
+ switch (stage) {
+ case MESA_SHADER_MESH:
+ switch (slot) {
+ case VARYING_SLOT_PRIMITIVE_COUNT: return "VARYING_SLOT_PRIMITIVE_COUNT";
+ case VARYING_SLOT_PRIMITIVE_INDICES: return "VARYING_SLOT_PRIMITIVE_INDICES";
+ default:
+ /* Not an overlapping value. */
+ break;
+ }
+ break;
+
+ case MESA_SHADER_TASK:
+ switch (slot) {
+ case VARYING_SLOT_TASK_COUNT: return "VARYING_SLOT_TASK_COUNT";
+ default:
+ /* Not an overlapping value. */
+ break;
+ }
+ break;
+
+ default:
+ break;
+ }
+
static const char *names[] = {
ENUM(VARYING_SLOT_POS),
ENUM(VARYING_SLOT_COL0),
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
index 1833b8c1ed0..1dc8f7a646c 100644
--- a/src/compiler/shader_enums.h
+++ b/src/compiler/shader_enums.h
@@ -303,6 +303,11 @@ typedef enum
VARYING_SLOT_VIEW_INDEX,
VARYING_SLOT_VIEWPORT_MASK, /* Does not appear in FS */
VARYING_SLOT_PRIMITIVE_SHADING_RATE = VARYING_SLOT_FACE, /* Does not appear in FS. */
+
+ VARYING_SLOT_PRIMITIVE_COUNT = VARYING_SLOT_TESS_LEVEL_OUTER, /* Only appears in MESH. */
+ VARYING_SLOT_PRIMITIVE_INDICES = VARYING_SLOT_TESS_LEVEL_INNER, /* Only appears in MESH. */
+ VARYING_SLOT_TASK_COUNT = VARYING_SLOT_BOUNDING_BOX0, /* Only appears in TASK. */
+
VARYING_SLOT_VAR0 = 32, /* First generic varying slot */
/* the remaining are simply for the benefit of gl_varying_slot_name()
* and not to be construed as an upper bound:
More information about the mesa-commit
mailing list