diff --git a/.gitmodules b/.gitmodules
index b92fdbd414b3bbd134bf4ee7e9f7728522c028e3..5f3821ff682a4526afabc87530291327f14af8bf 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -84,5 +84,14 @@
 	url = https://github.com/json-c/json-c.git
 [submodule "modules/shader_compiler/lib/slang"]
 	path = modules/shader_compiler/lib/slang
-	url = https://github.com/shader-slang/slang.git
+	url = https://github.com/TheJackiMonster/slang.git
 	branch = master
+[submodule "modules/shader_compiler/lib/unordered_dense"]
+	path = modules/shader_compiler/lib/unordered_dense
+	url = https://github.com/martinus/unordered_dense.git
+[submodule "modules/shader_compiler/lib/lz4"]
+	path = modules/shader_compiler/lib/lz4
+	url = https://github.com/lz4/lz4.git
+[submodule "modules/shader_compiler/lib/miniz"]
+	path = modules/shader_compiler/lib/miniz
+	url = https://github.com/richgel999/miniz.git
diff --git a/lib/Vulkan-Headers b/lib/Vulkan-Headers
index b379292b2ab6df5771ba9870d53cf8b2c9295daf..fabe9e2672334fdb9a622d42a2e8f94578952082 160000
--- a/lib/Vulkan-Headers
+++ b/lib/Vulkan-Headers
@@ -1 +1 @@
-Subproject commit b379292b2ab6df5771ba9870d53cf8b2c9295daf
+Subproject commit fabe9e2672334fdb9a622d42a2e8f94578952082
diff --git a/lib/Vulkan-Hpp b/lib/Vulkan-Hpp
index 77f6a638a725816291c1deaf5e82c56225951a99..f7f0d8ccaae669b7cf8937211b5f0878cf919465 160000
--- a/lib/Vulkan-Hpp
+++ b/lib/Vulkan-Hpp
@@ -1 +1 @@
-Subproject commit 77f6a638a725816291c1deaf5e82c56225951a99
+Subproject commit f7f0d8ccaae669b7cf8937211b5f0878cf919465
diff --git a/modules/gui/lib/imgui b/modules/gui/lib/imgui
index d7e605d4309d7b054f4277b8968232749de2c6c4..fe09ebbe0a1c8bb5f39f326658faa6bde75bb568 160000
--- a/modules/gui/lib/imgui
+++ b/modules/gui/lib/imgui
@@ -1 +1 @@
-Subproject commit d7e605d4309d7b054f4277b8968232749de2c6c4
+Subproject commit fe09ebbe0a1c8bb5f39f326658faa6bde75bb568
diff --git a/modules/shader_compiler/CMakeLists.txt b/modules/shader_compiler/CMakeLists.txt
index 4dc2c556ab096af3b4141a45b8be2bb1c1df2d50..ed1b7abdba4027357c5724bf5c055b97d564b38f 100644
--- a/modules/shader_compiler/CMakeLists.txt
+++ b/modules/shader_compiler/CMakeLists.txt
@@ -54,6 +54,9 @@ include(config/Murmur3.cmake)
 include(config/Shady.cmake)
 
 # Check and load SLANG
+include(config/MINIZ.cmake)
+include(config/LZ4.cmake)
+include(config/UNORDERED_DENSE.cmake)
 include(config/SLANG.cmake)
 
 # link the required libraries to the module
