diff options
author | Tapani Pälli <[email protected]> | 2016-10-10 09:49:36 +0300 |
---|---|---|
committer | Tapani Pälli <[email protected]> | 2016-10-11 07:44:33 +0300 |
commit | fc8b358bd6971cc858bb06bdb4eed92656a6d8bd (patch) | |
tree | 6c8d7072ea7b4e10b08433c12397026227760d27 /src/mesa/main/transformfeedback.c | |
parent | d11a63d6e69298f34bb08334f637c100f6989ca7 (diff) |
mesa: fix error handling in _mesa_TransformFeedbackVaryings
Patch changes function to use _mesa_lookup_shader_program_err both
in TransformFeedbackVaryings and GetTransformFeedbackVarying that
handles errors correctly for invalid values of shader program.
Fixes following dEQP test:
dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.transform_feedback_varyings
Signed-off-by: Tapani Pälli <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98135
Reviewed-by: Iago Toral Quiroga <[email protected]>
Diffstat (limited to 'src/mesa/main/transformfeedback.c')
-rw-r--r-- | src/mesa/main/transformfeedback.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index 7c0ff6fc896..738d63eee37 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -846,12 +846,10 @@ _mesa_TransformFeedbackVaryings(GLuint program, GLsizei count, return; } - shProg = _mesa_lookup_shader_program(ctx, program); - if (!shProg) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glTransformFeedbackVaryings(program=%u)", program); + shProg = _mesa_lookup_shader_program_err(ctx, program, + "glTransformFeedbackVaryings"); + if (!shProg) return; - } if (ctx->Extensions.ARB_transform_feedback3) { if (bufferMode == GL_INTERLEAVED_ATTRIBS) { @@ -927,12 +925,10 @@ _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index, struct gl_program_resource *res; GET_CURRENT_CONTEXT(ctx); - shProg = _mesa_lookup_shader_program(ctx, program); - if (!shProg) { - _mesa_error(ctx, GL_INVALID_VALUE, - "glGetTransformFeedbackVarying(program=%u)", program); + shProg = _mesa_lookup_shader_program_err(ctx, program, + "glGetTransformFeedbackVarying"); + if (!shProg) return; - } res = _mesa_program_resource_find_index((struct gl_shader_program *) shProg, GL_TRANSFORM_FEEDBACK_VARYING, |