diff --git a/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp b/modules/shader_compiler/src/vkcv/shader/GLSLCompiler.cpp index 9ba1595b22cda7ea848a834067ee66b770391f9a..ec358188b8e871da6f4d62ffd397f32bfb795ee2 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 16f72da367245ad14a38ee756816f06f8cbbe3d2..f07a22d4e0641a9114e998212f38ca9cb83a9655 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 bbbc296571458f2116d2dcfbf53749d43d23ca27..14b78d6584d703be68594e3cb03ebcd47c94b6e0 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 6ce571a3e10d95588a232a5e40dc22fa559c49dd..a67177447ec3b795c3c65476e6881b067a33df84 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