diff --git a/modules/shader_compiler/config/LZ4.cmake b/modules/shader_compiler/config/LZ4.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..87b2c906e9206efdc65383be328cbeb46fb7be16
--- /dev/null
+++ b/modules/shader_compiler/config/LZ4.cmake
@@ -0,0 +1,16 @@
+
+use_git_submodule("${vkcv_shader_compiler_lib_path}/lz4" lz4_status)
+
+if (${lz4_status})
+  set(LZ4_BUNDLED_MODE ON)
+	add_subdirectory(${vkcv_shader_compiler_lib}/lz4/build/cmake SYSTEM)
+
+  if(MSVC)
+		target_compile_options(
+			lz4_static
+			PRIVATE /wd5045 /wd4820 /wd4711 /wd6385 /wd6262
+		)
+	endif()
+
+	set(lz4_include ${vkcv_shader_compiler_lib}/lz4/lib)
+endif ()
diff --git a/modules/shader_compiler/config/MINIZ.cmake b/modules/shader_compiler/config/MINIZ.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..0b32ea3667862cb4fb07bb4daa7ebb001aed4bd4
--- /dev/null
+++ b/modules/shader_compiler/config/MINIZ.cmake
@@ -0,0 +1,14 @@
+
+use_git_submodule("${vkcv_shader_compiler_lib_path}/miniz" miniz_status)
+
+if (${miniz_status})
+	add_subdirectory(${vkcv_shader_compiler_lib}/miniz SYSTEM)
+
+  set_property(TARGET miniz PROPERTY POSITION_INDEPENDENT_CODE ON)
+  # Work around https://github.com/richgel999/miniz/pull/292
+	get_target_property(miniz_c_launcher miniz C_COMPILER_LAUNCHER)
+	if(MSVC AND miniz_c_launcher MATCHES "ccache")
+    set_property(TARGET miniz PROPERTY C_COMPILER_LAUNCHER)
+    set_property(TARGET miniz PROPERTY MSVC_DEBUG_INFORMATION_FORMAT "")
+	endif()
+endif ()
diff --git a/modules/shader_compiler/config/SLANG.cmake b/modules/shader_compiler/config/SLANG.cmake
index e9f5c26aeb3a9cc73417ebc6b883e2026d63b05f..a9bd071fa00293a5e28e011ee51bad4569188053 100644
--- a/modules/shader_compiler/config/SLANG.cmake
+++ b/modules/shader_compiler/config/SLANG.cmake
@@ -2,8 +2,63 @@
 use_git_submodule("${vkcv_shader_compiler_lib_path}/slang" slang_status)
 
 if (${slang_status})
