Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'shaders-hlsl/mesh/mesh-shader-basic-lines.spv14.vk.nocompat.mesh')
-rw-r--r--shaders-hlsl/mesh/mesh-shader-basic-lines.spv14.vk.nocompat.mesh74
1 files changed, 74 insertions, 0 deletions
diff --git a/shaders-hlsl/mesh/mesh-shader-basic-lines.spv14.vk.nocompat.mesh b/shaders-hlsl/mesh/mesh-shader-basic-lines.spv14.vk.nocompat.mesh
new file mode 100644
index 00000000..4f9500fe
--- /dev/null
+++ b/shaders-hlsl/mesh/mesh-shader-basic-lines.spv14.vk.nocompat.mesh
@@ -0,0 +1,74 @@
+#version 450
+#extension GL_EXT_mesh_shader : require
+layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) in;
+layout(lines, max_vertices = 24, max_primitives = 22) out;
+
+out gl_MeshPerVertexEXT
+{
+ vec4 gl_Position;
+ float gl_PointSize;
+ float gl_ClipDistance[1];
+ float gl_CullDistance[2];
+} gl_MeshVerticesEXT[];
+
+layout(location = 0) out vec4 vOut[];
+layout(location = 1) perprimitiveEXT out vec4 vPrim[];
+
+layout(location = 2) out BlockOut
+{
+ vec4 a;
+ vec4 b;
+} outputs[];
+
+layout(location = 4) perprimitiveEXT out BlockOutPrim
+{
+ vec4 a;
+ vec4 b;
+} prim_outputs[];
+
+shared float shared_float[16];
+
+struct TaskPayload
+{
+ float a;
+ float b;
+ int c;
+};
+
+taskPayloadSharedEXT TaskPayload payload;
+
+void main3()
+{
+ gl_PrimitiveLineIndicesEXT[gl_LocalInvocationIndex] = uvec2(0, 1) + gl_LocalInvocationIndex;
+ gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_PrimitiveID = int(gl_GlobalInvocationID.x);
+ gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_Layer = int(gl_GlobalInvocationID.x) + 1;
+ gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_ViewportIndex = int(gl_GlobalInvocationID.x) + 2;
+ gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_CullPrimitiveEXT = bool(gl_GlobalInvocationID.x & 1);
+ gl_MeshPrimitivesEXT[gl_LocalInvocationIndex].gl_PrimitiveShadingRateEXT = int(gl_GlobalInvocationID.x) + 3;
+}
+
+void main2()
+{
+ SetMeshOutputsEXT(24, 22);
+ gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_Position = vec4(gl_GlobalInvocationID, 1.0);
+ // gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_PointSize = 2.0;
+ gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_ClipDistance[0] = 4.0;
+ gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_CullDistance[0] = 6.0;
+ gl_MeshVerticesEXT[gl_LocalInvocationIndex].gl_CullDistance[1] = 5.0;
+ vOut[gl_LocalInvocationIndex] = vec4(gl_GlobalInvocationID, 2.0);
+ outputs[gl_LocalInvocationIndex].a = vec4(5.0);
+ outputs[gl_LocalInvocationIndex].b = vec4(6.0);
+ barrier();
+ if (gl_LocalInvocationIndex < 22)
+ {
+ vPrim[gl_LocalInvocationIndex] = vec4(gl_WorkGroupID, 3.0);
+ prim_outputs[gl_LocalInvocationIndex].a = vec4(payload.a);
+ prim_outputs[gl_LocalInvocationIndex].b = vec4(payload.b);
+ main3();
+ }
+}
+
+void main()
+{
+ main2();
+}