Bug 93861 - [regression, bisected] arb_shader_atomic_counters.compiler.builtins.frag
Summary: [regression, bisected] arb_shader_atomic_counters.compiler.builtins.frag
Status: RESOLVED 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: Marta Löfstedt
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-25 20:07 UTC by Mark Janes
Modified: 2016-02-08 05:44 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
patch that fix the testcase (1.19 KB, text/plain)
2016-02-02 10:27 UTC, Marta Löfstedt
Details

Description Mark Janes 2016-01-25 20:07:56 UTC
mesa 3e640c2 regressed this test on bdw bsw byt hsw ivb skl:

/tmp/build_root/m64/lib/piglit/bin/glslparsertest /tmp/build_root/m64/lib/piglit/tests/spec/arb_shader_atomic_counters/compiler/builtins.frag pass 1.40 GL_ARB_shader_atomic_counters
piglit: debug: Requested an OpenGL 3.1 Forward-Compatible Core Context, and received a matching 3.3 context

Shader source:
/* [config]
 * expect_result: pass
 * glsl_version: 1.40
 * require_extensions: GL_ARB_shader_atomic_counters
 * [end config]
 *
 * Check that the builtin constants defined by the extension
 * are present.
 */
#version 140
#extension GL_ARB_shader_atomic_counters: require

out ivec4 fcolor;

void main()
{
        fcolor.x = gl_MaxVertexAtomicCounters +
                gl_MaxTessControlAtomicCounters +
                gl_MaxTessEvaluationAtomicCounters +
                gl_MaxGeometryAtomicCounters +
                gl_MaxFragmentAtomicCounters +
                gl_MaxCombinedAtomicCounters +
                gl_MaxAtomicCounterBindings;
}

Standard Error

Failed to compile fragment shader /tmp/build_root/m64/lib/piglit/tests/spec/arb_shader_atomic_counters/compiler/builtins.frag: 0:20(2): error: `gl_MaxGeometryAtomicCounters' undeclared

Bisected commit:

Author:     Marta Lofstedt <marta.lofstedt@intel.com>
AuthorDate: Thu Jan 21 16:17:32 2016 +0100
Commit:     Marta Lofstedt <marta.lofstedt@linux.intel.com>
CommitDate: Fri Jan 22 17:13:55 2016 +0100

    mesa: Update _mesa_has_geometry_shaders
    
    Updates the _mesa_has_geometry_shaders function to also look
    for OpenGL ES 3.1 contexts that has OES_geometry_shader enabled.
    Reviewed-by: Matt Turner <mattst88@gmail.com>
    Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Comment 1 Marta Löfstedt 2016-02-02 10:12:06 UTC
The bisect should be to:

commit ae4e4ba06da0ef50150d7d366ac4f7ec2179115c
Author: Marta Lofstedt <marta.lofstedt@intel.com>
Date:   Thu Jan 21 16:17:31 2016 +0100

    glsl: add support for GL_OES_geometry_shader

The previously pin-pointed patch can not cause this "regressions".

Also, I the testcase is wrong.
gl_MaxGeometryAtomicCounters does not make sense if we don't have geometry shaders, which isn't until OpenGL 3.2 i.e. glsl 1.50.
Comment 2 Marta Löfstedt 2016-02-02 10:27:51 UTC
Created attachment 121456 [details]
patch that fix the testcase
Comment 3 Mark Janes 2016-02-02 19:25:15 UTC
Apologies.  It would have been more precise to indicate that the 4-patch series ending in 3e640c2 caused the regression.

When the patch series is known, I don't usually spend time bisecting further.  Would that information be useful to you?
Comment 4 Tapani Pälli 2016-02-08 05:44:59 UTC
commit 299b8597502f3406e3e50109cadab50bbac59255
Author: Marta Lofstedt <marta.lofstedt@intel.com>
Date:   Tue Feb 2 11:38:57 2016 +0100

    arb_shader_atomic_counters: fix glsl version
    
    The gl_MaxGeometryAtomicCounters does not make sense
    util we have geometry shaders. I.e. glsl version 150
    is the limit for this tests.
    
    Signed-off-by: Marta Lofstedt <marta.lofstedt@linux.intel.com>
    Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93861


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.