diff --git a/external/glslang b/external/glslang
index 00ac5651f5..8b822ee8ac 160000
--- a/external/glslang
+++ b/external/glslang
@@ -1 +1 @@
-Subproject commit 00ac5651f528d84cc3cf7320b34407bce7d38d93
+Subproject commit 8b822ee8ac2c3e52926820f46ad858532a895951
diff --git a/external/spirv-headers b/external/spirv-headers
index e7294a8ebe..54a521dd13 160000
--- a/external/spirv-headers
+++ b/external/spirv-headers
@@ -1 +1 @@
-Subproject commit e7294a8ebed84f8c5bd3686c68dbe12a4e65b644
+Subproject commit 54a521dd130ae1b2f38fef79b09515702d135bdd
diff --git a/external/spirv-tools b/external/spirv-tools
index ce37fd67f8..132103f44d 160000
--- a/external/spirv-tools
+++ b/external/spirv-tools
@@ -1 +1 @@
-Subproject commit ce37fd67f83cd1e8793b988d2e4126bbf72b19dd
+Subproject commit 132103f44d719f8df456c4c7b2658278dc422dc6
diff --git a/external/spirv-tools-generated/build-version.inc b/external/spirv-tools-generated/build-version.inc
index c4a9e96b8f..c1b848098e 100644
--- a/external/spirv-tools-generated/build-version.inc
+++ b/external/spirv-tools-generated/build-version.inc
@@ -1 +1 @@
-"v2024.4", "SPIRV-Tools v2024.4 v2024.4.rc2-48-gce37fd67"
+"v2025.1", "SPIRV-Tools v2025.1 v2024.4.rc2-68-g132103f4"
diff --git a/external/spirv-tools-generated/generators.inc b/external/spirv-tools-generated/generators.inc
index 35973e1336..c81f10d05a 100644
--- a/external/spirv-tools-generated/generators.inc
+++ b/external/spirv-tools-generated/generators.inc
@@ -44,4 +44,5 @@
 {43, "LLVM", "LLVM SPIR-V Backend", "LLVM LLVM SPIR-V Backend"},
 {44, "Robert Konrad", "Kongruent", "Robert Konrad Kongruent"},
 {45, "Kitsunebi Games", "Nuvk SPIR-V Emitter and DLSL compiler", "Kitsunebi Games Nuvk SPIR-V Emitter and DLSL compiler"},
-{46, "Nintendo", "", "Nintendo"},
\ No newline at end of file
+{46, "Nintendo", "", "Nintendo"},
+{47, "ARM", "", "ARM"},
\ No newline at end of file
diff --git a/external/spirv-tools-generated/operand.kinds-unified1.inc b/external/spirv-tools-generated/operand.kinds-unified1.inc
index adab0f0bf5..4bdd2efce7 100644
--- a/external/spirv-tools-generated/operand.kinds-unified1.inc
+++ b/external/spirv-tools-generated/operand.kinds-unified1.inc
@@ -1263,7 +1263,7 @@ static const spv_operand_desc_t pygen_variable_CapabilityEntries[] = {
   {"MultiView", 4439, 0, nullptr, 1, pygen_variable_caps_Shader, 1, pygen_variable_exts_SPV_KHR_multiview, {}, SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu},
   {"VariablePointersStorageBuffer", 4441, 0, nullptr, 1, pygen_variable_caps_Shader, 1, pygen_variable_exts_SPV_KHR_variable_pointers, {}, SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu},
   {"VariablePointers", 4442, 0, nullptr, 1, pygen_variable_caps_VariablePointersStorageBuffer, 1, pygen_variable_exts_SPV_KHR_variable_pointers, {}, SPV_SPIRV_VERSION_WORD(1,3), 0xffffffffu},
-  {"AtomicStorageOps", 4445, 0, nullptr, 0, nullptr, 1, pygen_variable_exts_SPV_KHR_shader_atomic_counter_ops, {}, 0xffffffffu, 0xffffffffu},
+  {"AtomicStorageOps", 4445, 0, nullptr, 1, pygen_variable_caps_AtomicStorage, 1, pygen_variable_exts_SPV_KHR_shader_atomic_counter_ops, {}, 0xffffffffu, 0xffffffffu},
   {"SampleMaskPostDepthCoverage", 4447, 0, nullptr, 0, nullptr, 1, pygen_variable_exts_SPV_KHR_post_depth_coverage, {}, 0xffffffffu, 0xffffffffu},
   {"StorageBuffer8BitAccess", 4448, 0, nullptr, 0, nullptr, 1, pygen_variable_exts_SPV_KHR_8bit_storage, {}, SPV_SPIRV_VERSION_WORD(1,5), 0xffffffffu},
   {"UniformAndStorageBuffer8BitAccess", 4449, 0, nullptr, 1, pygen_variable_caps_StorageBuffer8BitAccess, 1, pygen_variable_exts_SPV_KHR_8bit_storage, {}, SPV_SPIRV_VERSION_WORD(1,5), 0xffffffffu},