diff options
author | Marek Olšák <[email protected]> | 2013-06-12 17:15:46 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-07-02 17:02:14 +0200 |
commit | 030ca230e25192307336cb39f1ee414d0392b620 (patch) | |
tree | d77e85b3517380fded6c54ce6a1c3ef1da025f1f /src/mesa/main | |
parent | 84f367e69a876e473b4293483c5842b47d27d493 (diff) |
mesa: renumber shader indices according to their placement in pipeline
See my explanation in mtypes.h.
v2: don't do this in gallium
v3: also updated the comment at the gl_shader_type definition
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/mtypes.h | 9 | ||||
-rw-r--r-- | src/mesa/main/shaderobj.h | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 1f62e2c9c9e..9ca45617330 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2173,13 +2173,16 @@ struct gl_shader /** * Shader stages. Note that these will become 5 with tessellation. - * These MUST have the same values as gallium's PIPE_SHADER_* + * + * The order must match how shaders are ordered in the pipeline. + * The GLSL linker assumes that if i<j, then the j-th shader is + * executed later than the i-th shader. */ typedef enum { MESA_SHADER_VERTEX = 0, - MESA_SHADER_FRAGMENT = 1, - MESA_SHADER_GEOMETRY = 2, + MESA_SHADER_GEOMETRY = 1, + MESA_SHADER_FRAGMENT = 2, MESA_SHADER_TYPES = 3 } gl_shader_type; diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index 5ce85cfdeba..de1c9fcaf1e 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -123,8 +123,8 @@ _mesa_shader_index_to_type(GLuint i) { static const GLenum enums[MESA_SHADER_TYPES] = { GL_VERTEX_SHADER, - GL_FRAGMENT_SHADER, - GL_GEOMETRY_SHADER , + GL_GEOMETRY_SHADER, + GL_FRAGMENT_SHADER }; if (i >= MESA_SHADER_TYPES) return 0; |