Bug 92215

Summary: [Regression, bisected] arb_direct_state_access.texunits piglit test broken
Product: Mesa Reporter: Mark Janes <mark.a.janes>
Component: Drivers/DRI/i965Assignee: Brian Paul <brian.e.paul>
Status: CLOSED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: blocker    
Priority: medium CC: lemody, mark.a.janes, vlee
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Mark Janes 2015-10-01 17:23:03 UTC
on all tested platforms, the following commit regressed piglit.spec.arb_direct_state_access.texunits

commit a9408f3ca14f2fb6286bd66bad06ee1bde0d8697
Author: Brian Paul <brianp@vmware.com>
Date:   Wed Sep 30 11:37:16 2015 -0600

    mesa: remove _mesa_get_tex_unit_err() and fix error handling
    
    This helper was only called from _mesa_BindTextureUnit().  It's simpler
    to just inline it.
    
    The error check / code / message in the helper was incorrect.  It was
    written for glBindTextures(), not glBindTextureUnit().  The correct
    error for a bad texture unit number is GL_INVALID_VALUE.  The error
    message now reports the unit number rather than a GL_TEXTUREi enum.
    
    Fixes a failure in piglit's arb_direct_state_access-bind-texture-unit test.
    
    Reviewed-by: Tapani Pälli <tapani.palli@intel.com>

Output from the test:

Standard Output
bin/arb_direct_state_access-texunits -auto -fbo
piglit: debug: Requested an OpenGL 3.1 Forward-Compatible Core Context, and received a matching 3.3 context

GL_RENDERER = Mesa DRI Intel(R) Sandybridge Desktop 
GL_MAX_TEXTURE_COORDS = 8
GL_MAX_TEXTURE_IMAGE_UNITS = 16
GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 16
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 48
Unexpected GL error: GL_INVALID_VALUE 0x501
(Error at /var/lib/jenkins/jobs/Leeroy/workspace@3/repos/piglit/tests/spec/arb_direct_state_access/texunits.c:124)
Expected GL error: GL_INVALID_OPERATION 0x502

Standard Error

Mesa: User error: GL_INVALID_VALUE in glBindTextureUnit(unit=48)
Comment 1 Tapani Pälli 2015-10-02 07:49:09 UTC
this one has a bit of strange history where there was a debate about correct error ...

see following Piglit commit:
9b445f7a68146f50222a4162b5f7ec68c043e851
Comment 2 Tapani Pälli 2015-10-02 08:16:14 UTC
I've sent a fix to texunits test so that it expects same error as bind-texture test.
Comment 3 Tapani Pälli 2015-10-03 02:17:43 UTC
*** Bug 92264 has been marked as a duplicate of this bug. ***
Comment 4 Tapani Pälli 2015-10-05 05:04:52 UTC
commit d9e3621a2eb6deb12a326ed1376a7ae45a1c9d52
Author: Brian Paul <brianp@vmware.com>
Date:   Wed Sep 30 15:27:56 2015 -0600

    arb_direct_state_access-texunits: fix incorrect error test
    
    Check for GL_INVALID_VALUE, not GL_INVALID_OPERATION.  The extension spec
    isn't clear on this, but GL_INVALID_VALUE is typically generated for
    out-of-range int/uint values.
    
    That's what NVIDIA does.  Plus, that's what the other bind-texture-unit
    piglit test checks for at line 91.  Let's at least be consistent.
    
    Reviewed-by: Tapani Pälli <tapani.palli@intel.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.