diff --git a/.gitmodules b/.gitmodules
index 94621b63f13a404b4430b3012f8b211eaf1c866a..c3b3e5b45234cb4b36b4367c5b112ffbc3ac8b4b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -48,8 +48,8 @@
 	branch = main
 [submodule "lib/VulkanMemoryAllocator-Hpp"]
 	path = lib/VulkanMemoryAllocator-Hpp
-	url = https://github.com/TheJackiMonster/VulkanMemoryAllocator-Hpp.git
-	branch = fix
+	url = https://github.com/YaaZ/VulkanMemoryAllocator-Hpp.git
+	branch = master
 [submodule "modules/algorithm/lib/FidelityFX-SPD"]
 	path = modules/algorithm/lib/FidelityFX-SPD
 	url = https://github.com/GPUOpen-Effects/FidelityFX-SPD.git
diff --git a/include/vkcv/Event.hpp b/include/vkcv/Event.hpp
index 328b0e51ff4b3c78c3926083b71dbdcb6b98afa0..cb508d0c3fa7c739865348c4f7b25a2ab13ceeeb 100644
--- a/include/vkcv/Event.hpp
+++ b/include/vkcv/Event.hpp
@@ -5,6 +5,7 @@
  * @brief Template event struct to synchronize callbacks.
  */
 
+#include <algorithm>
 #include <functional>
 
 #ifndef __MINGW32__
