[Bug 96320] [glsl] C-style const arrays trigger assertion in GLSL 4.30

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jun 2 02:52:00 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=96320

            Bug ID: 96320
           Summary: [glsl] C-style const arrays trigger assertion in GLSL
                    4.30
           Product: Mesa
           Version: git
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: glsl-compiler
          Assignee: idr at freedesktop.org
          Reporter: thematrixeatsyou at gmail.com
        QA Contact: intel-3d-bugs at lists.freedesktop.org

Overview:

When constructing a C-style array in a shader when the version is 430, this
assertion happens:

glsl/ast_to_hir.cpp:2103: virtual bool
ast_expression::has_sequence_subexpression() const: Assertion `!"ast_aggregate:
Should never get here."' failed.

The shader compiles successfully when the version is 420.

Steps to reproduce:

1) Put any of these in a shader with a #version 430 directive, and attempt to
compile the shader. If you do not hit a syntax error, these should trigger the
assertion (if you set the version to 420 they will compile successfully):

const float[] EXAMPLE1 = {1.0, 2.0, 3.0};
const float[] EXAMPLE2 = {1.0, 2.0, 3.0, };
const vec3[] EXAMPLE3 = {vec3(1.0, 2.0, 3.0), vec3(4.0, 5.0, 6.0)};
const vec3[] EXAMPLE4 = {vec3(1.0, 2.0, 3.0), vec3(4.0, 5.0, 6.0), };
const vec3[] EXAMPLE5 = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}};
const vec3[] EXAMPLE6 = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}, };
const vec3[] EXAMPLE7 = {{1.0, 2.0, 3.0, }, {4.0, 5.0, 6.0, }};
const vec3[] EXAMPLE8 = {{1.0, 2.0, 3.0, }, {4.0, 5.0, 6.0, }, };

These compile without any issues on both 420 and 430 (and also earlier
versions, for that matter):

const float[] NONC1 = float[](1.0, 2.0, 3.0);
const vec3[] NONC2 = vec3[](vec3(1.0, 2.0, 3.0), vec3(4.0, 5.0, 6.0));

For completeness, this one is a syntax error on 420 and 430:

const vec3[] INVALID1 = vec3[]({1.0, 2.0, 3.0}, {4.0, 5.0, 6.0});

Actual results:

Assertion, followed by an abort.

Expected results:

The shader should compile successfully.

Build Date & Hardware:

Git Revision: 98d40b4d1195ebfaa2fd9ed43755ca6896422c1a
Git Revision Date:   Wed Jun 1 09:21:01 2016 +1000
Build Date: 2016-01-06, around 15:00 NZST (+1200)
GPU: Intel HD 530 (Skylake GT2) - i965 driver
Core GL version: 4.3 (GLSL 4.30)
OS: Void Linux amd64

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20160602/97a8ec81/attachment-0001.html>


More information about the intel-3d-bugs mailing list