From: Ilia Mirkin Date: Fri, 10 Apr 2020 17:47:05 +0000 (-0400) Subject: compiler: add VARYING_SLOT_VIEWPORT_MASK X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=54424a3d13f97bb1714f168f127f40d180f78a6b;p=mesa.git 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 Reviewed-by: Marek Olšák Part-of: --- 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]",