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