Bug 93180 - [regression] arb_separate_shader_objects.active sampler conflict fails
Summary: [regression] arb_separate_shader_objects.active sampler conflict fails
Status: CLOSED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Timothy Arceri
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-30 20:22 UTC by Mark Janes
Modified: 2015-12-07 18:23 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Mark Janes 2015-11-30 20:22:37 UTC
mesa c3ec12ec3c1ddbc72e50df1f5632fe0547a89f7e regressed the following piglit test:

piglit.spec.arb_separate_shader_objects.active sampler conflict

Standard Output

/tmp/build_root/m64/lib/piglit/bin/arb_separate_shader_object-active-sampler-conflict -auto -fbo
piglit: debug: Requested an OpenGL 3.1 Forward-Compatible Core Context, and received a matching 3.3 context

Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:218)
Expected GL error: GL_INVALID_OPERATION 0x502
Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:229)
Expected GL error: GL_INVALID_OPERATION 0x502
Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:218)
Expected GL error: GL_INVALID_OPERATION 0x502
Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:229)
Expected GL error: GL_INVALID_OPERATION 0x502
Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:218)
Expected GL error: GL_INVALID_OPERATION 0x502
Failed to validate the pipeline: Texture unit 1 is accessed both as sampler2D and sampler3D
Unexpected GL error: GL_NO_ERROR 0x0
(Error at /home/jenkins/workspace/Leeroy/repos/piglit/tests/spec/arb_separate_shader_objects/active-sampler-conflict.c:229)
Expected GL error: GL_INVALID_OPERATION 0x502


The commit that triggered the test failure:
Author:     Timothy Arceri <timothy.arceri@collabora.com>
AuthorDate: Thu Nov 26 21:32:48 2015 +1100
Commit:     Timothy Arceri <timothy.arceri@collabora.com>
CommitDate: Fri Nov 27 08:44:37 2015 +1100

    glsl: don't generate extra errors in ValidateProgramPipeline
    
    From Section 11.1.3.11 (Validation) of the GLES 3.1 spec:
    
       "An INVALID_OPERATION error is generated by any command that trans-
       fers vertices to the GL or launches compute work if the current set
       of active program objects cannot be executed, for reasons including:"
    
    It then goes on to list the rules we validate in the
    _mesa_validate_program_pipeline() function.
    
    For ValidateProgramPipeline the only mention of generating an error is:
    
       "An INVALID_OPERATION error is generated if pipeline is not a name re-
       turned from a previous call to GenProgramPipelines or if such a name has
       since been deleted by DeleteProgramPipelines,"
    
    Which we handle separately.
    
    This fixes:
    ES31-CTS.sepshaderobjs.PipelineApi
    
    No regressions on the eEQP 3.1 tests.
    
    Cc: Gregory Hainaut <gregory.hainaut@gmail.com>
    Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Comment 1 Timothy Arceri 2015-11-30 22:28:59 UTC
I'll look into a fix, I seem to have missed the failure in the CI test results.

There seems to be no real regression here the test seems to have been incorrectly passing previously because the validation calls were incorrectly causing the errors that the test was expecting from the draw calls.
Comment 2 Timothy Arceri 2015-12-01 00:14:56 UTC
So there were existing bugs in both the test and Mesa uncovered by c3ec12ec3c1d

I've fixed both and sent for review.

Piglit patch:
http://patchwork.freedesktop.org/patch/66614/

Mesa patch:
http://patchwork.freedesktop.org/patch/66617/
Comment 3 Timothy Arceri 2015-12-07 11:09:13 UTC
Fixed by Mesa commit da1a01361b0b4b9c727aa9a5a2ebe270a6fa81b7

glsl: re-validate program pipeline after sampler change
Comment 4 Mark Janes 2015-12-07 18:23:58 UTC
Thanks for the fix.


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.