mesa: Get some gl_shader_program::LinkStatus checking out of the main path
I really wanted to remove 'shProg != NULL' as well, but that would have required adding a dummy program as the default program. That seemed like more churn than removing one test was worth. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
3f5ebb98b7
commit
366540e9af
|
@ -178,7 +178,7 @@ validate_uniform_parameters(struct gl_context *ctx,
|
|||
unsigned *array_index,
|
||||
const char *caller)
|
||||
{
|
||||
if (!shProg || !shProg->LinkStatus) {
|
||||
if (shProg == NULL) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(program not linked)", caller);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -193,15 +193,28 @@ validate_uniform_parameters(struct gl_context *ctx,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Check that the given location is in bounds of uniform remap table. */
|
||||
if (location >= (GLint) shProg->NumUniformRemapTable) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(location=%d)",
|
||||
caller, location);
|
||||
/* Check that the given location is in bounds of uniform remap table.
|
||||
* Unlinked programs will have NumUniformRemapTable == 0, so we can take
|
||||
* the shProg->LinkStatus check out of the main path.
|
||||
*/
|
||||
if (unlikely(location >= (GLint) shProg->NumUniformRemapTable)) {
|
||||
if (!shProg->LinkStatus)
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(program not linked)",
|
||||
caller);
|
||||
else
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(location=%d)",
|
||||
caller, location);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (location == -1)
|
||||
if (location == -1) {
|
||||
if (!shProg->LinkStatus)
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(program not linked)",
|
||||
caller);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Page 82 (page 96 of the PDF) of the OpenGL 2.1 spec says:
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue