SPIRV-Cross/reference/shaders-no-opt/asm/mesh/mesh-shader-plain-builtin-outputs.spv14.asm.vk.nocompat.mesh.vk
2022-11-02 13:08:56 +01:00

45 lines
1.8 KiB
Plaintext

#version 450
#extension GL_EXT_mesh_shader : require
layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) in;
layout(max_vertices = 24, max_primitives = 8, triangles) out;
struct _12
{
float _m0;
};
layout(location = 1) out vec4 B[24];
layout(location = 3) perprimitiveEXT out vec4 C[8];
shared float _9[64];
taskPayloadSharedEXT _12 _11;
void main()
{
_9[gl_LocalInvocationIndex] = float(gl_LocalInvocationIndex);
barrier();
SetMeshOutputsEXT(24u, 8u);
gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_Position.x = _9[gl_LocalInvocationIndex];
gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_Position.y = _9[gl_LocalInvocationIndex];
gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_Position.z = _9[gl_LocalInvocationIndex];
gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_Position.w = _9[gl_LocalInvocationIndex];
float _63 = _11._m0 + _9[gl_LocalInvocationIndex ^ 1u];
B[gl_LocalInvocationIndex].x = _63;
B[gl_LocalInvocationIndex].y = _63;
B[gl_LocalInvocationIndex].z = _63;
B[gl_LocalInvocationIndex].w = _63;
if (gl_LocalInvocationIndex < 8u)
{
uint _71 = gl_LocalInvocationIndex * 3u;
gl_PrimitiveTriangleIndicesEXT[gl_LocalInvocationIndex] = uvec3(_71, _71 + 1u, _71 + 2u);
gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_CullPrimitiveEXT = (gl_LocalInvocationIndex & 1u) != 0u;
gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_PrimitiveID = int(gl_LocalInvocationIndex);
gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_Layer = int(gl_LocalInvocationIndex);
uint _81 = gl_LocalInvocationIndex ^ 2u;
C[gl_LocalInvocationIndex].x = _9[_81];
C[gl_LocalInvocationIndex].y = _9[_81];
C[gl_LocalInvocationIndex].z = _9[_81];
C[gl_LocalInvocationIndex].w = _9[_81];
}
}