mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 22:20:09 +01:00
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:
parent
842b8c8965
commit
df5a2bbb41
11 changed files with 37 additions and 37 deletions
|
|
@ -123,7 +123,6 @@ gl_vert_attrib_name(gl_vert_attrib attrib)
|
|||
ENUM(VERT_ATTRIB_COLOR1),
|
||||
ENUM(VERT_ATTRIB_FOG),
|
||||
ENUM(VERT_ATTRIB_COLOR_INDEX),
|
||||
ENUM(VERT_ATTRIB_EDGEFLAG),
|
||||
ENUM(VERT_ATTRIB_TEX0),
|
||||
ENUM(VERT_ATTRIB_TEX1),
|
||||
ENUM(VERT_ATTRIB_TEX2),
|
||||
|
|
@ -149,6 +148,7 @@ gl_vert_attrib_name(gl_vert_attrib attrib)
|
|||
ENUM(VERT_ATTRIB_GENERIC13),
|
||||
ENUM(VERT_ATTRIB_GENERIC14),
|
||||
ENUM(VERT_ATTRIB_GENERIC15),
|
||||
ENUM(VERT_ATTRIB_EDGEFLAG),
|
||||
};
|
||||
STATIC_ASSERT(ARRAY_SIZE(names) == VERT_ATTRIB_MAX);
|
||||
return NAME(attrib);
|
||||
|
|
|
|||
|
|
@ -144,7 +144,6 @@ typedef enum
|
|||
VERT_ATTRIB_COLOR1,
|
||||
VERT_ATTRIB_FOG,
|
||||
VERT_ATTRIB_COLOR_INDEX,
|
||||
VERT_ATTRIB_EDGEFLAG,
|
||||
VERT_ATTRIB_TEX0,
|
||||
VERT_ATTRIB_TEX1,
|
||||
VERT_ATTRIB_TEX2,
|
||||
|
|
@ -170,6 +169,10 @@ typedef enum
|
|||
VERT_ATTRIB_GENERIC13,
|
||||
VERT_ATTRIB_GENERIC14,
|
||||
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
|
||||
} gl_vert_attrib;
|
||||
|
||||
|
|
@ -187,12 +190,8 @@ const char *gl_vert_attrib_name(gl_vert_attrib attrib);
|
|||
* Symbolic constats to help iterating over
|
||||
* 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
|
||||
* include the classic texture coordinate attributes.
|
||||
* Is a subset of VERT_ATTRIB_FF.
|
||||
* VERT_ATTRIB_GENERIC
|
||||
* include the OpenGL 2.0+ GLSL generic 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
|
||||
* 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_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_FOG BITFIELD_BIT(VERT_ATTRIB_FOG)
|
||||
#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_TEX1 BITFIELD_BIT(VERT_ATTRIB_TEX1)
|
||||
#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_POINT_SIZE BITFIELD_BIT(VERT_ATTRIB_POINT_SIZE)
|
||||
#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_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_FF_MAX)
|
||||
#define VERT_BIT_FF_ALL (BITFIELD_RANGE(0, VERT_ATTRIB_GENERIC0) | \
|
||||
VERT_BIT_EDGEFLAG)
|
||||
#define VERT_BIT_TEX(i) VERT_BIT(VERT_ATTRIB_TEX(i))
|
||||
#define VERT_BIT_TEX_ALL \
|
||||
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_FOG, /* VERT_ATTRIB_FOG */
|
||||
VERT_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||
VERT_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||
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_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||
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
|
||||
|
|
@ -116,7 +116,6 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||
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_EDGEFLAG */
|
||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||
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_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||
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
|
||||
|
|
@ -157,7 +157,6 @@ _mesa_vao_attribute_map[ATTRIBUTE_MAP_MODE_MAX][VERT_ATTRIB_MAX] =
|
|||
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_EDGEFLAG */
|
||||
VERT_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||
VERT_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||
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_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||
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.
|
||||
*/
|
||||
if (type == GL_FLOAT) {
|
||||
if (attr >= VERT_ATTRIB_GENERIC0) {
|
||||
if (VERT_BIT(attr) & VERT_BIT_GENERIC_ALL) {
|
||||
base_op = OPCODE_ATTR_1F_ARB;
|
||||
attr -= VERT_ATTRIB_GENERIC0;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -566,7 +566,7 @@ set_vertex_processing_mode(struct gl_context *ctx, gl_vertex_processing_mode m)
|
|||
assert(ctx->API != API_OPENGLES);
|
||||
|
||||
/* 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
|
||||
* be enabled.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -107,7 +107,6 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||
"vertex.color.secondary",
|
||||
"vertex.fogcoord",
|
||||
"vertex.(six)", /* VERT_ATTRIB_COLOR_INDEX */
|
||||
"vertex.(seven)", /* VERT_ATTRIB_EDGEFLAG */
|
||||
"vertex.texcoord[0]",
|
||||
"vertex.texcoord[1]",
|
||||
"vertex.texcoord[2]",
|
||||
|
|
@ -116,7 +115,7 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||
"vertex.texcoord[5]",
|
||||
"vertex.texcoord[6]",
|
||||
"vertex.texcoord[7]",
|
||||
"vertex.(sixteen)", /* VERT_ATTRIB_POINT_SIZE */
|
||||
"vertex.(pointsize)", /* VERT_ATTRIB_POINT_SIZE */
|
||||
"vertex.attrib[0]",
|
||||
"vertex.attrib[1]",
|
||||
"vertex.attrib[2]",
|
||||
|
|
@ -132,7 +131,8 @@ arb_input_attrib_string(GLuint index, GLenum progType)
|
|||
"vertex.attrib[12]",
|
||||
"vertex.attrib[13]",
|
||||
"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[] = {
|
||||
"fragment.position",
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ enum {
|
|||
_TNL_ATTRIB_COLOR1,
|
||||
_TNL_ATTRIB_FOG,
|
||||
_TNL_ATTRIB_COLOR_INDEX,
|
||||
_TNL_ATTRIB_EDGEFLAG,
|
||||
_TNL_ATTRIB_TEX0,
|
||||
_TNL_ATTRIB_TEX1,
|
||||
_TNL_ATTRIB_TEX2,
|
||||
|
|
@ -115,6 +114,7 @@ enum {
|
|||
_TNL_ATTRIB_GENERIC13,
|
||||
_TNL_ATTRIB_GENERIC14,
|
||||
_TNL_ATTRIB_GENERIC15,
|
||||
_TNL_ATTRIB_EDGEFLAG,
|
||||
|
||||
_TNL_ATTRIB_MAX,
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ enum vbo_attrib {
|
|||
VBO_ATTRIB_COLOR1,
|
||||
VBO_ATTRIB_FOG,
|
||||
VBO_ATTRIB_COLOR_INDEX,
|
||||
VBO_ATTRIB_EDGEFLAG,
|
||||
VBO_ATTRIB_TEX0,
|
||||
VBO_ATTRIB_TEX1,
|
||||
VBO_ATTRIB_TEX2,
|
||||
|
|
@ -77,6 +76,7 @@ enum vbo_attrib {
|
|||
VBO_ATTRIB_GENERIC13,
|
||||
VBO_ATTRIB_GENERIC14,
|
||||
VBO_ATTRIB_GENERIC15,
|
||||
VBO_ATTRIB_EDGEFLAG,
|
||||
|
||||
/* XXX: in the vertex program inputs_read flag, we alias
|
||||
* materials and generics and use knowledge about the program
|
||||
|
|
@ -104,15 +104,18 @@ enum vbo_attrib {
|
|||
|
||||
|
||||
/** 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 */
|
||||
#define VBO_ATTRIBS_MATERIALS BITFIELD64_RANGE(VBO_ATTRIB_MAT_FRONT_AMBIENT, \
|
||||
VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
|
||||
|
||||
/** Shift to move legacy material attribs into generic slots */
|
||||
#define VBO_MATERIAL_SHIFT \
|
||||
(VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
|
||||
/**
|
||||
* Move material attribs to the last generic attribs, moving LAST_MATERIAL
|
||||
* 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)
|
||||
{
|
||||
struct vbo_context *vbo = vbo_context(ctx);
|
||||
GLuint i;
|
||||
|
||||
/* Set up a constant (Stride == 0) array for each current
|
||||
* attribute:
|
||||
*/
|
||||
for (i = 0; i < VERT_ATTRIB_FF_MAX; i++) {
|
||||
const unsigned attr = VERT_ATTRIB_FF(i);
|
||||
for (int attr = 0; attr < VERT_ATTRIB_MAX; attr++) {
|
||||
if (VERT_BIT(attr) & VERT_BIT_GENERIC_ALL)
|
||||
continue;
|
||||
|
||||
struct gl_array_attributes *attrib = &vbo->current[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_FOG, /* VERT_ATTRIB_FOG */
|
||||
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||
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_BACK_SHININESS, /* VERT_ATTRIB_GENERIC13 */
|
||||
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: */
|
||||
|
|
@ -78,7 +78,6 @@ _vbo_attribute_alias_map[VP_MODE_MAX][VERT_ATTRIB_MAX] = {
|
|||
VBO_ATTRIB_COLOR1, /* VERT_ATTRIB_COLOR1 */
|
||||
VBO_ATTRIB_FOG, /* VERT_ATTRIB_FOG */
|
||||
VBO_ATTRIB_COLOR_INDEX, /* VERT_ATTRIB_COLOR_INDEX */
|
||||
VBO_ATTRIB_EDGEFLAG, /* VERT_ATTRIB_EDGEFLAG */
|
||||
VBO_ATTRIB_TEX0, /* VERT_ATTRIB_TEX0 */
|
||||
VBO_ATTRIB_TEX1, /* VERT_ATTRIB_TEX1 */
|
||||
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_GENERIC13, /* VERT_ATTRIB_GENERIC13 */
|
||||
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;
|
||||
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;
|
||||
assert(j < VERT_ATTRIB_MAX);
|
||||
save->currentsz[i] = &ctx->ListState.ActiveAttribSize[j];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue