| # WARNING: This file is auto-generated. Do NOT modify it manually, but rather |
| # modify the generating script file. Otherwise changes will be lost! |
| |
| group valid "Valid uniform interface block syntax tests." |
| |
| case repeat_interface_qualifier_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| uniform vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case repeat_interface_qualifier_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| uniform vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_shared_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(shared) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_shared_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(shared) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_packed_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(packed) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_packed_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(packed) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_std140_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(std140) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_std140_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(std140) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_row_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(row_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_row_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(row_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_column_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_column_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_all_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(shared, packed, std140, row_major, column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_all_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(shared, packed, std140, row_major, column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case layout_all_8_times_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case layout_all_8_times_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_shared_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_shared_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_packed_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(packed) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_packed_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(packed) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_std140_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(std140) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_std140_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(std140) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_row_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(row_major) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_row_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(row_major) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_column_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(column_major) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_column_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(column_major) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_all_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared, packed, std140, row_major, column_major) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_all_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared, packed, std140, row_major, column_major) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case global_layout_all_8_times_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case global_layout_all_8_times_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major, shared, packed, std140, row_major, column_major) uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_layout_row_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(row_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember[0]; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_row_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(row_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember[0]; |
| } |
| "" |
| end |
| case member_layout_column_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember[0]; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_column_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember[0]; |
| } |
| "" |
| end |
| case member_layout_row_major_vec4_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(row_major) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_row_major_vec4_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(row_major) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_layout_column_major_vec4_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(column_major) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_column_major_vec4_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(column_major) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_layout_all_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember[0]; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_all_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember[0]; |
| } |
| "" |
| end |
| case member_layout_all_8_times_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember[0]; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_all_8_times_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) mat4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember[0]; |
| } |
| "" |
| end |
| case no_instance_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| }; |
| |
| void main() |
| { |
| gl_Position = uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case no_instance_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| }; |
| |
| void main() |
| { |
| o_color = uniformMember; |
| } |
| "" |
| end |
| case same_variable_and_block_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| vec4 UniformBlock = vec4(0.0); |
| gl_Position = UniformBlock + uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case same_variable_and_block_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| vec4 UniformBlock = vec4(0.0); |
| o_color = UniformBlock + uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case same_variable_and_instance_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| vec4 uniformBlock = vec4(0.0); |
| gl_Position = uniformBlock; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case same_variable_and_instance_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| vec4 uniformBlock = vec4(0.0); |
| o_color = uniformBlock; |
| } |
| "" |
| end |
| case struct_member_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.st.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case struct_member_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.st.uniformMember; |
| } |
| "" |
| end |
| case struct_member_layout_row_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.st.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case struct_member_layout_row_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.st.uniformMember; |
| } |
| "" |
| end |
| case struct_member_layout_column_major_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.st.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case struct_member_layout_column_major_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.st.uniformMember; |
| } |
| "" |
| end |
| case struct_member_layout_all_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.st.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case struct_member_layout_all_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.st.uniformMember; |
| } |
| "" |
| end |
| case struct_member_layout_all_8_times_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.st.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case struct_member_layout_all_8_times_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| struct Struct |
| { |
| vec4 uniformMember; |
| }; |
| |
| uniform UniformBlock |
| { |
| layout(row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major, row_major, column_major) Struct st; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.st.uniformMember; |
| } |
| "" |
| end |
| case long_block_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| // Total of 1024 characters |
| uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case long_block_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| // Total of 1024 characters |
| uniform aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case long_instance_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; |
| // Total of 1024 characters |
| |
| void main() |
| { |
| gl_Position = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case long_instance_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; |
| // Total of 1024 characters |
| |
| void main() |
| { |
| o_color = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.uniformMember; |
| } |
| "" |
| end |
| case underscore_block_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform _ |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case underscore_block_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform _ |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case underscore_instance_name_vertex |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } _; |
| |
| void main() |
| { |
| gl_Position = _.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case underscore_instance_name_fragment |
| version 300 es |
| expect build_successful |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } _; |
| |
| void main() |
| { |
| o_color = _.uniformMember; |
| } |
| "" |
| end |
| |
| end # valid |
| group invalid "Invalid uniform interface block syntax tests." |
| |
| case member_in_interface_qualifier_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| in vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_in_interface_qualifier_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| in vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_out_interface_qualifier_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| out vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_out_interface_qualifier_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| out vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_buffer_interface_qualifier_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| buffer vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_buffer_interface_qualifier_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| buffer vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_attribute_interface_qualifier_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| attribute vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_attribute_interface_qualifier_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| attribute vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_varying_interface_qualifier_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| varying vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_varying_interface_qualifier_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| varying vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_instance_names_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlockA |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform UniformBlockB |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_instance_names_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlockA |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform UniformBlockB |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_function_and_instance_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| float uniformBlock (float x) |
| { |
| return x; |
| } |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_function_and_instance_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| float uniformBlock (float x) |
| { |
| return x; |
| } |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_function_and_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| float UniformBlock (float x) |
| { |
| return x; |
| } |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_function_and_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| float UniformBlock (float x) |
| { |
| return x; |
| } |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_uniform_and_instance_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform vec4 uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_uniform_and_instance_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform vec4 uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_in_and_instance_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| in vec4 uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_in_and_instance_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| in vec4 uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_out_and_instance_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| out vec4 uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_out_and_instance_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| out vec4 uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_uniform_and_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform vec4 UniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_uniform_and_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| uniform vec4 UniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_in_and_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| in vec4 UniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_in_and_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| in vec4 UniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case conflicting_out_and_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| out vec4 UniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case conflicting_out_and_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| out vec4 UniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case matching_instance_and_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } UniformBlock; |
| |
| void main() |
| { |
| gl_Position = UniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case matching_instance_and_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } UniformBlock; |
| |
| void main() |
| { |
| o_color = UniformBlock.uniformMember; |
| } |
| "" |
| end |
| case reference_using_block_name_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = UniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case reference_using_block_name_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = UniformBlock.uniformMember; |
| } |
| "" |
| end |
| case empty_block_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = vec4(0.0); |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case empty_block_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = vec4(0.0); |
| } |
| "" |
| end |
| case empty_layout_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| layout() uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case empty_layout_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| layout() uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case empty_member_layout_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout() vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case empty_member_layout_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout() vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case empty_global_layout_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| layout() uniform; |
| |
| |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case empty_global_layout_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout() uniform; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case structure_definition_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| struct A |
| { |
| vec4 uniformMember; |
| } a; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.a.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case structure_definition_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| struct A |
| { |
| vec4 uniformMember; |
| } a; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.a.uniformMember; |
| } |
| "" |
| end |
| case member_layout_shared_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(shared) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_shared_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(shared) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_layout_packed_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(packed) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_packed_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(packed) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
| } |
| "" |
| end |
| case member_layout_std140_vertex |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| |
| |
| uniform UniformBlock |
| { |
| layout(std140) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| gl_Position = uniformBlock.uniformMember; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| void main() |
| { |
| o_color = vec4(1.0); |
| } |
| "" |
| end |
| case member_layout_std140_fragment |
| version 300 es |
| expect compile_fail |
| |
| vertex "" |
| #version 300 es |
| precision highp float; |
| |
| in vec4 a_pos; |
| |
| void main() |
| { |
| gl_Position = a_pos; |
| } |
| "" |
| |
| fragment "" |
| #version 300 es |
| precision highp float; |
| |
| layout(location=0) out vec4 o_color; |
| |
| uniform UniformBlock |
| { |
| layout(std140) vec4 uniformMember; |
| } uniformBlock; |
| |
| void main() |
| { |
| o_color = uniformBlock.uniformMember; |
|