Bug 98135

Summary: dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.transform_feedback_varyings wants a different GL error code
Product: Mesa Reporter: Kenneth Graunke <kenneth>
Component: Mesa coreAssignee: Tapani Pälli <lemody>
Status: RESOLVED FIXED QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 94448    

Description Kenneth Graunke 2016-10-07 00:37:20 UTC
dEQP-GLES31.functional.debug.negative_coverage.get_error.shader.transform_feedback_varyings

insists on INVALID_OPERATION rather than INVALID_VALUE.  No idea which is right.
Comment 1 Tapani Pälli 2016-10-10 06:26:49 UTC
OpenGL 3.0 spec says:

"The error INVALID VALUE is generated if program is not the name of a program object."

However in 4.0 spec this statement has been removed (and error case is likely described in some 'common errors' section since there is no error specified at all anymore for this case).

Starting from 4.3 spec there is clear error specified just like dEQP expects:

"An INVALID_VALUE error is generated if program is not the name of ei-
ther a program or shader object.

An INVALID_OPERATION error is generated if program is the name of a
shader object."

Our Piglit test is written against 3.0 spec rules so need to update that one as the error handling is changed.
Comment 2 Tapani Pälli 2016-10-10 06:32:18 UTC
Found the 'common errors' section referred by comment #1 ... it's 'Shader Objects' that has following clause (already specified in GL 3.0 spec!):

"Commands that accept shader or program object names will generate the error INVALID_VALUE if the provided name is not the name of either a shader or program object and INVALID_OPERATION if the provided name identifies an object that is not the expected type."
Comment 3 Tapani Pälli 2016-10-11 05:36:50 UTC
commit fc8b358bd6971cc858bb06bdb4eed92656a6d8bd
Author: Tapani Pälli <tapani.palli@intel.com>
Date:   Mon Oct 10 09:49:36 2016 +0300

    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 <tapani.palli@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98135
    Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.