diff --git a/Renderer/Pipeline.cpp b/Renderer/Pipeline.cpp index 8d89ee6..3906cb6 100644 --- a/Renderer/Pipeline.cpp +++ b/Renderer/Pipeline.cpp @@ -173,6 +173,7 @@ GraphicsPipeline::GraphicsPipeline(vk::Device dev, const std::vector& sh } pipeline = res.value; + dev.destroyPipelineLayout(layout); } void GraphicsPipeline::update(uint32_t binding, const UniformBuffer& uni) { diff --git a/Renderer/Renderer.cpp b/Renderer/Renderer.cpp index a681bd1..33c03d4 100644 --- a/Renderer/Renderer.cpp +++ b/Renderer/Renderer.cpp @@ -188,6 +188,9 @@ Renderer::Renderer(Window& win) : win(win) { }; pipeline = std::make_unique(dev, shaders, swapchain->extent, *render_pass, bindings, *vertex_buffer); + + shaders[0].cleanup(); + shaders[1].cleanup(); } void Renderer::draw() { diff --git a/Renderer/Shader.cpp b/Renderer/Shader.cpp index 8520d2e..d9ca449 100644 --- a/Renderer/Shader.cpp +++ b/Renderer/Shader.cpp @@ -5,7 +5,7 @@ using namespace std::string_literals; -Shader::Shader(vk::Device dev, const std::string& fname, vk::ShaderStageFlagBits stage) : fname(fname), stage(stage) { +Shader::Shader(vk::Device dev, const std::string& fname, vk::ShaderStageFlagBits stage) : dev(dev), fname(fname), stage(stage) { std::vector src; try { src = file::slurpb(fname); @@ -25,6 +25,7 @@ Shader::Shader(vk::Device dev, const std::string& fname, vk::ShaderStageFlagBits Log::info("Successfully created shader "s + fname + "\n"); } -void Shader::cleanup(vk::Device dev) { +void Shader::cleanup() { dev.destroyShaderModule(module); } + diff --git a/Renderer/Shader.hpp b/Renderer/Shader.hpp index 6455bbc..02c83a3 100644 --- a/Renderer/Shader.hpp +++ b/Renderer/Shader.hpp @@ -4,11 +4,11 @@ #include struct Shader { + vk::Device dev; vk::ShaderModule module; vk::ShaderStageFlagBits stage; Shader(vk::Device dev, const std::string& fname, vk::ShaderStageFlagBits stage); - void cleanup(vk::Device dev); inline operator vk::ShaderModule() const { return module; @@ -28,4 +28,5 @@ struct Shader { std::string fname; + void cleanup(); }; diff --git a/assets/shaders/basic.frag b/assets/shaders/basic.frag index e0893a6..ed984e7 100644 --- a/assets/shaders/basic.frag +++ b/assets/shaders/basic.frag @@ -1,7 +1,7 @@ #version 460 core layout (location = 0) out vec4 FragColor; -layout (set = 1, binding = 0) uniform Matrices { +layout (set = 0, binding = 0) uniform Matrices { mat4 mpv; float time; }; diff --git a/assets/shaders/basic.frag.spv b/assets/shaders/basic.frag.spv index 4b705b4..973bbf0 100644 Binary files a/assets/shaders/basic.frag.spv and b/assets/shaders/basic.frag.spv differ