diff --git a/lib/SPIRV-Cross b/lib/SPIRV-Cross
index 5e963d62fa3f2f0ff891c9f9ca150097127c3aad..2d990d355a296ae1e368585810f884ebadcc4773 160000
--- a/lib/SPIRV-Cross
+++ b/lib/SPIRV-Cross
@@ -1 +1 @@
-Subproject commit 5e963d62fa3f2f0ff891c9f9ca150097127c3aad
+Subproject commit 2d990d355a296ae1e368585810f884ebadcc4773
diff --git a/lib/Vulkan-Headers b/lib/Vulkan-Headers
index 4f51aac14f65629dfe83702b806f740dbd7bd701..d192041a2fc9c9fd8ae67d8ae3f32c5511541f04 160000
--- a/lib/Vulkan-Headers
+++ b/lib/Vulkan-Headers
@@ -1 +1 @@
-Subproject commit 4f51aac14f65629dfe83702b806f740dbd7bd701
+Subproject commit d192041a2fc9c9fd8ae67d8ae3f32c5511541f04
diff --git a/lib/Vulkan-Hpp b/lib/Vulkan-Hpp
index 128261aa4517aaf3b30809a27311dd7e1cb5dbea..6fb0c202be3a13ae8e630fcc734340a6679e8502 160000
--- a/lib/Vulkan-Hpp
+++ b/lib/Vulkan-Hpp
@@ -1 +1 @@
-Subproject commit 128261aa4517aaf3b30809a27311dd7e1cb5dbea
+Subproject commit 6fb0c202be3a13ae8e630fcc734340a6679e8502
diff --git a/lib/VulkanMemoryAllocator b/lib/VulkanMemoryAllocator
index 2f382df218d7e8516dee3b3caccb819a62b571a2..7942b798289f752dc23b0a79516fd8545febd718 160000
--- a/lib/VulkanMemoryAllocator
+++ b/lib/VulkanMemoryAllocator
@@ -1 +1 @@
-Subproject commit 2f382df218d7e8516dee3b3caccb819a62b571a2
+Subproject commit 7942b798289f752dc23b0a79516fd8545febd718
diff --git a/lib/VulkanMemoryAllocator-Hpp b/lib/VulkanMemoryAllocator-Hpp
index 4aa5600e01c533edf42620b91a79e199dae6d0a1..8335d9d6ff3574c89e6cf363ec1d279179f9b957 160000
--- a/lib/VulkanMemoryAllocator-Hpp
+++ b/lib/VulkanMemoryAllocator-Hpp
@@ -1 +1 @@
-Subproject commit 4aa5600e01c533edf42620b91a79e199dae6d0a1
+Subproject commit 8335d9d6ff3574c89e6cf363ec1d279179f9b957
diff --git a/lib/glfw b/lib/glfw
index 3eaf1255b29fdf5c2895856c7be7d7185ef2b241..b35641f4a3c62aa86a0b3c983d163bc0fe36026d 160000
--- a/lib/glfw
+++ b/lib/glfw
@@ -1 +1 @@
-Subproject commit 3eaf1255b29fdf5c2895856c7be7d7185ef2b241
+Subproject commit b35641f4a3c62aa86a0b3c983d163bc0fe36026d
diff --git a/modules/asset_loader/lib/json b/modules/asset_loader/lib/json
index bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d..9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03 160000
--- a/modules/asset_loader/lib/json
+++ b/modules/asset_loader/lib/json
@@ -1 +1 @@
-Subproject commit bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d
+Subproject commit 9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03
diff --git a/modules/asset_loader/lib/stb b/modules/asset_loader/lib/stb
index 5736b15f7ea0ffb08dd38af21067c314d6a3aae9..013ac3beddff3dbffafd5177e7972067cd2b5083 160000
--- a/modules/asset_loader/lib/stb
+++ b/modules/asset_loader/lib/stb
@@ -1 +1 @@
-Subproject commit 5736b15f7ea0ffb08dd38af21067c314d6a3aae9
+Subproject commit 013ac3beddff3dbffafd5177e7972067cd2b5083
diff --git a/modules/asset_loader/lib/wuffs-mirror-release-c b/modules/asset_loader/lib/wuffs-mirror-release-c
index e3f919ccfe3ef542cfc983a82146070258fb57f8..50869df0ea703b4f41b238bfe26aec6ec9c86889 160000
--- a/modules/asset_loader/lib/wuffs-mirror-release-c
+++ b/modules/asset_loader/lib/wuffs-mirror-release-c
@@ -1 +1 @@
-Subproject commit e3f919ccfe3ef542cfc983a82146070258fb57f8
+Subproject commit 50869df0ea703b4f41b238bfe26aec6ec9c86889
diff --git a/modules/geometry/lib/glm b/modules/geometry/lib/glm
index 47585fde0c49fa77a2bf2fb1d2ead06999fd4b6e..33b4a621a697a305bc3a7610d290677b96beb181 160000
--- a/modules/geometry/lib/glm
+++ b/modules/geometry/lib/glm
@@ -1 +1 @@
-Subproject commit 47585fde0c49fa77a2bf2fb1d2ead06999fd4b6e
+Subproject commit 33b4a621a697a305bc3a7610d290677b96beb181
diff --git a/modules/gui/lib/imgui b/modules/gui/lib/imgui
index 6c022f9bf12a39c2dffc8ff0015273ce6737e1a0..b902fa4c4490ddffb713f8153d1a65e1940e58d1 160000
--- a/modules/gui/lib/imgui
+++ b/modules/gui/lib/imgui
@@ -1 +1 @@
-Subproject commit 6c022f9bf12a39c2dffc8ff0015273ce6737e1a0
+Subproject commit b902fa4c4490ddffb713f8153d1a65e1940e58d1
diff --git a/modules/gui/src/vkcv/gui/GUI.cpp b/modules/gui/src/vkcv/gui/GUI.cpp
index 15a1b049aa5496bdcb9ecb81c00f82b66ad86d71..eaf88651cef61e7ddc6bb98a309914572c697b8d 100644
--- a/modules/gui/src/vkcv/gui/GUI.cpp
+++ b/modules/gui/src/vkcv/gui/GUI.cpp
@@ -90,7 +90,7 @@ namespace vkcv::gui {
 		init_info.MinImageCount = swapchainImageCount;
 		init_info.ImageCount = swapchainImageCount;
 		init_info.CheckVkResultFn = checkVulkanResult;
-		
+
 		const vk::AttachmentDescription attachment (
 				vk::AttachmentDescriptionFlags(),
 				m_core.getSwapchainFormat(swapchainHandle),
@@ -141,19 +141,11 @@ namespace vkcv::gui {
 				&dependency
 		);
 		
-		m_render_pass = m_context.getDevice().createRenderPass(passCreateInfo);
-		
-		ImGui_ImplVulkan_Init(&init_info, static_cast<VkRenderPass>(m_render_pass));
-		
-		auto stream = m_core.createCommandStream(QueueType::Graphics);
-		
-		m_core.recordCommandsToStream(stream, [](const vk::CommandBuffer& commandBuffer) {
-			ImGui_ImplVulkan_CreateFontsTexture(static_cast<VkCommandBuffer>(commandBuffer));
-		}, []() {
-			ImGui_ImplVulkan_DestroyFontUploadObjects();
-		});
+		init_info.RenderPass = m_context.getDevice().createRenderPass(passCreateInfo);
 		
-		m_core.submitCommandStream(stream, false);
+		ImGui_ImplVulkan_Init(&init_info);
+		ImGui_ImplVulkan_CreateFontsTexture();
+
 		m_context.getDevice().waitIdle();
 	}
 	
@@ -161,6 +153,7 @@ namespace vkcv::gui {
 		m_context.getDevice().waitIdle();
 		Window& window = m_core.getWindow(m_windowHandle);
 
+		ImGui_ImplVulkan_DestroyFontsTexture();
 		ImGui_ImplVulkan_Shutdown();
 		
 		m_context.getDevice().destroyRenderPass(m_render_pass);
@@ -188,6 +181,7 @@ namespace vkcv::gui {
 		
 		ImGui_ImplVulkan_NewFrame();
 		ImGui_ImplGlfw_NewFrame();
+		
 		ImGui::NewFrame();
 	}
 	
diff --git a/modules/shader_compiler/lib/SPIRV-Headers b/modules/shader_compiler/lib/SPIRV-Headers
index bdd1b2ab1f03e616047bbcf8971157dccd50c792..eb49bb7b1136298b77945c52b4bbbc433f7885de 160000
--- a/modules/shader_compiler/lib/SPIRV-Headers
+++ b/modules/shader_compiler/lib/SPIRV-Headers
@@ -1 +1 @@
-Subproject commit bdd1b2ab1f03e616047bbcf8971157dccd50c792
+Subproject commit eb49bb7b1136298b77945c52b4bbbc433f7885de
diff --git a/modules/shader_compiler/lib/glslang b/modules/shader_compiler/lib/glslang
index 4c57db1595462c51d5080893f65c42fc1f318146..68821c4da8189262228bbd51e56ed75971b2d2c9 160000
--- a/modules/shader_compiler/lib/glslang
+++ b/modules/shader_compiler/lib/glslang
@@ -1 +1 @@
-Subproject commit 4c57db1595462c51d5080893f65c42fc1f318146
+Subproject commit 68821c4da8189262228bbd51e56ed75971b2d2c9
diff --git a/modules/shader_compiler/lib/json-c b/modules/shader_compiler/lib/json-c
index dabed80523fa5101e30f0ee57ba06b02beae73eb..6e481aa06166c2b31e391005c6e50f0adef5e4d4 160000
--- a/modules/shader_compiler/lib/json-c
+++ b/modules/shader_compiler/lib/json-c
@@ -1 +1 @@
-Subproject commit dabed80523fa5101e30f0ee57ba06b02beae73eb
+Subproject commit 6e481aa06166c2b31e391005c6e50f0adef5e4d4
diff --git a/modules/shader_compiler/src/vkcv/shader/GlslangCompiler.cpp b/modules/shader_compiler/src/vkcv/shader/GlslangCompiler.cpp
index 1f20daaeaf98aaec251f163961b5bf377d760757..2a2847ada699364c025f957b204b58b3190a8ed2 100644
--- a/modules/shader_compiler/src/vkcv/shader/GlslangCompiler.cpp
+++ b/modules/shader_compiler/src/vkcv/shader/GlslangCompiler.cpp
@@ -5,6 +5,7 @@
 #include <vkcv/Logger.hpp>
 
 #include <glslang/SPIRV/GlslangToSpv.h>
+#include <glslang/glslang/Public/ShaderLang.h>
 
 namespace vkcv::shader {
 	
diff --git a/modules/tone_mapping/lib/glsl-tone-map b/modules/tone_mapping/lib/glsl-tone-map
index e3d822adee738de936da5d9541dff266f899ed46..0d57803ab9cc8a6a507d8060b9b5b3b6f3a5d75f 160000
--- a/modules/tone_mapping/lib/glsl-tone-map
+++ b/modules/tone_mapping/lib/glsl-tone-map
@@ -1 +1 @@
-Subproject commit e3d822adee738de936da5d9541dff266f899ed46
+Subproject commit 0d57803ab9cc8a6a507d8060b9b5b3b6f3a5d75f