From f22dffcd7347f1c74853923d6f498fc64a04a3ad Mon Sep 17 00:00:00 2001
From: Artur Wasmut <awasmut@uni-koblenz.de>
Date: Sat, 3 Jul 2021 16:05:26 +0200
Subject: [PATCH] fill out mesh shaders.

---
 projects/mesh_shader/resources/shaders/shader.frag |  4 ++--
 projects/mesh_shader/resources/shaders/shader.mesh | 12 +++++++++++-
 projects/mesh_shader/resources/shaders/shader.task | 13 ++++++++-----
 projects/mesh_shader/src/main.cpp                  |  3 ++-
 4 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/projects/mesh_shader/resources/shaders/shader.frag b/projects/mesh_shader/resources/shaders/shader.frag
index 080678be..bdae0787 100644
--- a/projects/mesh_shader/resources/shaders/shader.frag
+++ b/projects/mesh_shader/resources/shaders/shader.frag
@@ -1,9 +1,9 @@
 #version 450
 #extension GL_ARB_separate_shader_objects : enable
 
-layout(location = 0) in vec3 fragColor;
+//layout(location = 0) in vec3 fragColor;
 layout(location = 0) out vec4 outColor;
 
 void main() {
-	outColor = vec4(fragColor, 1.0);
+	outColor = vec4(1.0);
 }
\ No newline at end of file
diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh
index f4bddd60..b52a424d 100644
--- a/projects/mesh_shader/resources/shaders/shader.mesh
+++ b/projects/mesh_shader/resources/shaders/shader.mesh
@@ -15,5 +15,15 @@ out gl_MeshPerVertexNV {
 } gl_MeshVerticesNV[];
 
 void main()	{
-    
+	if(gl_LocalInvocationID.x == 0)
+	{
+		gl_PrimitiveCountNV = 1;
+		gl_PrimitiveIndicesNV[0] = 0;
+		gl_PrimitiveIndicesNV[1] = 1;
+		gl_PrimitiveIndicesNV[2] = 2;
+		
+		gl_MeshVerticesNV[0].gl_Position = vec4(-0.5,  0.5, -1, 1);
+		gl_MeshVerticesNV[1].gl_Position = vec4( 0.5,  0.5, -1, 1);
+		gl_MeshVerticesNV[2].gl_Position = vec4( 0  , -0.5, -1, 1);
+	}
 }
\ No newline at end of file
diff --git a/projects/mesh_shader/resources/shaders/shader.task b/projects/mesh_shader/resources/shaders/shader.task
index 3308320f..e9952528 100644
--- a/projects/mesh_shader/resources/shaders/shader.task
+++ b/projects/mesh_shader/resources/shaders/shader.task
@@ -4,12 +4,15 @@
 
 layout(local_size_x=32) in;
 
-taskNV out Task {
-  uint baseID;
-  uint subIDs[32];
-} OUT;
+//taskNV out Task {
+//  uint baseID;
+//  uint subIDs[32];
+//} OUT;
 
 
 void main() {
-
+	if(gl_LocalInvocationID.x == 0)
+	{
+		gl_TaskCountNV = 1;
+	}
 }
\ No newline at end of file
diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp
index 5e760256..6fa6c8f6 100644
--- a/projects/mesh_shader/src/main.cpp
+++ b/projects/mesh_shader/src/main.cpp
@@ -156,6 +156,7 @@ int main(int argc, const char** argv) {
 			{ vkcv::MeshShaderDrawcall({}, 1) },
 			{ swapchainInput });
 
+		/*
 		core.recordDrawcallsToCmdStream(
 			cmdStream,
 			renderPass,
@@ -163,7 +164,7 @@ int main(int argc, const char** argv) {
 			pushConstantData,
 			{ drawcall },
 			{ swapchainInput });
-
+		*/
 
 		core.prepareSwapchainImageForPresent(cmdStream);
 		core.submitCommandStream(cmdStream);
-- 
GitLab