[Mesa-dev] [PATCH 07/20] mesa: don't assign numbers to vertex attrib enums manually
Marek Olšák
maraeo at gmail.com
Tue Nov 21 18:01:49 UTC 2017
From: Marek Olšák <marek.olsak at amd.com>
I plan to remove one of them.
---
src/compiler/shader_enums.h | 68 ++++++++++++++--------------
src/mesa/tnl/t_context.h | 106 ++++++++++++++++++++++----------------------
src/mesa/vbo/vbo_attrib.h | 92 +++++++++++++++++++-------------------
3 files changed, 133 insertions(+), 133 deletions(-)
diff --git a/src/compiler/shader_enums.h b/src/compiler/shader_enums.h
index 9d229d4..17b236e 100644
--- a/src/compiler/shader_enums.h
+++ b/src/compiler/shader_enums.h
@@ -67,54 +67,54 @@ const char *_mesa_shader_stage_to_abbrev(unsigned stage);
/**
* Indexes for vertex program attributes.
* GL_NV_vertex_program aliases generic attributes over the conventional
* attributes. In GL_ARB_vertex_program shader the aliasing is optional.
* In GL_ARB_vertex_shader / OpenGL 2.0 the aliasing is disallowed (the
* generic attributes are distinct/separate).
*/
typedef enum
{
- VERT_ATTRIB_POS = 0,
- VERT_ATTRIB_WEIGHT = 1,
- VERT_ATTRIB_NORMAL = 2,
- VERT_ATTRIB_COLOR0 = 3,
- VERT_ATTRIB_COLOR1 = 4,
- VERT_ATTRIB_FOG = 5,
- VERT_ATTRIB_COLOR_INDEX = 6,
- VERT_ATTRIB_EDGEFLAG = 7,
- VERT_ATTRIB_TEX0 = 8,
- VERT_ATTRIB_TEX1 = 9,
- VERT_ATTRIB_TEX2 = 10,
- VERT_ATTRIB_TEX3 = 11,
- VERT_ATTRIB_TEX4 = 12,
- VERT_ATTRIB_TEX5 = 13,
- VERT_ATTRIB_TEX6 = 14,
- VERT_ATTRIB_TEX7 = 15,
- VERT_ATTRIB_POINT_SIZE = 16,
- VERT_ATTRIB_GENERIC0 = 17,
- VERT_ATTRIB_GENERIC1 = 18,
- VERT_ATTRIB_GENERIC2 = 19,
- VERT_ATTRIB_GENERIC3 = 20,
- VERT_ATTRIB_GENERIC4 = 21,
- VERT_ATTRIB_GENERIC5 = 22,
- VERT_ATTRIB_GENERIC6 = 23,
- VERT_ATTRIB_GENERIC7 = 24,
- VERT_ATTRIB_GENERIC8 = 25,
- VERT_ATTRIB_GENERIC9 = 26,
- VERT_ATTRIB_GENERIC10 = 27,
- VERT_ATTRIB_GENERIC11 = 28,
- VERT_ATTRIB_GENERIC12 = 29,
- VERT_ATTRIB_GENERIC13 = 30,
- VERT_ATTRIB_GENERIC14 = 31,
- VERT_ATTRIB_GENERIC15 = 32,
- VERT_ATTRIB_MAX = 33
+ VERT_ATTRIB_POS,
+ VERT_ATTRIB_WEIGHT,
+ VERT_ATTRIB_NORMAL,
+ VERT_ATTRIB_COLOR0,
+ VERT_ATTRIB_COLOR1,
+ VERT_ATTRIB_FOG,
+ VERT_ATTRIB_COLOR_INDEX,
+ VERT_ATTRIB_EDGEFLAG,
+ VERT_ATTRIB_TEX0,
+ VERT_ATTRIB_TEX1,
+ VERT_ATTRIB_TEX2,
+ VERT_ATTRIB_TEX3,
+ VERT_ATTRIB_TEX4,
+ VERT_ATTRIB_TEX5,
+ VERT_ATTRIB_TEX6,
+ VERT_ATTRIB_TEX7,
+ VERT_ATTRIB_POINT_SIZE,
+ VERT_ATTRIB_GENERIC0,
+ VERT_ATTRIB_GENERIC1,
+ VERT_ATTRIB_GENERIC2,
+ VERT_ATTRIB_GENERIC3,
+ VERT_ATTRIB_GENERIC4,
+ VERT_ATTRIB_GENERIC5,
+ VERT_ATTRIB_GENERIC6,
+ VERT_ATTRIB_GENERIC7,
+ VERT_ATTRIB_GENERIC8,
+ VERT_ATTRIB_GENERIC9,
+ VERT_ATTRIB_GENERIC10,
+ VERT_ATTRIB_GENERIC11,
+ VERT_ATTRIB_GENERIC12,
+ VERT_ATTRIB_GENERIC13,
+ VERT_ATTRIB_GENERIC14,
+ VERT_ATTRIB_GENERIC15,
+ VERT_ATTRIB_MAX
} gl_vert_attrib;
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
diff --git a/src/mesa/tnl/t_context.h b/src/mesa/tnl/t_context.h
index e7adb5f..67a87f2 100644
--- a/src/mesa/tnl/t_context.h
+++ b/src/mesa/tnl/t_context.h
@@ -69,84 +69,84 @@
* number of bits allocated for these numbers in places like vertex
* program instruction formats and register layouts.
*/
/* The bit space exhaustion is a fact now, done by _TNL_ATTRIB_ATTRIBUTE* for
* GLSL vertex shader which cannot be aliased with conventional vertex attribs.
* Compacting _TNL_ATTRIB_MAT_* attribs would not work, they would not give
* as many free bits (11 plus already 1 free bit) as _TNL_ATTRIB_ATTRIBUTE*
* attribs want (16).
*/
enum {
- _TNL_ATTRIB_POS = 0,
- _TNL_ATTRIB_WEIGHT = 1,
- _TNL_ATTRIB_NORMAL = 2,
- _TNL_ATTRIB_COLOR0 = 3,
- _TNL_ATTRIB_COLOR1 = 4,
- _TNL_ATTRIB_FOG = 5,
- _TNL_ATTRIB_COLOR_INDEX = 6,
- _TNL_ATTRIB_EDGEFLAG = 7,
- _TNL_ATTRIB_TEX0 = 8,
- _TNL_ATTRIB_TEX1 = 9,
- _TNL_ATTRIB_TEX2 = 10,
- _TNL_ATTRIB_TEX3 = 11,
- _TNL_ATTRIB_TEX4 = 12,
- _TNL_ATTRIB_TEX5 = 13,
- _TNL_ATTRIB_TEX6 = 14,
- _TNL_ATTRIB_TEX7 = 15,
-
- _TNL_ATTRIB_GENERIC0 = 17, /* doesn't really exist! */
- _TNL_ATTRIB_GENERIC1 = 18,
- _TNL_ATTRIB_GENERIC2 = 19,
- _TNL_ATTRIB_GENERIC3 = 20,
- _TNL_ATTRIB_GENERIC4 = 21,
- _TNL_ATTRIB_GENERIC5 = 22,
- _TNL_ATTRIB_GENERIC6 = 23,
- _TNL_ATTRIB_GENERIC7 = 24,
- _TNL_ATTRIB_GENERIC8 = 25,
- _TNL_ATTRIB_GENERIC9 = 26,
- _TNL_ATTRIB_GENERIC10 = 27,
- _TNL_ATTRIB_GENERIC11 = 28,
- _TNL_ATTRIB_GENERIC12 = 29,
- _TNL_ATTRIB_GENERIC13 = 30,
- _TNL_ATTRIB_GENERIC14 = 31,
- _TNL_ATTRIB_GENERIC15 = 32,
+ _TNL_ATTRIB_POS,
+ _TNL_ATTRIB_WEIGHT,
+ _TNL_ATTRIB_NORMAL,
+ _TNL_ATTRIB_COLOR0,
+ _TNL_ATTRIB_COLOR1,
+ _TNL_ATTRIB_FOG,
+ _TNL_ATTRIB_COLOR_INDEX,
+ _TNL_ATTRIB_EDGEFLAG,
+ _TNL_ATTRIB_TEX0,
+ _TNL_ATTRIB_TEX1,
+ _TNL_ATTRIB_TEX2,
+ _TNL_ATTRIB_TEX3,
+ _TNL_ATTRIB_TEX4,
+ _TNL_ATTRIB_TEX5,
+ _TNL_ATTRIB_TEX6,
+ _TNL_ATTRIB_TEX7,
+
+ /* This is really a VARYING_SLOT, not an attrib. Need to fix
+ * tnl to understand the difference.
+ */
+ _TNL_ATTRIB_POINTSIZE,
+
+ _TNL_ATTRIB_GENERIC0, /* doesn't really exist! */
+ _TNL_ATTRIB_GENERIC1,
+ _TNL_ATTRIB_GENERIC2,
+ _TNL_ATTRIB_GENERIC3,
+ _TNL_ATTRIB_GENERIC4,
+ _TNL_ATTRIB_GENERIC5,
+ _TNL_ATTRIB_GENERIC6,
+ _TNL_ATTRIB_GENERIC7,
+ _TNL_ATTRIB_GENERIC8,
+ _TNL_ATTRIB_GENERIC9,
+ _TNL_ATTRIB_GENERIC10,
+ _TNL_ATTRIB_GENERIC11,
+ _TNL_ATTRIB_GENERIC12,
+ _TNL_ATTRIB_GENERIC13,
+ _TNL_ATTRIB_GENERIC14,
+ _TNL_ATTRIB_GENERIC15,
+
+ _TNL_ATTRIB_MAX,
/* These alias with the generics, but they are not active
* concurrently, so it's not a problem. The TNL module
* doesn't have to do anything about this as this is how they
* are passed into the _draw_prims callback.
*
* When we generate fixed-function replacement programs (in
* t_vp_build.c currently), they refer to the appropriate
* generic attribute in order to pick up per-vertex material
* data.
*/
- _TNL_ATTRIB_MAT_FRONT_AMBIENT = 17,
- _TNL_ATTRIB_MAT_BACK_AMBIENT = 18,
- _TNL_ATTRIB_MAT_FRONT_DIFFUSE = 19,
- _TNL_ATTRIB_MAT_BACK_DIFFUSE = 20,
- _TNL_ATTRIB_MAT_FRONT_SPECULAR = 21,
- _TNL_ATTRIB_MAT_BACK_SPECULAR = 22,
- _TNL_ATTRIB_MAT_FRONT_EMISSION = 23,
- _TNL_ATTRIB_MAT_BACK_EMISSION = 24,
- _TNL_ATTRIB_MAT_FRONT_SHININESS = 25,
- _TNL_ATTRIB_MAT_BACK_SHININESS = 26,
- _TNL_ATTRIB_MAT_FRONT_INDEXES = 27,
- _TNL_ATTRIB_MAT_BACK_INDEXES = 28,
-
- /* This is really a VARYING_SLOT, not an attrib. Need to fix
- * tnl to understand the difference.
- */
- _TNL_ATTRIB_POINTSIZE = 16,
-
- _TNL_ATTRIB_MAX = 33
-} ;
+ _TNL_ATTRIB_MAT_FRONT_AMBIENT = _TNL_ATTRIB_GENERIC0,
+ _TNL_ATTRIB_MAT_BACK_AMBIENT,
+ _TNL_ATTRIB_MAT_FRONT_DIFFUSE,
+ _TNL_ATTRIB_MAT_BACK_DIFFUSE,
+ _TNL_ATTRIB_MAT_FRONT_SPECULAR,
+ _TNL_ATTRIB_MAT_BACK_SPECULAR,
+ _TNL_ATTRIB_MAT_FRONT_EMISSION,
+ _TNL_ATTRIB_MAT_BACK_EMISSION,
+ _TNL_ATTRIB_MAT_FRONT_SHININESS,
+ _TNL_ATTRIB_MAT_BACK_SHININESS,
+ _TNL_ATTRIB_MAT_FRONT_INDEXES,
+ _TNL_ATTRIB_MAT_BACK_INDEXES,
+};
#define _TNL_ATTRIB_TEX(u) (_TNL_ATTRIB_TEX0 + (u))
#define _TNL_ATTRIB_GENERIC(n) (_TNL_ATTRIB_GENERIC0 + (n))
/* special index used for handing invalid glVertexAttribute() indices */
#define _TNL_ATTRIB_ERROR (_TNL_ATTRIB_GENERIC15 + 1)
/**
* Handy attribute ranges:
*/
diff --git a/src/mesa/vbo/vbo_attrib.h b/src/mesa/vbo/vbo_attrib.h
index 5ee77fe..560c826 100644
--- a/src/mesa/vbo/vbo_attrib.h
+++ b/src/mesa/vbo/vbo_attrib.h
@@ -37,72 +37,72 @@
* Note: The first attributes match the VERT_ATTRIB_* definitions
* in mtypes.h. However, the tnl module has additional attributes
* for materials, color indexes, edge flags, etc.
*/
/* Although it's nice to use these as bit indexes in a DWORD flag, we
* could manage without if necessary. Another limit currently is the
* number of bits allocated for these numbers in places like vertex
* program instruction formats and register layouts.
*/
enum {
- VBO_ATTRIB_POS = 0,
- VBO_ATTRIB_WEIGHT = 1,
- VBO_ATTRIB_NORMAL = 2,
- VBO_ATTRIB_COLOR0 = 3,
- VBO_ATTRIB_COLOR1 = 4,
- VBO_ATTRIB_FOG = 5,
- VBO_ATTRIB_INDEX = 6,
- VBO_ATTRIB_EDGEFLAG = 7,
- VBO_ATTRIB_TEX0 = 8,
- VBO_ATTRIB_TEX1 = 9,
- VBO_ATTRIB_TEX2 = 10,
- VBO_ATTRIB_TEX3 = 11,
- VBO_ATTRIB_TEX4 = 12,
- VBO_ATTRIB_TEX5 = 13,
- VBO_ATTRIB_TEX6 = 14,
- VBO_ATTRIB_TEX7 = 15,
- VBO_ATTRIB_POINT_SIZE = 16,
+ VBO_ATTRIB_POS,
+ VBO_ATTRIB_WEIGHT,
+ VBO_ATTRIB_NORMAL,
+ VBO_ATTRIB_COLOR0,
+ VBO_ATTRIB_COLOR1,
+ VBO_ATTRIB_FOG,
+ VBO_ATTRIB_INDEX,
+ VBO_ATTRIB_EDGEFLAG,
+ VBO_ATTRIB_TEX0,
+ VBO_ATTRIB_TEX1,
+ VBO_ATTRIB_TEX2,
+ VBO_ATTRIB_TEX3,
+ VBO_ATTRIB_TEX4,
+ VBO_ATTRIB_TEX5,
+ VBO_ATTRIB_TEX6,
+ VBO_ATTRIB_TEX7,
+ VBO_ATTRIB_POINT_SIZE,
- VBO_ATTRIB_GENERIC0 = 17, /* Not used? */
- VBO_ATTRIB_GENERIC1 = 18,
- VBO_ATTRIB_GENERIC2 = 19,
- VBO_ATTRIB_GENERIC3 = 20,
- VBO_ATTRIB_GENERIC4 = 21,
- VBO_ATTRIB_GENERIC5 = 22,
- VBO_ATTRIB_GENERIC6 = 23,
- VBO_ATTRIB_GENERIC7 = 24,
- VBO_ATTRIB_GENERIC8 = 25,
- VBO_ATTRIB_GENERIC9 = 26,
- VBO_ATTRIB_GENERIC10 = 27,
- VBO_ATTRIB_GENERIC11 = 28,
- VBO_ATTRIB_GENERIC12 = 29,
- VBO_ATTRIB_GENERIC13 = 30,
- VBO_ATTRIB_GENERIC14 = 31,
- VBO_ATTRIB_GENERIC15 = 32,
+ VBO_ATTRIB_GENERIC0, /* Not used? */
+ VBO_ATTRIB_GENERIC1,
+ VBO_ATTRIB_GENERIC2,
+ VBO_ATTRIB_GENERIC3,
+ VBO_ATTRIB_GENERIC4,
+ VBO_ATTRIB_GENERIC5,
+ VBO_ATTRIB_GENERIC6,
+ VBO_ATTRIB_GENERIC7,
+ VBO_ATTRIB_GENERIC8,
+ VBO_ATTRIB_GENERIC9,
+ VBO_ATTRIB_GENERIC10,
+ VBO_ATTRIB_GENERIC11,
+ VBO_ATTRIB_GENERIC12,
+ VBO_ATTRIB_GENERIC13,
+ VBO_ATTRIB_GENERIC14,
+ VBO_ATTRIB_GENERIC15,
/* XXX: in the vertex program inputs_read flag, we alias
* materials and generics and use knowledge about the program
* (whether it is a fixed-function emulation) to
* differentiate. Here we must keep them apart instead.
*/
- VBO_ATTRIB_MAT_FRONT_AMBIENT = 33,
- VBO_ATTRIB_MAT_BACK_AMBIENT = 34,
- VBO_ATTRIB_MAT_FRONT_DIFFUSE = 35,
- VBO_ATTRIB_MAT_BACK_DIFFUSE = 36,
- VBO_ATTRIB_MAT_FRONT_SPECULAR = 37,
- VBO_ATTRIB_MAT_BACK_SPECULAR = 38,
- VBO_ATTRIB_MAT_FRONT_EMISSION = 39,
- VBO_ATTRIB_MAT_BACK_EMISSION = 40,
- VBO_ATTRIB_MAT_FRONT_SHININESS = 41,
- VBO_ATTRIB_MAT_BACK_SHININESS = 42,
- VBO_ATTRIB_MAT_FRONT_INDEXES = 43,
- VBO_ATTRIB_MAT_BACK_INDEXES = 44,
+ VBO_ATTRIB_MAT_FRONT_AMBIENT,
+ VBO_ATTRIB_MAT_BACK_AMBIENT,
+ VBO_ATTRIB_MAT_FRONT_DIFFUSE,
+ VBO_ATTRIB_MAT_BACK_DIFFUSE,
+ VBO_ATTRIB_MAT_FRONT_SPECULAR,
+ VBO_ATTRIB_MAT_BACK_SPECULAR,
+ VBO_ATTRIB_MAT_FRONT_EMISSION,
+ VBO_ATTRIB_MAT_BACK_EMISSION,
+ VBO_ATTRIB_MAT_FRONT_SHININESS,
+ VBO_ATTRIB_MAT_BACK_SHININESS,
+ VBO_ATTRIB_MAT_FRONT_INDEXES,
+ VBO_ATTRIB_MAT_BACK_INDEXES,
- VBO_ATTRIB_MAX = 45
+ VBO_ATTRIB_MAX
};
#define VBO_ATTRIB_FIRST_MATERIAL VBO_ATTRIB_MAT_FRONT_AMBIENT
#define VBO_ATTRIB_LAST_MATERIAL VBO_ATTRIB_MAT_BACK_INDEXES
#define VBO_MAX_COPIED_VERTS 3
#endif
--
2.7.4
More information about the mesa-dev
mailing list