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@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4529>
This commit is contained in:
Ilia Mirkin
2020-04-10 13:47:05 -04:00
parent 3a9e66277a
commit 54424a3d13
4 changed files with 6 additions and 0 deletions

View File

@@ -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),

View File

@@ -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))
/*@}*/

View File

@@ -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;

View File

@@ -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]",