1617a3babSopenharmony_ci#version 460
2617a3babSopenharmony_ci#extension GL_EXT_mesh_shader : enable
3617a3babSopenharmony_ci
4617a3babSopenharmony_ci#define MAX_VER  81
5617a3babSopenharmony_ci#define MAX_PRIM 32
6617a3babSopenharmony_ci
7617a3babSopenharmony_cilayout(local_size_x = 1) in;
8617a3babSopenharmony_ci
9617a3babSopenharmony_cilayout(max_vertices=MAX_VER) out;
10617a3babSopenharmony_cilayout(max_primitives=MAX_PRIM) out;
11617a3babSopenharmony_cilayout(triangles) out;
12617a3babSopenharmony_ci
13617a3babSopenharmony_ci// use of storage qualifier "taskPayloadSharedEXT" in mesh shaders:
14617a3babSopenharmony_cistruct taskBlock {
15617a3babSopenharmony_ci    int atom1;
16617a3babSopenharmony_ci};
17617a3babSopenharmony_citaskPayloadSharedEXT taskBlock mytask;
18617a3babSopenharmony_ci
19617a3babSopenharmony_ci
20617a3babSopenharmony_civoid main() {
21617a3babSopenharmony_ci  atomicAdd(mytask.atom1, 1);
22617a3babSopenharmony_ci}