1617a3babSopenharmony_ci#version 450
2617a3babSopenharmony_ci
3617a3babSopenharmony_ci#define MAX_VER  81
4617a3babSopenharmony_ci#define MAX_PRIM 32
5617a3babSopenharmony_ci#define MAX_VIEWS gl_MaxMeshViewCountNV
6617a3babSopenharmony_ci
7617a3babSopenharmony_ci#extension GL_NV_mesh_shader : enable
8617a3babSopenharmony_ci
9617a3babSopenharmony_cilayout(local_size_x = 32) in;
10617a3babSopenharmony_ci
11617a3babSopenharmony_cilayout(max_vertices=MAX_VER) out;
12617a3babSopenharmony_cilayout(max_primitives=MAX_PRIM) out;
13617a3babSopenharmony_cilayout(triangles) out;
14617a3babSopenharmony_ci
15617a3babSopenharmony_ci// test error checks for use of incorrect per-view attributes
16617a3babSopenharmony_ci
17617a3babSopenharmony_ci// per-view block attributes
18617a3babSopenharmony_ciperviewNV layout(location=0) out perviewBlock {
19617a3babSopenharmony_ci    vec4 missingInnermostDimSize1[][];
20617a3babSopenharmony_ci    vec4 incorrectViewDimSize1[MAX_VIEWS+1];
21617a3babSopenharmony_ci    vec4 missingViewDim1;
22617a3babSopenharmony_ci} b2[];
23617a3babSopenharmony_ci
24617a3babSopenharmony_ci// per-view non-block attributes
25617a3babSopenharmony_ciperviewNV layout(location=10) out vec4 missingInnermostDimSize2[][][];
26617a3babSopenharmony_ciperviewNV layout(location=11) out vec4 incorrectViewDimSize2[][MAX_VIEWS-1];
27617a3babSopenharmony_ciperviewNV layout(location=12) out vec4 missingViewDim2[];
28617a3babSopenharmony_ci
29617a3babSopenharmony_civoid main()
30617a3babSopenharmony_ci{
31617a3babSopenharmony_ci}
32617a3babSopenharmony_ci
33