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:
Marek Olšák
2021-05-26 21:14:56 -04:00
committed by Marge Bot
parent 842b8c8965
commit df5a2bbb41
11 changed files with 37 additions and 37 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -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.
*/ */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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