build: Update to header 1.4.313
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a6b83f..69cb509 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@
 # ~~~
 cmake_minimum_required(VERSION 3.22.1)
 
-project(VULKAN_LOADER VERSION 1.4.312 LANGUAGES C)
+project(VULKAN_LOADER VERSION 1.4.313 LANGUAGES C)
 
 option(CODE_COVERAGE "Enable Code Coverage" OFF)
 if (CODE_COVERAGE)
diff --git a/loader/generated/vk_layer_dispatch_table.h b/loader/generated/vk_layer_dispatch_table.h
index 65dc7cf..58b0477 100644
--- a/loader/generated/vk_layer_dispatch_table.h
+++ b/loader/generated/vk_layer_dispatch_table.h
@@ -1196,6 +1196,9 @@
     PFN_vkGetScreenBufferPropertiesQNX GetScreenBufferPropertiesQNX;
 #endif // VK_USE_PLATFORM_SCREEN_QNX
 
+    // ---- VK_QCOM_tile_memory_heap extension commands
+    PFN_vkCmdBindTileMemoryQCOM CmdBindTileMemoryQCOM;
+
     // ---- VK_NV_external_compute_queue extension commands
     PFN_vkCreateExternalComputeQueueNV CreateExternalComputeQueueNV;
     PFN_vkDestroyExternalComputeQueueNV DestroyExternalComputeQueueNV;
diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c
index dcd4a4d..83833a7 100644
--- a/loader/generated/vk_loader_extensions.c
+++ b/loader/generated/vk_loader_extensions.c
@@ -1234,6 +1234,9 @@
     table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
 #endif // VK_USE_PLATFORM_SCREEN_QNX
 
+    // ---- VK_QCOM_tile_memory_heap extension commands
+    table->CmdBindTileMemoryQCOM = (PFN_vkCmdBindTileMemoryQCOM)gdpa(dev, "vkCmdBindTileMemoryQCOM");
+
     // ---- VK_NV_external_compute_queue extension commands
     table->CreateExternalComputeQueueNV = (PFN_vkCreateExternalComputeQueueNV)gdpa(dev, "vkCreateExternalComputeQueueNV");
     table->DestroyExternalComputeQueueNV = (PFN_vkDestroyExternalComputeQueueNV)gdpa(dev, "vkDestroyExternalComputeQueueNV");
@@ -3152,6 +3155,9 @@
     if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
 #endif // VK_USE_PLATFORM_SCREEN_QNX
 
+    // ---- VK_QCOM_tile_memory_heap extension commands
+    if (!strcmp(name, "CmdBindTileMemoryQCOM")) return (void *)table->CmdBindTileMemoryQCOM;
+
     // ---- VK_NV_external_compute_queue extension commands
     if (!strcmp(name, "CreateExternalComputeQueueNV")) return (void *)table->CreateExternalComputeQueueNV;
     if (!strcmp(name, "DestroyExternalComputeQueueNV")) return (void *)table->DestroyExternalComputeQueueNV;
@@ -9902,6 +9908,22 @@
 
 #endif // VK_USE_PLATFORM_SCREEN_QNX
 
+// ---- VK_QCOM_tile_memory_heap extension trampoline/terminators
+
+VKAPI_ATTR void VKAPI_CALL CmdBindTileMemoryQCOM(
+    VkCommandBuffer                             commandBuffer,
+    const VkTileMemoryBindInfoQCOM*             pTileMemoryBindInfo) {
+    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
+    if (NULL == disp) {
+        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
+                   "vkCmdBindTileMemoryQCOM: Invalid commandBuffer "
+                   "[VUID-vkCmdBindTileMemoryQCOM-commandBuffer-parameter]");
+        abort(); /* Intentionally fail so user can correct issue. */
+    }
+    disp->CmdBindTileMemoryQCOM(commandBuffer, pTileMemoryBindInfo);
+}
+
+
 // ---- VK_NV_external_compute_queue extension trampoline/terminators
 
 VKAPI_ATTR VkResult VKAPI_CALL CreateExternalComputeQueueNV(
@@ -12615,6 +12637,12 @@
     }
 #endif // VK_USE_PLATFORM_SCREEN_QNX
 
+    // ---- VK_QCOM_tile_memory_heap extension commands
+    if (!strcmp("vkCmdBindTileMemoryQCOM", name)) {
+        *addr = (void *)CmdBindTileMemoryQCOM;
+        return true;
+    }
+
     // ---- VK_NV_external_compute_queue extension commands
     if (!strcmp("vkCreateExternalComputeQueueNV", name)) {
         *addr = (void *)CreateExternalComputeQueueNV;
diff --git a/loader/loader.rc b/loader/loader.rc
index 335ea3c..ea4605c 100644
--- a/loader/loader.rc
+++ b/loader/loader.rc
@@ -22,8 +22,8 @@
 #include "winres.h"
 
 // All set through CMake
-#define VER_FILE_VERSION 1, 4, 312, 0
-#define VER_FILE_DESCRIPTION_STR "1.4.312.Dev Build"
+#define VER_FILE_VERSION 1, 4, 313, 0
+#define VER_FILE_DESCRIPTION_STR "1.4.313.Dev Build"
 #define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build"
 #define VER_COPYRIGHT_STR "Copyright (C) 2015-2025"
 
diff --git a/scripts/known_good.json b/scripts/known_good.json
index 6a03f07..184fbac 100644
--- a/scripts/known_good.json
+++ b/scripts/known_good.json
@@ -7,7 +7,7 @@
             "sub_dir": "Vulkan-Headers",
             "build_dir": "Vulkan-Headers/build",
             "install_dir": "Vulkan-Headers/build/install",
-            "commit": "v1.4.312"
+            "commit": "v1.4.313"
         },
         {
             "name": "googletest",
diff --git a/tests/framework/layer/vk_dispatch_table_helper.h b/tests/framework/layer/vk_dispatch_table_helper.h
index a692c27..daac5d5 100644
--- a/tests/framework/layer/vk_dispatch_table_helper.h
+++ b/tests/framework/layer/vk_dispatch_table_helper.h
@@ -805,6 +805,7 @@
 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
     table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gpa(device, "vkGetScreenBufferPropertiesQNX");
 #endif  // VK_USE_PLATFORM_SCREEN_QNX
+    table->CmdBindTileMemoryQCOM = (PFN_vkCmdBindTileMemoryQCOM)gpa(device, "vkCmdBindTileMemoryQCOM");
     table->CreateExternalComputeQueueNV = (PFN_vkCreateExternalComputeQueueNV)gpa(device, "vkCreateExternalComputeQueueNV");
     table->DestroyExternalComputeQueueNV = (PFN_vkDestroyExternalComputeQueueNV)gpa(device, "vkDestroyExternalComputeQueueNV");
     table->GetExternalComputeQueueDataNV = (PFN_vkGetExternalComputeQueueDataNV)gpa(device, "vkGetExternalComputeQueueDataNV");