| group invalid_declarations "Invalid declarations" |
| case in_in_vertex_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| in mediump float val; |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case out_in_vertex_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| out mediump float val; |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| in mediump float val; |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case in_in_fragment_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| out mediump float val; |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| in mediump float val; |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case out_in_fragment_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| out mediump float val; |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case uniform_in_vertex_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| uniform mediump float val; |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case uniform_in_fragment_main |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| uniform mediump float val; |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case uniform_block_in_main |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| void main() |
| { |
| uniform Block { mediump float val; }; |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case invariant_attribute |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| invariant in mediump float val; |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case invariant_uniform |
| version 300 es |
| expect compile_fail |
| vertex "" |
| #version 300 es |
| invariant uniform mediump float val; |
| ${VERTEX_DECLARATIONS} |
| void main() |
| { |
| gl_Position = vec4(1.0); |
| } |
| "" |
| fragment "" |
| #version 300 es |
| ${FRAGMENT_DECLARATIONS} |
| void main() |
| { |
| ${FRAG_COLOR} = vec4(1.0); |
| } |
| "" |
| end |
| |
| case invariant_uniform_block_1 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| invariant uniform Block { mediump float val; }; |
| ${DECLARATIONS} |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case invariant_uniform_block_2 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| uniform Block { invariant mediump float val; }; |
| ${DECLARATIONS} |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_layout_qualifier |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| layout(foobar) uniform Block |
| { |
| mediump float val; |
| }; |
| ${DECLARATIONS} |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_member_layout_qualifier |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| layout(foobar) uniform mediump float val; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_nested_struct_definition |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| struct S |
| { |
| mediump float v; |
| struct T |
| { |
| highp int i; |
| } t; |
| } s; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case nested_uniform_block |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| uniform Block2 |
| { |
| mediump float v; |
| } block2; |
| } block; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_sampler_2d |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| uniform sampler2D s; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_sampler_cube |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| uniform samplerCube s; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_missing_member_semicolon |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_missing_end_semicolon |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| } |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_member_name_1 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_member_name_2 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| }; |
| uniform Block2 |
| { |
| mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_member_name_3 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform mediump float var; |
| uniform Block |
| { |
| mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_block_name |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| }; |
| uniform Block |
| { |
| mediump float var2; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_instance_name_1 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| } block; |
| uniform Block2 |
| { |
| mediump float var2; |
| } block; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_instance_name_2 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform mediump float block; |
| uniform Block |
| { |
| mediump float var; |
| } block; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_duplicate_instance_name_3 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float block; |
| }; |
| uniform Block2 |
| { |
| mediump float var2; |
| } block; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_array_without_instance_name_1 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block[2] |
| { |
| mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_array_without_instance_name_2 |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| mediump float var; |
| } [2]; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_in |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| in mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_out |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| out mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| case uniform_block_const |
| version 300 es |
| expect compile_fail |
| both "" |
| #version 300 es |
| ${DECLARATIONS} |
| uniform Block |
| { |
| const mediump float var; |
| }; |
| void main() |
| { |
| ${OUTPUT} |
| } |
| "" |
| end |
| |
| end # invalid_declarations |