Bug 95323

Summary: GL33-CTS.CommonBugs.CommonBug_ReservedNames fails
Product: Mesa Reporter: Dave Airlie <airlied>
Component: glsl-compilerAssignee: Ian Romanick <idr>
Status: RESOLVED WORKSFORME QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Dave Airlie 2016-05-09 06:37:08 UTC
This test tries to use struct as an interface block name, however we convert the struct into anonymous struct.

so the test expects something like

in struct {
   vec4 test;
} testBlockInstance; to fail to compile
Comment 1 Ian Romanick 2016-05-11 01:13:43 UTC
At least per the GLSL 1.50 specification, this test enforces NON-conformance!  The grammar makes it quite clear that

    in struct { ... } foo;

declares a shader input "foo" that is an anonymous structure.  Here are the relevant bits of the grammar (with some omissions for clarity):

    single_declaration:
        ...
        fully_specified_type IDENTIFIER
        ...

    fully_specified_type:
        type_specifier
        type_qualifier type_specifier

    type_qualifier:
        storage_qualifier
        ...

    storage_qualifier:
        ...
        IN
        ...
    
    type_specifier:
        type_specifier_no_prec
        precision_qualifier type_specifier_no_prec

    type_specifier_no_prec:
        type_specifier_nonarray
        ...

    type_specifier_nonarray:
        VOID
        FLOAT
        INT
        ...
        struct_specifier
        TYPE_NAME

    struct_specifier:
        ...
        STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE

Neither section 4.3.4 (Inputs) nor section 4.3.7 (Interface Blocks) add any limitations that I can see.  I'll dig through later specs to see if this changed.
Comment 2 Timothy Arceri 2018-03-06 00:38:43 UTC
The test is now called KHR-GL33.CommonBugs.CommonBug_ReservedNames and seems to pass with git master. This was likely fixed a while ago. Closing bug.

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.