shader_enums,mesa: move VERT_ATTRIB_EDGEFLAG to slot 31 for st/mesa
A future commit will replace st_vertex_program::input_to_index with a prefix bitcount of inputs_read, but it needs vertex inputs to be in the same order as vertex attribs. Some of the FF definitions don't make sense with this ordering and are removed. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11370>
This commit is contained in:
@@ -123,7 +123,6 @@ gl_vert_attrib_name(gl_vert_attrib attrib)
|
|||||||
ENUM(VERT_ATTRIB_COLOR1),
|
ENUM(VERT_ATTRIB_COLOR1),
|
||||||
ENUM(VERT_ATTRIB_FOG),
|
ENUM(VERT_ATTRIB_FOG),
|
||||||
ENUM(VERT_ATTRIB_COLOR_INDEX),
|
ENUM(VERT_ATTRIB_COLOR_INDEX),
|
||||||
ENUM(VERT_ATTRIB_EDGEFLAG),
|
|
||||||
ENUM(VERT_ATTRIB_TEX0),
|
ENUM(VERT_ATTRIB_TEX0),
|
||||||
ENUM(VERT_ATTRIB_TEX1),
|
ENUM(VERT_ATTRIB_TEX1),
|
||||||
ENUM(VERT_ATTRIB_TEX2),
|
ENUM(VERT_ATTRIB_TEX2),
|
||||||
@@ -149,6 +148,7 @@ gl_vert_attrib_name(gl_vert_attrib attrib)
|
|||||||
ENUM(VERT_ATTRIB_GENERIC13),
|
ENUM(VERT_ATTRIB_GENERIC13),
|
||||||
ENUM(VERT_ATTRIB_GENERIC14),
|
ENUM(VERT_ATTRIB_GENERIC14),
|
||||||
ENUM(VERT_ATTRIB_GENERIC15),
|
ENUM(VERT_ATTRIB_GENERIC15),
|
||||||
|
ENUM(VERT_ATTRIB_EDGEFLAG),
|
||||||
};
|
};
|
||||||
STATIC_ASSERT(ARRAY_SIZE(names) == VERT_ATTRIB_MAX);
|
STATIC_ASSERT(ARRAY_SIZE(names) == VERT_ATTRIB_MAX);
|
||||||
return NAME(attrib);
|
return NAME(attrib);
|
||||||
|
@@ -144,7 +144,6 @@ typedef enum
|
|||||||
VERT_ATTRIB_COLOR1,
|
VERT_ATTRIB_COLOR1,
|
||||||
VERT_ATTRIB_FOG,
|
VERT_ATTRIB_FOG,
|
||||||
VERT_ATTRIB_COLOR_INDEX,
|
VERT_ATTRIB_COLOR_INDEX,
|
||||||
VERT_ATTRIB_EDGEFLAG,
|
|
||||||
VERT_ATTRIB_TEX0,
|
VERT_ATTRIB_TEX0,
|
||||||
VERT_ATTRIB_TEX1,
|
VERT_ATTRIB_TEX1,
|
||||||
VERT_ATTRIB_TEX2,
|
VERT_ATTRIB_TEX2,
|
||||||
@@ -170,6 +169,10 @@ typedef enum
|
|||||||
VERT_ATTRIB_GENERIC13,
|
VERT_ATTRIB_GENERIC13,
|
||||||
VERT_ATTRIB_GENERIC14,
|
VERT_ATTRIB_GENERIC14,
|
||||||
VERT_ATTRIB_GENERIC15,
|
VERT_ATTRIB_GENERIC15,
|
||||||
|
/* This must be last to keep VS inputs and vertex attributes in the same
|
||||||
|
* order in st/mesa, and st/mesa always adds edgeflags as the last input.
|
||||||
|
*/
|
||||||
|
VERT_ATTRIB_EDGEFLAG,
|
||||||
VERT_ATTRIB_MAX
|
VERT_ATTRIB_MAX
|
||||||
} gl_vert_attrib;
|
} gl_vert_attrib;
|
||||||
|
|
||||||
@@ -187,12 +190,8 @@ const char *gl_vert_attrib_name(gl_vert_attrib attrib);
|
|||||||
* Symbolic constats to help iterating over
|
* Symbolic constats to help iterating over
|
||||||
* specific blocks of vertex attributes.
|
* specific blocks of vertex attributes.
|
||||||
*
|
*
|
||||||
* VERT_ATTRIB_FF
|
|
||||||
* includes all fixed function attributes as well as
|
|
||||||
* the aliased GL_NV_vertex_program shader attributes.
|
|
||||||
* VERT_ATTRIB_TEX
|
* VERT_ATTRIB_TEX
|
||||||
* include the classic texture coordinate attributes.
|
* include the classic texture coordinate attributes.
|
||||||
* Is a subset of VERT_ATTRIB_FF.
|
|
||||||
* VERT_ATTRIB_GENERIC
|
* VERT_ATTRIB_GENERIC
|
||||||
* include the OpenGL 2.0+ GLSL generic shader attributes.
|
* include the OpenGL 2.0+ GLSL generic shader attributes.
|
||||||
* These alias the generic GL_ARB_vertex_shader attributes.
|
* These alias the generic GL_ARB_vertex_shader attributes.
|
||||||
@@ -202,9 +201,6 @@ const char *gl_vert_attrib_name(gl_vert_attrib attrib);
|
|||||||
* They are located at the end of the generic attribute
|
* They are located at the end of the generic attribute
|
||||||
* block not to overlap with the generic 0 attribute.
|
* block not to overlap with the generic 0 attribute.
|
||||||
*/
|
*/
|
||||||
#define VERT_ATTRIB_FF(i) (VERT_ATTRIB_POS + (i))
|
|
||||||
#define VERT_ATTRIB_FF_MAX VERT_ATTRIB_GENERIC0
|
|
||||||
|
|
||||||
#define VERT_ATTRIB_TEX(i) (VERT_ATTRIB_TEX0 + (i))
|
#define VERT_ATTRIB_TEX(i) (VERT_ATTRIB_TEX0 + (i))
|
||||||
#define VERT_ATTRIB_TEX_MAX MAX_TEXTURE_COORD_UNITS
|
#define VERT_ATTRIB_TEX_MAX MAX_TEXTURE_COORD_UNITS
|
||||||
|
|
||||||
@@ -228,7 +224,6 @@ const char *gl_vert_attrib_name(gl_vert_attrib attrib);
|
|||||||
#define VERT_BIT_COLOR1 BITFIELD_BIT(VERT_ATTRIB_COLOR1)
|
#define VERT_BIT_COLOR1 BITFIELD_BIT(VERT_ATTRIB_COLOR1)
|
||||||
#define VERT_BIT_FOG BITFIELD_BIT(VERT_ATTRIB_FOG)
|
#define VERT_BIT_FOG BITFIELD_BIT(VERT_ATTRIB_FOG)
|
||||||
#define VERT_BIT_COLOR_INDEX BITFIELD_BIT(VERT_ATTRIB_COLOR_INDEX)
|
#define VERT_BIT_COLOR_INDEX BITFIELD_BIT(VERT_ATTRIB_COLOR_INDEX)
|
||||||
#define VERT_BIT_EDGEFLAG BITFIELD_BIT(VERT_ATTRIB_EDGEFLAG)
|
|
||||||
#define VERT_BIT_TEX0 BITFIELD_BIT(VERT_ATTRIB_TEX0)
|
#define VERT_BIT_TEX0 BITFIELD_BIT(VERT_ATTRIB_TEX0)
|
||||||
#define VERT_BIT_TEX1 BITFIELD_BIT(VERT_ATTRIB_TEX1)
|
#define VERT_BIT_TEX1 BITFIELD_BIT(VERT_ATTRIB_TEX1)
|
||||||
#define VERT_BIT_TEX2 BITFIELD_BIT(VERT_ATTRIB_TEX2)
|
#define VERT_BIT_TEX2 BITFIELD_BIT(VERT_ATTRIB_TEX2)
|
||||||
@@ -239,12 +234,13 @@ const char *gl_vert_attrib_name(gl_vert_attrib attrib);
|
|||||||
#define VERT_BIT_TEX7 BITFIELD_BIT(VERT_ATTRIB_TEX7)
|
#define VERT_BIT_TEX7 BITFIELD_BIT(VERT_ATTRIB_TEX7)
|
||||||
#define VERT_BIT_POINT_SIZE BITFIELD_BIT(VERT_ATTRIB_POINT_SIZE)
|
#define VERT_BIT_POINT_SIZE BITFIELD_BIT(VERT_ATTRIB_POINT_SIZE)
|
||||||
#define VERT_BIT_GENERIC0 BITFIELD_BIT(VERT_ATTRIB_GENERIC0)
|
#define VERT_BIT_GENERIC0 BITFIELD_BIT(VERT_ATTRIB_GENERIC0)
|
||||||
|
#define VERT_BIT_EDGEFLAG BITFIELD_BIT(VERT_ATTRIB_EDGEFLAG)
|
||||||
|
|
||||||
#define VERT_BIT(i) BITFIELD_BIT(i)
|
#define VERT_BIT(i) BITFIELD_BIT(i)
|
||||||
#define VERT_BIT_ALL BITFIELD_RANGE(0, VERT_ATTRIB_MAX)
|
#define VERT_BIT_ALL BITFIELD_RANGE(0, VERT_ATTRIB_MAX)
|
||||||
|
|
||||||
#define VERT_BIT_FF(i) VERT_BIT(i)
|
#define VERT_BIT_FF_ALL (BITFIELD_RANGE(0, VERT_ATTRIB_GENERIC0) | \
|
||||||
#define VERT_BIT_FF_ALL BITFIELD_RANGE(0, VERT_ATTRIB_FF_MAX)
|
VERT_BIT_EDGEFLAG)
|
||||||
#define VERT_BIT_TEX(i) VERT_BIT(VERT_ATTRIB_TEX(i))
|
#define VERT_BIT_TEX(i) VERT_BIT(VERT_ATTRIB_TEX(i))
|
||||||
#define VERT_BIT_TEX_ALL \
|
#define VERT_BIT_TEX_ALL \
|
||||||
BITFIELD_RANGE(VERT_ATTRIB_TEX(0), VERT_ATTRIB_TEX_MAX)
|
BITFIELD_RANGE(VERT_ATTRIB_TEX(0), VERT_ATTRIB_TEX_MAX)
|
||||||
|
@@ -75,7 +75,6 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||||
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||||
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||||
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
||||||
@@ -100,7 +99,8 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
||||||
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||||
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
||||||
VERT_ATTRIB_GENERIC15 /* VERT_ATTRIB_GENERIC15 */
|
VERT_ATTRIB_GENERIC15, /* VERT_ATTRIB_GENERIC15 */
|
||||||
|
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* ATTRIBUTE_MAP_MODE_POSITION
|
/* ATTRIBUTE_MAP_MODE_POSITION
|
||||||
@@ -116,7 +116,6 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||||
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||||
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||||
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
||||||
@@ -141,7 +140,8 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
||||||
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||||
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
||||||
VERT_ATTRIB_GENERIC15 /* VERT_ATTRIB_GENERIC15 */
|
VERT_ATTRIB_GENERIC15, /* VERT_ATTRIB_GENERIC15 */
|
||||||
|
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* ATTRIBUTE_MAP_MODE_GENERIC0
|
/* ATTRIBUTE_MAP_MODE_GENERIC0
|
||||||
@@ -157,7 +157,6 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
VERT_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||||
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
VERT_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||||
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||||
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
VERT_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
||||||
@@ -182,7 +181,8 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||||||
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
VERT_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
||||||
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
VERT_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||||
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
VERT_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
||||||
VERT_ATTRIB_GENERIC15 /* VERT_ATTRIB_GENERIC15 */
|
VERT_ATTRIB_GENERIC15, /* VERT_ATTRIB_GENERIC15 */
|
||||||
|
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -6201,7 +6201,7 @@ save_Attr32bit(struct gl_context *ctx, unsigned attr, unsigned size,
|
|||||||
* FLOAT and INT.
|
* FLOAT and INT.
|
||||||
*/
|
*/
|
||||||
if (type == GL_FLOAT) {
|
if (type == GL_FLOAT) {
|
||||||
if (attr >= VERT_ATTRIB_GENERIC0) {
|
if (VERT_BIT(attr) & VERT_BIT_GENERIC_ALL) {
|
||||||
base_op = OPCODE_ATTR_1F_ARB;
|
base_op = OPCODE_ATTR_1F_ARB;
|
||||||
attr -= VERT_ATTRIB_GENERIC0;
|
attr -= VERT_ATTRIB_GENERIC0;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -566,7 +566,7 @@ set_vertex_processing_mode(struct gl_context *ctx, gl_vertex_processing_mode m)
|
|||||||
assert(ctx->API != API_OPENGLES);
|
assert(ctx->API != API_OPENGLES);
|
||||||
|
|
||||||
/* Other parts of the code assume that inputs[VERT_ATTRIB_POS] through
|
/* Other parts of the code assume that inputs[VERT_ATTRIB_POS] through
|
||||||
* inputs[VERT_ATTRIB_FF_MAX] will be non-NULL. However, in OpenGL
|
* inputs[VERT_ATTRIB_GENERIC0-1] will be non-NULL. However, in OpenGL
|
||||||
* ES 2.0+ or OpenGL core profile, none of these arrays should ever
|
* ES 2.0+ or OpenGL core profile, none of these arrays should ever
|
||||||
* be enabled.
|
* be enabled.
|
||||||
*/
|
*/
|
||||||
|
@@ -107,7 +107,6 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||||||
"vertex.color.secondary",
|
"vertex.color.secondary",
|
||||||
"vertex.fogcoord",
|
"vertex.fogcoord",
|
||||||
"vertex.(six)", /* VERT_ATTRIB_COLOR_INDEX */
|
"vertex.(six)", /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
"vertex.(seven)", /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
"vertex.texcoord[0]",
|
"vertex.texcoord[0]",
|
||||||
"vertex.texcoord[1]",
|
"vertex.texcoord[1]",
|
||||||
"vertex.texcoord[2]",
|
"vertex.texcoord[2]",
|
||||||
@@ -116,7 +115,7 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||||||
"vertex.texcoord[5]",
|
"vertex.texcoord[5]",
|
||||||
"vertex.texcoord[6]",
|
"vertex.texcoord[6]",
|
||||||
"vertex.texcoord[7]",
|
"vertex.texcoord[7]",
|
||||||
"vertex.(sixteen)", /* VERT_ATTRIB_POINT_SIZE */
|
"vertex.(pointsize)", /* VERT_ATTRIB_POINT_SIZE */
|
||||||
"vertex.attrib[0]",
|
"vertex.attrib[0]",
|
||||||
"vertex.attrib[1]",
|
"vertex.attrib[1]",
|
||||||
"vertex.attrib[2]",
|
"vertex.attrib[2]",
|
||||||
@@ -132,7 +131,8 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||||||
"vertex.attrib[12]",
|
"vertex.attrib[12]",
|
||||||
"vertex.attrib[13]",
|
"vertex.attrib[13]",
|
||||||
"vertex.attrib[14]",
|
"vertex.attrib[14]",
|
||||||
"vertex.attrib[15]" /* MAX_VARYING = 16 */
|
"vertex.attrib[15]", /* MAX_VARYING = 16 */
|
||||||
|
"vertex.(edgeflag)", /* VERT_ATTRIB_EDGEFLAG */
|
||||||
};
|
};
|
||||||
static const char *const fragAttribs[] = {
|
static const char *const fragAttribs[] = {
|
||||||
"fragment.position",
|
"fragment.position",
|
||||||
|
@@ -84,7 +84,6 @@ enum {
|
|||||||
_TNL_ATTRIB_COLOR1,
|
_TNL_ATTRIB_COLOR1,
|
||||||
_TNL_ATTRIB_FOG,
|
_TNL_ATTRIB_FOG,
|
||||||
_TNL_ATTRIB_COLOR_INDEX,
|
_TNL_ATTRIB_COLOR_INDEX,
|
||||||
_TNL_ATTRIB_EDGEFLAG,
|
|
||||||
_TNL_ATTRIB_TEX0,
|
_TNL_ATTRIB_TEX0,
|
||||||
_TNL_ATTRIB_TEX1,
|
_TNL_ATTRIB_TEX1,
|
||||||
_TNL_ATTRIB_TEX2,
|
_TNL_ATTRIB_TEX2,
|
||||||
@@ -115,6 +114,7 @@ enum {
|
|||||||
_TNL_ATTRIB_GENERIC13,
|
_TNL_ATTRIB_GENERIC13,
|
||||||
_TNL_ATTRIB_GENERIC14,
|
_TNL_ATTRIB_GENERIC14,
|
||||||
_TNL_ATTRIB_GENERIC15,
|
_TNL_ATTRIB_GENERIC15,
|
||||||
|
_TNL_ATTRIB_EDGEFLAG,
|
||||||
|
|
||||||
_TNL_ATTRIB_MAX,
|
_TNL_ATTRIB_MAX,
|
||||||
|
|
||||||
|
@@ -50,7 +50,6 @@ enum vbo_attrib {
|
|||||||
VBO_ATTRIB_COLOR1,
|
VBO_ATTRIB_COLOR1,
|
||||||
VBO_ATTRIB_FOG,
|
VBO_ATTRIB_FOG,
|
||||||
VBO_ATTRIB_COLOR_INDEX,
|
VBO_ATTRIB_COLOR_INDEX,
|
||||||
VBO_ATTRIB_EDGEFLAG,
|
|
||||||
VBO_ATTRIB_TEX0,
|
VBO_ATTRIB_TEX0,
|
||||||
VBO_ATTRIB_TEX1,
|
VBO_ATTRIB_TEX1,
|
||||||
VBO_ATTRIB_TEX2,
|
VBO_ATTRIB_TEX2,
|
||||||
@@ -77,6 +76,7 @@ enum vbo_attrib {
|
|||||||
VBO_ATTRIB_GENERIC13,
|
VBO_ATTRIB_GENERIC13,
|
||||||
VBO_ATTRIB_GENERIC14,
|
VBO_ATTRIB_GENERIC14,
|
||||||
VBO_ATTRIB_GENERIC15,
|
VBO_ATTRIB_GENERIC15,
|
||||||
|
VBO_ATTRIB_EDGEFLAG,
|
||||||
|
|
||||||
/* XXX: in the vertex program inputs_read flag, we alias
|
/* XXX: in the vertex program inputs_read flag, we alias
|
||||||
* materials and generics and use knowledge about the program
|
* materials and generics and use knowledge about the program
|
||||||
@@ -104,15 +104,18 @@ enum vbo_attrib {
|
|||||||
|
|
||||||
|
|
||||||
/** VBO_ATTRIB_POS .. VBO_ATTRIB_POINT_SIZE */
|
/** VBO_ATTRIB_POS .. VBO_ATTRIB_POINT_SIZE */
|
||||||
#define VBO_ATTRIBS_LEGACY BITFIELD64_MASK(VBO_ATTRIB_GENERIC0)
|
#define VBO_ATTRIBS_LEGACY (BITFIELD64_MASK(VBO_ATTRIB_GENERIC0) | \
|
||||||
|
BITFIELD64_BIT(VBO_ATTRIB_EDGEFLAG))
|
||||||
|
|
||||||
/** VBO_ATTRIB_MAT_FRONT_AMBIENT .. VBO_ATTRIB_MAT_BACK_INDEXES */
|
/** VBO_ATTRIB_MAT_FRONT_AMBIENT .. VBO_ATTRIB_MAT_BACK_INDEXES */
|
||||||
#define VBO_ATTRIBS_MATERIALS BITFIELD64_RANGE(VBO_ATTRIB_MAT_FRONT_AMBIENT, \
|
#define VBO_ATTRIBS_MATERIALS BITFIELD64_RANGE(VBO_ATTRIB_MAT_FRONT_AMBIENT, \
|
||||||
VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
|
VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
|
||||||
|
|
||||||
/** Shift to move legacy material attribs into generic slots */
|
/**
|
||||||
#define VBO_MATERIAL_SHIFT \
|
* Move material attribs to the last generic attribs, moving LAST_MATERIAL
|
||||||
(VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
|
* to GENERIC15, etc.
|
||||||
|
*/
|
||||||
|
#define VBO_MATERIAL_SHIFT (VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_GENERIC15)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -73,13 +73,14 @@ static void
|
|||||||
init_legacy_currval(struct gl_context *ctx)
|
init_legacy_currval(struct gl_context *ctx)
|
||||||
{
|
{
|
||||||
struct vbo_context *vbo = vbo_context(ctx);
|
struct vbo_context *vbo = vbo_context(ctx);
|
||||||
GLuint i;
|
|
||||||
|
|
||||||
/* Set up a constant (Stride == 0) array for each current
|
/* Set up a constant (Stride == 0) array for each current
|
||||||
* attribute:
|
* attribute:
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < VERT_ATTRIB_FF_MAX; i++) {
|
for (int attr = 0; attr < VERT_ATTRIB_MAX; attr++) {
|
||||||
const unsigned attr = VERT_ATTRIB_FF(i);
|
if (VERT_BIT(attr) & VERT_BIT_GENERIC_ALL)
|
||||||
|
continue;
|
||||||
|
|
||||||
struct gl_array_attributes *attrib = &vbo->current[attr];
|
struct gl_array_attributes *attrib = &vbo->current[attr];
|
||||||
|
|
||||||
init_array(ctx, attrib, check_size(ctx->Current.Attrib[attr]),
|
init_array(ctx, attrib, check_size(ctx->Current.Attrib[attr]),
|
||||||
|
@@ -42,7 +42,6 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
|
|||||||
VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||||
VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||||
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||||
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||||
VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
||||||
@@ -67,7 +66,8 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
|
|||||||
VBO_ATTRIB_MAT_FRONT_SHININESS, /* VERT_ATTRIB_GENERIC12 */
|
VBO_ATTRIB_MAT_FRONT_SHININESS, /* VERT_ATTRIB_GENERIC12 */
|
||||||
VBO_ATTRIB_MAT_BACK_SHININESS, /* VERT_ATTRIB_GENERIC13 */
|
VBO_ATTRIB_MAT_BACK_SHININESS, /* VERT_ATTRIB_GENERIC13 */
|
||||||
VBO_ATTRIB_MAT_FRONT_INDEXES, /* VERT_ATTRIB_GENERIC14 */
|
VBO_ATTRIB_MAT_FRONT_INDEXES, /* VERT_ATTRIB_GENERIC14 */
|
||||||
VBO_ATTRIB_MAT_BACK_INDEXES /* VERT_ATTRIB_GENERIC15 */
|
VBO_ATTRIB_MAT_BACK_INDEXES, /* VERT_ATTRIB_GENERIC15 */
|
||||||
|
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||||
},
|
},
|
||||||
|
|
||||||
/* VP_MODE_SHADER: */
|
/* VP_MODE_SHADER: */
|
||||||
@@ -78,7 +78,6 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
|
|||||||
VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||||
VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||||
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||||
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
|
||||||
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||||
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||||
VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
VBO_ATTRIB_TEX2, /* VERT_ATTRIB_TEX2 */
|
||||||
@@ -103,7 +102,8 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
|
|||||||
VBO_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
VBO_ATTRIB_GENERIC12, /* VERT_ATTRIB_GENERIC12 */
|
||||||
VBO_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
VBO_ATTRIB_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||||
VBO_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
VBO_ATTRIB_GENERIC14, /* VERT_ATTRIB_GENERIC14 */
|
||||||
VBO_ATTRIB_GENERIC15 /* VERT_ATTRIB_GENERIC15 */
|
VBO_ATTRIB_GENERIC15, /* VERT_ATTRIB_GENERIC15 */
|
||||||
|
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1992,7 +1992,7 @@ current_init(struct gl_context *ctx)
|
|||||||
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
struct vbo_save_context *save = &vbo_context(ctx)->save;
|
||||||
GLint i;
|
GLint i;
|
||||||
|
|
||||||
for (i = VBO_ATTRIB_POS; i <= VBO_ATTRIB_GENERIC15; i++) {
|
for (i = VBO_ATTRIB_POS; i <= VBO_ATTRIB_EDGEFLAG; i++) {
|
||||||
const GLuint j = i - VBO_ATTRIB_POS;
|
const GLuint j = i - VBO_ATTRIB_POS;
|
||||||
assert(j < VERT_ATTRIB_MAX);
|
assert(j < VERT_ATTRIB_MAX);
|
||||||
save->currentsz[i] = &ctx->ListState.ActiveAttribSize[j];
|
save->currentsz[i] = &ctx->ListState.ActiveAttribSize[j];
|
||||||
|
Reference in New Issue
Block a user