-	add_subdirectory(config/slang)
+	set(EXTERNAL_MINIZ ON CACHE INTERNAL "")
+	set(EXTERNAL_LZ4 ON CACHE INTERNAL "")
+	set(EXTERNAL_VULKAN_HEADERS ON CACHE INTERNAL "")
+	set(EXTERNAL_SPIRV_HEADERS ON CACHE INTERNAL "")
+	set(EXTERNAL_UNORDERED_DENSE ON CACHE INTERNAL "")
+
+	set(SLANG_ENABLE_CUDA OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_OPTIX OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_NVAPI OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_XLIB OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_AFTERMATH OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_DX_ON_VK OFF CACHE INTERNAL "")
+	set(SLANG_EMBED_STDLIB_SOURCE OFF CACHE INTERNAL "")
+	set(SLANG_EMBED_STDLIB ON CACHE INTERNAL "")
+	set(SLANG_ENABLE_FULL_IR_VALIDATION OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_IR_BREAK_ALLOC OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_ASAN OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_PREBUILT_BINARIES OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_GFX OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_SLANGD OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_SLANGC OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_SLANGRT OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_SLANG_GLSLANG OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_TESTS OFF CACHE INTERNAL "")
+	set(SLANG_ENABLE_EXAMPLES OFF CACHE INTERNAL "")
+	set(SLANG_LIB_TYPE ${vkcv_build_attribute} CACHE INTERNAL "")
+	set(SLANG_SPIRV_HEADERS_INCLUDE_DIR ${spirv_headers_include} CACHE INTERNAL "")
+
+	add_subdirectory(${vkcv_shader_compiler_lib}/slang)
+
+	set(slang_system_includes "")
+	list(APPEND slang_system_includes ${spirv_headers_include})
+	list(APPEND slang_system_includes ${unordered_dense_include})
+	list(APPEND slang_system_includes ${lz4_include})
+
+	target_include_directories(core SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(compiler-core SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-cpp-extractor SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-embed SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-generate SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-lookup-generator SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-capability-generator SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-spirv-embed-generator SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-bootstrap SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(prelude SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-capability-defs SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-capability-lookup SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-lookup-tables SYSTEM BEFORE PRIVATE ${slang_system_includes})
+	target_include_directories(slang-no-embedded-stdlib SYSTEM BEFORE PRIVATE ${slang_system_includes})
+
+	set(SLANG_STDLIB_META_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${vkcv_shader_compiler_lib}/slang/source/slang/stdlib-meta)
+
+	target_include_directories(slang BEFORE PUBLIC ${SLANG_STDLIB_META_OUTPUT_DIR})
+
+	message(WARNING ${SLANG_STDLIB_META_OUTPUT_DIR})
 	
-	list(APPEND vkcv_shader_compiler_libraries slang)
-	list(APPEND vkcv_shader_compiler_includes ${vkcv_shader_compiler_lib})
+	list(APPEND vkcv_shader_compiler_libraries slang lz4_static miniz unordered_dense::unordered_dense)
+	list(APPEND vkcv_shader_compiler_includes ${vkcv_shader_compiler_lib}/slang/include ${slang_system_includes})
 endif ()
diff --git a/modules/shader_compiler/config/SPIRV-Headers.cmake b/modules/shader_compiler/config/SPIRV-Headers.cmake
index b5f47dbe91d3da73f585a55765514bcb3a7412c9..5ef39caa39344c459d90883674beae176c8d1c68 100644
--- a/modules/shader_compiler/config/SPIRV-Headers.cmake
+++ b/modules/shader_compiler/config/SPIRV-Headers.cmake
@@ -2,8 +2,10 @@
 use_git_submodule("${vkcv_shader_compiler_lib_path}/SPIRV-Headers" spriv_headers_status)
 
 if (${spriv_headers_status})
-	add_subdirectory(${vkcv_shader_compiler_lib}/SPIRV-Headers)
+	add_subdirectory(${vkcv_shader_compiler_lib}/SPIRV-Headers SYSTEM)
+
+	set(spirv_headers_include ${vkcv_shader_compiler_lib_path}/SPIRV-Headers/include)
 	
 	list(APPEND vkcv_shader_compiler_libraries SPIRV-Headers)
-	list(APPEND vkcv_shader_compiler_includes ${vkcv_shader_compiler_lib}/SPIRV-Headers/include)
+	list(APPEND vkcv_shader_compiler_includes ${spirv_headers_include})
 endif ()
diff --git a/modules/shader_compiler/config/Shady.cmake b/modules/shader_compiler/config/Shady.cmake
index 56da131a23e3680e487c678260de6af2c9c3aba6..3156521dbc200ff202f48f3994caa783801f3af5 100644
--- a/modules/shader_compiler/config/Shady.cmake
+++ b/modules/shader_compiler/config/Shady.cmake
@@ -3,8 +3,8 @@ use_git_submodule("${vkcv_shader_compiler_lib_path}/shady" shady_status)
 
 if (${shady_status})
 	set(EXTERNAL_JSON_C ON CACHE INTERNAL "")
-    set(EXTERNAL_SPIRV_HEADERS ON CACHE INTERNAL "")
-    set(EXTERNAL_MURMUR3 ON CACHE INTERNAL "")
+	set(EXTERNAL_SPIRV_HEADERS ON CACHE INTERNAL "")
+	set(EXTERNAL_MURMUR3 ON CACHE INTERNAL "")
 
 	set(EXTERNAL_JSON_C_INCLUDE ${JSON_C_INCLUDE_DIR} CACHE INTERNAL "")
 
diff --git a/modules/shader_compiler/config/UNORDERED_DENSE.cmake b/modules/shader_compiler/config/UNORDERED_DENSE.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..8c2e60aa129dbe2248b1691b7b07b09d66da0eb8
--- /dev/null
+++ b/modules/shader_compiler/config/UNORDERED_DENSE.cmake
@@ -0,0 +1,8 @@
+
+use_git_submodule("${vkcv_shader_compiler_lib_path}/unordered_dense" unordered_dense_status)
+
+if (${unordered_dense_status})
+  add_subdirectory(${vkcv_shader_compiler_lib}/unordered_dense SYSTEM)
+
+  set(unordered_dense_include ${vkcv_shader_compiler_lib_path}/unordered_dense/include)
+endif ()
diff --git a/modules/shader_compiler/config/slang/CMakeLists.txt b/modules/shader_compiler/config/slang/CMakeLists.txt
deleted file mode 100644
index 9c1a50bcf5816e502c1077123ebbb32a45bf90c0..0000000000000000000000000000000000000000
--- a/modules/shader_compiler/config/slang/CMakeLists.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-cmake_minimum_required(VERSION 3.9)
-
-project(slang)
-
-# settings c++ standard for slang
-set(CMAKE_CXX_STANDARD 20)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-find_package(Vulkan REQUIRED)
-
-set(slang_base external/source/base)
-
-set(slang_dir ../../${vkcv_shader_compiler_lib}/slang)
-
-set(slang_source ${slang_dir}/source)
-set(slang_source_compiler_core ${slang_source}/compiler-core)
-set(slang_source_core ${slang_source}/core)
-set(slang_source_slang ${slang_source}/slang)
-
-file(GLOB slang_sources 
-        ${slang_source_compiler_core}/*.cpp
-        ${slang_source_core}/*.cpp
-        ${slang_source_slang}/*.cpp
-)
-
-if (${VMA_STATIC_VULKAN_FUNCTIONS})
-	add_library(slang STATIC ${slang_sources})
-else()
-	add_library(slang SHARED ${slang_sources})
-endif()
-
-set_target_properties(
-        slang PROPERTIES
-		
-		CXX_EXTENSIONS OFF
-		CXX_STANDARD ${CMAKE_CXX_STANDARD}
-		CXX_STANDARD_REQUIRED ON
-)
-
-target_include_directories(slang PUBLIC ${slang_base} ${slang_source})
-
-# Only link to Vulkan if static linking is used
-if (NOT ${VMA_DYNAMIC_VULKAN_FUNCTIONS})
-	target_link_libraries(slang PUBLIC Vulkan::Vulkan)
-endif()
diff --git a/modules/shader_compiler/lib/glslang b/modules/shader_compiler/lib/glslang
index 52f68dc6b2a9d017b43161f31f13a6f44636ee7c..592aed9c206c283cac98f7a86e5cc237dadb2638 160000
--- a/modules/shader_compiler/lib/glslang
+++ b/modules/shader_compiler/lib/glslang
@@ -1 +1 @@
-Subproject commit 52f68dc6b2a9d017b43161f31f13a6f44636ee7c
+Subproject commit 592aed9c206c283cac98f7a86e5cc237dadb2638
diff --git a/modules/shader_compiler/lib/lz4 b/modules/shader_compiler/lib/lz4
new file mode 160000
index 0000000000000000000000000000000000000000..68959d27c3ec37b339b3b8ecfea155faf0ef94f2
--- /dev/null
+++ b/modules/shader_compiler/lib/lz4
@@ -0,0 +1 @@
+Subproject commit 68959d27c3ec37b339b3b8ecfea155faf0ef94f2
diff --git a/modules/shader_compiler/lib/miniz b/modules/shader_compiler/lib/miniz
new file mode 160000
index 0000000000000000000000000000000000000000..bf7a1f0a5aa1deae9cab2d73b5ef9edec41b877c
--- /dev/null
+++ b/modules/shader_compiler/lib/miniz
@@ -0,0 +1 @@
+Subproject commit bf7a1f0a5aa1deae9cab2d73b5ef9edec41b877c
diff --git a/modules/shader_compiler/lib/slang b/modules/shader_compiler/lib/slang
index 359fdc9d556b4c493c588c5b8f93df85933634f8..e1734897a3681f7685b4768fd8d40f446134d483 160000
--- a/modules/shader_compiler/lib/slang
+++ b/modules/shader_compiler/lib/slang
@@ -1 +1 @@
-Subproject commit 359fdc9d556b4c493c588c5b8f93df85933634f8
+Subproject commit e1734897a3681f7685b4768fd8d40f446134d483
diff --git a/modules/shader_compiler/lib/unordered_dense b/modules/shader_compiler/lib/unordered_dense
new file mode 160000
index 0000000000000000000000000000000000000000..d911053e390816ecc5dedd5a9d6b4bb5ed92b4c9
--- /dev/null
+++ b/modules/shader_compiler/lib/unordered_dense
@@ -0,0 +1 @@
+Subproject commit d911053e390816ecc5dedd5a9d6b4bb5ed92b4c9