diff options
author | Brian Paul <[email protected]> | 2017-08-18 15:48:13 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2017-08-21 19:04:51 -0600 |
commit | 19e9bd4c117f9f38f4fdec0467a57f0e29e5c0f3 (patch) | |
tree | f032bdb79bc1eba94540a7ec9efa32a2cf15a9c0 /src/mesa/main/context.c | |
parent | 0ef5aa4128940f6d60f3442b1cfcbdb8f3614c8e (diff) |
mesa: optimize _mesa_attr_zero_aliases_vertex()
After the context is initialized, the API and context flags won't
change. So, we can compute whether vertex attribute 0 aliases
vertex position just once.
This should make the glVertexAttrib*() functions a little quicker.
Reviewed-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/main/context.c')
-rw-r--r-- | src/mesa/main/context.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index b4b7b6e7da1..cd3eccea20f 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1607,6 +1607,23 @@ handle_first_current(struct gl_context *ctx) } } + /* Determine if generic vertex attribute 0 aliases the conventional + * glVertex position. + */ + { + const bool is_forward_compatible_context = + ctx->Const.ContextFlags & GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT; + + /* In OpenGL 3.1 attribute 0 becomes non-magic, just like in OpenGL ES + * 2.0. Note that we cannot just check for API_OPENGL_COMPAT here because + * that will erroneously allow this usage in a 3.0 forward-compatible + * context too. + */ + ctx->_AttribZeroAliasesVertex = (ctx->API == API_OPENGLES + || (ctx->API == API_OPENGL_COMPAT + && !is_forward_compatible_context)); + } + /* We can use this to help debug user's problems. Tell them to set * the MESA_INFO env variable before running their app. Then the * first time each context is made current we'll print some useful |