From bfeb93f80e2ef911fa39b612824a16477fddf881 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Thu, 17 Jun 2021 20:39:41 +0200
Subject: [PATCH] [#70] Fixed shader-compiler and push contants in voxelization
 reset

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp | 3 ++-
 projects/voxelization/.gitignore                         | 2 +-
 projects/voxelization/resources/shaders/voxelReset.comp  | 2 +-
 projects/voxelization/src/Voxelization.cpp               | 4 ++--
 4 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp b/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
index 9ba1595b..ec358188 100644
--- a/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
+++ b/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp
@@ -168,12 +168,13 @@ namespace vkcv::shader {
 		}
 		
 		std::streamsize fileSize = file.tellg();
-		std::vector<char> buffer (fileSize);
+		std::vector<char> buffer (fileSize + 1);
 		
 		file.seekg(0);
 		file.read(buffer.data(), fileSize);
 		file.close();
 		
+		buffer[fileSize] = '\0';
 		return buffer;
 	}
 	
diff --git a/projects/voxelization/.gitignore b/projects/voxelization/.gitignore
index 16f72da3..f07a22d4 100644
--- a/projects/voxelization/.gitignore
+++ b/projects/voxelization/.gitignore
@@ -1 +1 @@
-cmd_sync_test
\ No newline at end of file
+voxelization
\ No newline at end of file
diff --git a/projects/voxelization/resources/shaders/voxelReset.comp b/projects/voxelization/resources/shaders/voxelReset.comp
index bbbc2965..14b78d65 100644
--- a/projects/voxelization/resources/shaders/voxelReset.comp
+++ b/projects/voxelization/resources/shaders/voxelReset.comp
@@ -7,7 +7,7 @@ layout(set=0, binding=0) buffer voxelizationBuffer{
 layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
 
 layout( push_constant ) uniform constants{
-    int voxelCount;
+    uint voxelCount;
 };
 
 void main(){
diff --git a/projects/voxelization/src/Voxelization.cpp b/projects/voxelization/src/Voxelization.cpp
index 6ce571a3..a6717744 100644
--- a/projects/voxelization/src/Voxelization.cpp
+++ b/projects/voxelization/src/Voxelization.cpp
@@ -59,7 +59,7 @@ vkcv::ShaderProgram loadVoxelBufferToImageShader() {
 }
 
 const uint32_t voxelResolution = 128;
-const size_t voxelCount = voxelResolution * voxelResolution * voxelResolution;
+uint32_t voxelCount = voxelResolution * voxelResolution * voxelResolution;
 const vk::Format voxelizationDummyFormat = vk::Format::eR8Unorm;
 
 Voxelization::Voxelization(vkcv::Core* corePtr, const Dependencies& dependencies) 
@@ -225,7 +225,7 @@ void Voxelization::voxelizeMeshes(
 		m_voxelResetPipe,
 		resetVoxelDispatchCount,
 		{ vkcv::DescriptorSetUsage(0, m_corePtr->getDescriptorSet(m_voxelResetDescriptorSet).vulkanHandle) },
-		vkcv::PushConstantData(nullptr, 0));
+		vkcv::PushConstantData(&voxelCount, sizeof(voxelCount)));
 	m_corePtr->recordBufferMemoryBarrier(cmdStream, m_voxelBuffer.getHandle());
 
 	// voxelization
-- 
GitLab