Mesa (master): compiler: add VARYING_SLOT_VIEWPORT_MASK

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 16 00:42:17 UTC 2020


Module: Mesa
Branch: master
Commit: 54424a3d13f97bb1714f168f127f40d180f78a6b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=54424a3d13f97bb1714f168f127f40d180f78a6b

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Apr 10 13:47:05 2020 -0400

compiler: add VARYING_SLOT_VIEWPORT_MASK

See GL_NV_viewport_array2::gl_ViewportMask for how this is supposed
to work.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4529>

---

 src/compiler/shader_enums.c   | 1 +
 src/compiler/shader_enums.h   | 2 ++
 src/mesa/main/mtypes.h        | 1 +
 src/mesa/program/prog_print.c | 2 ++
 4 files changed, 6 insertions(+)

diff --git a/src/compiler/shader_enums.c b/src/compiler/shader_enums.c
index 977be6b89e0..a2a5eb82a61 100644
--- a/src/compiler/shader_enums.c
+++ b/src/compiler/shader_enums.c
@@ -165,6 +165,7 @@ gl_varying_slot_name(gl_varying_slot slot)
       ENUM(VARYING_SLOT_BOUNDING_BOX0),
       ENUM(VARYING_SLOT_BOUNDING_BOX1),
       ENUM(VARYING_SLOT_VIEW_INDEX),
+      ENUM(VARYING_SLOT_VIEWPORT_MASK),
       ENUM(VARYING_SLOT_VAR0),
       ENUM(VARYING_SLOT_VAR1),
       ENUM(VARYING_SLOT_VAR2),
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
index bf10a14a881..56062894a94 100644
--- a/src/compiler/shader_enums.h
+++ b/src/compiler/shader_enums.h
@@ -261,6 +261,7 @@ typedef enum
    VARYING_SLOT_BOUNDING_BOX0, /* Only appears as TCS output. */
    VARYING_SLOT_BOUNDING_BOX1, /* Only appears as TCS output. */
    VARYING_SLOT_VIEW_INDEX,
+   VARYING_SLOT_VIEWPORT_MASK, /* Does not appear in FS */
    VARYING_SLOT_VAR0, /* 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:
@@ -343,6 +344,7 @@ const char *gl_varying_slot_name(gl_varying_slot slot);
 #define VARYING_BIT_TESS_LEVEL_INNER BITFIELD64_BIT(VARYING_SLOT_TESS_LEVEL_INNER)
 #define VARYING_BIT_BOUNDING_BOX0 BITFIELD64_BIT(VARYING_SLOT_BOUNDING_BOX0)
 #define VARYING_BIT_BOUNDING_BOX1 BITFIELD64_BIT(VARYING_SLOT_BOUNDING_BOX1)
+#define VARYING_BIT_VIEWPORT_MASK BITFIELD64_BIT(VARYING_SLOT_VIEWPORT_MASK)
 #define VARYING_BIT_VAR(V) BITFIELD64_BIT(VARYING_SLOT_VAR0 + (V))
 /*@}*/
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 7560a828b32..487e7e6f326 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -105,6 +105,7 @@ _mesa_varying_slot_in_fs(gl_varying_slot slot)
    case VARYING_SLOT_TESS_LEVEL_INNER:
    case VARYING_SLOT_BOUNDING_BOX0:
    case VARYING_SLOT_BOUNDING_BOX1:
+   case VARYING_SLOT_VIEWPORT_MASK:
       return GL_FALSE;
    default:
       return GL_TRUE;
diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c
index 049bef2c634..c34e6cf308a 100644
--- a/src/mesa/program/prog_print.c
+++ b/src/mesa/program/prog_print.c
@@ -165,6 +165,7 @@ arb_input_attrib_string(GLuint index, GLenum progType)
       "fragment.(twenty-eight)", /* VARYING_SLOT_BOUNDING_BOX0 */
       "fragment.(twenty-nine)", /* VARYING_SLOT_BOUNDING_BOX1 */
       "fragment.(thirty)", /* VARYING_SLOT_VIEW_INDEX */
+      "fragment.(thirty-one)", /* VARYING_SLOT_VIEWPORT_MASK */
       "fragment.varying[0]",
       "fragment.varying[1]",
       "fragment.varying[2]",
@@ -297,6 +298,7 @@ arb_output_attrib_string(GLuint index, GLenum progType)
       "result.(twenty-eight)", /* VARYING_SLOT_BOUNDING_BOX0 */
       "result.(twenty-nine)", /* VARYING_SLOT_BOUNDING_BOX1 */
       "result.(thirty)", /* VARYING_SLOT_VIEW_INDEX */
+      "result.(thirty-one)", /* VARYING_SLOT_VIEWPORT_MASK */
       "result.varying[0]",
       "result.varying[1]",
       "result.varying[2]",



More information about the mesa-commit mailing list