Revert "Add vkCmd* device extension functions"

Revert "Add vkCmd* device extension functions"

Revert submission 2064289-vkcmd

Reason for revert: Breaks Chromium-Fuchsia integration: crbug.com/1318543

Reverted Changes:
I838311ac2:Add vkCmd* device extension functions
Idb329b86e:Add functions to fetch device from commandbuffer
I43030bb15:Add vkCmd* device extension functions

Change-Id: I7e3544a8f8e652ad303c3e333696cbef3a835522
diff --git a/system/vulkan_enc/func_table.cpp b/system/vulkan_enc/func_table.cpp
index 4e17d42..fc65f0a 100644
--- a/system/vulkan_enc/func_table.cpp
+++ b/system/vulkan_enc/func_table.cpp
@@ -1651,20 +1651,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDeviceMask(
-    VkCommandBuffer commandBuffer,
-    uint32_t deviceMask)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);
-    if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDeviceMask", "VK_VERSION_1_1");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
-}
 static void entry_vkCmdDispatchBase(
     VkCommandBuffer commandBuffer,
     uint32_t baseGroupX,
@@ -1678,25 +1664,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDispatchBase(
-    VkCommandBuffer commandBuffer,
-    uint32_t baseGroupX,
-    uint32_t baseGroupY,
-    uint32_t baseGroupZ,
-    uint32_t groupCountX,
-    uint32_t groupCountY,
-    uint32_t groupCountZ)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);
-    if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDispatchBase", "VK_VERSION_1_1");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDispatchBase");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
-}
 static VkResult entry_vkEnumeratePhysicalDeviceGroups(
     VkInstance instance,
     uint32_t* pPhysicalDeviceGroupCount,
@@ -2089,25 +2056,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndirectCount(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCount", "VK_VERSION_1_2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 static void entry_vkCmdDrawIndexedIndirectCount(
     VkCommandBuffer commandBuffer,
     VkBuffer buffer,
@@ -2121,25 +2069,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndexedIndirectCount(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCount", "VK_VERSION_1_2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 static VkResult entry_vkCreateRenderPass2(
     VkDevice device,
     const VkRenderPassCreateInfo2* pCreateInfo,
@@ -2178,21 +2107,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginRenderPass2(
-    VkCommandBuffer commandBuffer,
-    const VkRenderPassBeginInfo* pRenderPassBegin,
-    const VkSubpassBeginInfo* pSubpassBeginInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderPass2", "VK_VERSION_1_2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
-}
 static void entry_vkCmdNextSubpass2(
     VkCommandBuffer commandBuffer,
     const VkSubpassBeginInfo* pSubpassBeginInfo,
@@ -2202,21 +2116,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdNextSubpass2(
-    VkCommandBuffer commandBuffer,
-    const VkSubpassBeginInfo* pSubpassBeginInfo,
-    const VkSubpassEndInfo* pSubpassEndInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdNextSubpass2", "VK_VERSION_1_2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdNextSubpass2");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
-}
 static void entry_vkCmdEndRenderPass2(
     VkCommandBuffer commandBuffer,
     const VkSubpassEndInfo* pSubpassEndInfo)
@@ -2225,20 +2124,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndRenderPass2(
-    VkCommandBuffer commandBuffer,
-    const VkSubpassEndInfo* pSubpassEndInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderPass2", "VK_VERSION_1_2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
-}
 static void entry_vkResetQueryPool(
     VkDevice device,
     VkQueryPool queryPool,
@@ -3150,20 +3035,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginVideoCodingKHR(
-    VkCommandBuffer commandBuffer,
-    const VkVideoBeginCodingInfoKHR* pBeginInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginVideoCodingKHR", "VK_KHR_video_queue");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginVideoCodingKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */);
-}
 static void entry_vkCmdEndVideoCodingKHR(
     VkCommandBuffer commandBuffer,
     const VkVideoEndCodingInfoKHR* pEndCodingInfo)
@@ -3172,20 +3043,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndVideoCodingKHR(
-    VkCommandBuffer commandBuffer,
-    const VkVideoEndCodingInfoKHR* pEndCodingInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndVideoCodingKHR", "VK_KHR_video_queue");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndVideoCodingKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */);
-}
 static void entry_vkCmdControlVideoCodingKHR(
     VkCommandBuffer commandBuffer,
     const VkVideoCodingControlInfoKHR* pCodingControlInfo)
@@ -3194,20 +3051,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdControlVideoCodingKHR(
-    VkCommandBuffer commandBuffer,
-    const VkVideoCodingControlInfoKHR* pCodingControlInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdControlVideoCodingKHR", "VK_KHR_video_queue");
-    }
-    AEMU_SCOPED_TRACE("vkCmdControlVideoCodingKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_video_decode_queue
 static void entry_vkCmdDecodeVideoKHR(
@@ -3218,20 +3061,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDecodeVideoKHR(
-    VkCommandBuffer commandBuffer,
-    const VkVideoDecodeInfoKHR* pFrameInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_video_decode_queue"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDecodeVideoKHR", "VK_KHR_video_decode_queue");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDecodeVideoKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_dynamic_rendering
 static void entry_vkCmdBeginRenderingKHR(
@@ -3242,20 +3071,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginRenderingKHR(
-    VkCommandBuffer commandBuffer,
-    const VkRenderingInfoKHR* pRenderingInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderingKHR", "VK_KHR_dynamic_rendering");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginRenderingKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */);
-}
 static void entry_vkCmdEndRenderingKHR(
     VkCommandBuffer commandBuffer)
 {
@@ -3263,19 +3078,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndRenderingKHR(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderingKHR", "VK_KHR_dynamic_rendering");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndRenderingKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_multiview
 #endif
@@ -3381,20 +3183,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDeviceMaskKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t deviceMask)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDeviceMaskKHR", "VK_KHR_device_group");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */);
-}
 static void entry_vkCmdDispatchBaseKHR(
     VkCommandBuffer commandBuffer,
     uint32_t baseGroupX,
@@ -3408,25 +3196,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDispatchBaseKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t baseGroupX,
-    uint32_t baseGroupY,
-    uint32_t baseGroupZ,
-    uint32_t groupCountX,
-    uint32_t groupCountY,
-    uint32_t groupCountZ)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDispatchBaseKHR", "VK_KHR_device_group");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
@@ -3735,24 +3504,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdPushDescriptorSetKHR(
-    VkCommandBuffer commandBuffer,
-    VkPipelineBindPoint pipelineBindPoint,
-    VkPipelineLayout layout,
-    uint32_t set,
-    uint32_t descriptorWriteCount,
-    const VkWriteDescriptorSet* pDescriptorWrites)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetKHR", "VK_KHR_push_descriptor");
-    }
-    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */);
-}
 static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
     VkCommandBuffer commandBuffer,
     VkDescriptorUpdateTemplate descriptorUpdateTemplate,
@@ -3764,23 +3515,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR(
-    VkCommandBuffer commandBuffer,
-    VkDescriptorUpdateTemplate descriptorUpdateTemplate,
-    VkPipelineLayout layout,
-    uint32_t set,
-    const void* pData)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetWithTemplateKHR", "VK_KHR_push_descriptor");
-    }
-    AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_shader_float16_int8
 #endif
@@ -3908,21 +3642,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginRenderPass2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkRenderPassBeginInfo* pRenderPassBegin,
-    const VkSubpassBeginInfo* pSubpassBeginInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderPass2KHR", "VK_KHR_create_renderpass2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
-}
 static void entry_vkCmdNextSubpass2KHR(
     VkCommandBuffer commandBuffer,
     const VkSubpassBeginInfo* pSubpassBeginInfo,
@@ -3932,21 +3651,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdNextSubpass2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkSubpassBeginInfo* pSubpassBeginInfo,
-    const VkSubpassEndInfo* pSubpassEndInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdNextSubpass2KHR", "VK_KHR_create_renderpass2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
-}
 static void entry_vkCmdEndRenderPass2KHR(
     VkCommandBuffer commandBuffer,
     const VkSubpassEndInfo* pSubpassEndInfo)
@@ -3955,20 +3659,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndRenderPass2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkSubpassEndInfo* pSubpassEndInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderPass2KHR", "VK_KHR_create_renderpass2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_shared_presentable_image
 static VkResult entry_vkGetSwapchainStatusKHR(
@@ -4503,25 +4193,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndirectCountKHR(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountKHR", "VK_KHR_draw_indirect_count");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 static void entry_vkCmdDrawIndexedIndirectCountKHR(
     VkCommandBuffer commandBuffer,
     VkBuffer buffer,
@@ -4535,25 +4206,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountKHR", "VK_KHR_draw_indirect_count");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_shader_subgroup_extended_types
 #endif
@@ -4677,21 +4329,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetFragmentShadingRateKHR(
-    VkCommandBuffer commandBuffer,
-    const VkExtent2D* pFragmentSize,
-    const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateKHR", "VK_KHR_fragment_shading_rate");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_spirv_1_4
 #endif
@@ -5042,20 +4679,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEncodeVideoKHR(
-    VkCommandBuffer commandBuffer,
-    const VkVideoEncodeInfoKHR* pEncodeInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_video_encode_queue"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEncodeVideoKHR", "VK_KHR_video_encode_queue");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEncodeVideoKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_synchronization2
 static void entry_vkCmdSetEvent2KHR(
@@ -5067,21 +4690,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetEvent2KHR(
-    VkCommandBuffer commandBuffer,
-    VkEvent event,
-    const VkDependencyInfoKHR* pDependencyInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetEvent2KHR", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetEvent2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */);
-}
 static void entry_vkCmdResetEvent2KHR(
     VkCommandBuffer commandBuffer,
     VkEvent event,
@@ -5091,21 +4699,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdResetEvent2KHR(
-    VkCommandBuffer commandBuffer,
-    VkEvent event,
-    VkPipelineStageFlags2KHR stageMask)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdResetEvent2KHR", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdResetEvent2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */);
-}
 static void entry_vkCmdWaitEvents2KHR(
     VkCommandBuffer commandBuffer,
     uint32_t eventCount,
@@ -5116,22 +4709,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWaitEvents2KHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t eventCount,
-    const VkEvent* pEvents,
-    const VkDependencyInfoKHR* pDependencyInfos)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWaitEvents2KHR", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWaitEvents2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */);
-}
 static void entry_vkCmdPipelineBarrier2KHR(
     VkCommandBuffer commandBuffer,
     const VkDependencyInfoKHR* pDependencyInfo)
@@ -5140,20 +4717,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdPipelineBarrier2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkDependencyInfoKHR* pDependencyInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdPipelineBarrier2KHR", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */);
-}
 static void entry_vkCmdWriteTimestamp2KHR(
     VkCommandBuffer commandBuffer,
     VkPipelineStageFlags2KHR stage,
@@ -5164,22 +4727,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWriteTimestamp2KHR(
-    VkCommandBuffer commandBuffer,
-    VkPipelineStageFlags2KHR stage,
-    VkQueryPool queryPool,
-    uint32_t query)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWriteTimestamp2KHR", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */);
-}
 static VkResult entry_vkQueueSubmit2KHR(
     VkQueue queue,
     uint32_t submitCount,
@@ -5203,23 +4750,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWriteBufferMarker2AMD(
-    VkCommandBuffer commandBuffer,
-    VkPipelineStageFlags2KHR stage,
-    VkBuffer dstBuffer,
-    VkDeviceSize dstOffset,
-    uint32_t marker)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarker2AMD", "VK_KHR_synchronization2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarker2AMD");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */);
-}
 static void entry_vkGetQueueCheckpointData2NV(
     VkQueue queue,
     uint32_t* pCheckpointDataCount,
@@ -5245,20 +4775,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyBuffer2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyBufferInfo2KHR* pCopyBufferInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyBuffer2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyBuffer2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */);
-}
 static void entry_vkCmdCopyImage2KHR(
     VkCommandBuffer commandBuffer,
     const VkCopyImageInfo2KHR* pCopyImageInfo)
@@ -5267,20 +4783,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyImage2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyImageInfo2KHR* pCopyImageInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyImage2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyImage2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */);
-}
 static void entry_vkCmdCopyBufferToImage2KHR(
     VkCommandBuffer commandBuffer,
     const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
@@ -5289,20 +4791,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyBufferToImage2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyBufferToImage2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
-}
 static void entry_vkCmdCopyImageToBuffer2KHR(
     VkCommandBuffer commandBuffer,
     const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
@@ -5311,20 +4799,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyImageToBuffer2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyImageToBuffer2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
-}
 static void entry_vkCmdBlitImage2KHR(
     VkCommandBuffer commandBuffer,
     const VkBlitImageInfo2KHR* pBlitImageInfo)
@@ -5333,20 +4807,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBlitImage2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkBlitImageInfo2KHR* pBlitImageInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBlitImage2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBlitImage2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */);
-}
 static void entry_vkCmdResolveImage2KHR(
     VkCommandBuffer commandBuffer,
     const VkResolveImageInfo2KHR* pResolveImageInfo)
@@ -5355,20 +4815,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdResolveImage2KHR(
-    VkCommandBuffer commandBuffer,
-    const VkResolveImageInfo2KHR* pResolveImageInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdResolveImage2KHR", "VK_KHR_copy_commands2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdResolveImage2KHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_format_feature_flags2
 #endif
@@ -5629,20 +5075,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDebugMarkerBeginEXT(
-    VkCommandBuffer commandBuffer,
-    const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerBeginEXT", "VK_EXT_debug_marker");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */);
-}
 static void entry_vkCmdDebugMarkerEndEXT(
     VkCommandBuffer commandBuffer)
 {
@@ -5650,19 +5082,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDebugMarkerEndEXT(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerEndEXT", "VK_EXT_debug_marker");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */);
-}
 static void entry_vkCmdDebugMarkerInsertEXT(
     VkCommandBuffer commandBuffer,
     const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
@@ -5671,20 +5090,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDebugMarkerInsertEXT(
-    VkCommandBuffer commandBuffer,
-    const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerInsertEXT", "VK_EXT_debug_marker");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_AMD_gcn_shader
 #endif
@@ -5703,24 +5108,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstBinding,
-    uint32_t bindingCount,
-    const VkBuffer* pBuffers,
-    const VkDeviceSize* pOffsets,
-    const VkDeviceSize* pSizes)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBindTransformFeedbackBuffersEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBindTransformFeedbackBuffersEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */);
-}
 static void entry_vkCmdBeginTransformFeedbackEXT(
     VkCommandBuffer commandBuffer,
     uint32_t firstCounterBuffer,
@@ -5732,23 +5119,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginTransformFeedbackEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstCounterBuffer,
-    uint32_t counterBufferCount,
-    const VkBuffer* pCounterBuffers,
-    const VkDeviceSize* pCounterBufferOffsets)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginTransformFeedbackEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginTransformFeedbackEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
-}
 static void entry_vkCmdEndTransformFeedbackEXT(
     VkCommandBuffer commandBuffer,
     uint32_t firstCounterBuffer,
@@ -5760,23 +5130,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndTransformFeedbackEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstCounterBuffer,
-    uint32_t counterBufferCount,
-    const VkBuffer* pCounterBuffers,
-    const VkDeviceSize* pCounterBufferOffsets)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndTransformFeedbackEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndTransformFeedbackEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
-}
 static void entry_vkCmdBeginQueryIndexedEXT(
     VkCommandBuffer commandBuffer,
     VkQueryPool queryPool,
@@ -5788,23 +5141,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginQueryIndexedEXT(
-    VkCommandBuffer commandBuffer,
-    VkQueryPool queryPool,
-    uint32_t query,
-    VkQueryControlFlags flags,
-    uint32_t index)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginQueryIndexedEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginQueryIndexedEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */);
-}
 static void entry_vkCmdEndQueryIndexedEXT(
     VkCommandBuffer commandBuffer,
     VkQueryPool queryPool,
@@ -5815,22 +5151,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndQueryIndexedEXT(
-    VkCommandBuffer commandBuffer,
-    VkQueryPool queryPool,
-    uint32_t query,
-    uint32_t index)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndQueryIndexedEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndQueryIndexedEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */);
-}
 static void entry_vkCmdDrawIndirectByteCountEXT(
     VkCommandBuffer commandBuffer,
     uint32_t instanceCount,
@@ -5844,25 +5164,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndirectByteCountEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t instanceCount,
-    uint32_t firstInstance,
-    VkBuffer counterBuffer,
-    VkDeviceSize counterBufferOffset,
-    uint32_t counterOffset,
-    uint32_t vertexStride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectByteCountEXT", "VK_EXT_transform_feedback");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndirectByteCountEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
-}
 #endif
 #ifdef VK_NVX_binary_import
 static VkResult entry_vkCreateCuModuleNVX(
@@ -5977,20 +5278,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCuLaunchKernelNVX(
-    VkCommandBuffer commandBuffer,
-    const VkCuLaunchInfoNVX* pLaunchInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCuLaunchKernelNVX", "VK_NVX_binary_import");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCuLaunchKernelNVX");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */);
-}
 #endif
 #ifdef VK_NVX_image_view_handle
 static uint32_t entry_vkGetImageViewHandleNVX(
@@ -6060,25 +5347,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndirectCountAMD(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountAMD", "VK_AMD_draw_indirect_count");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 static void entry_vkCmdDrawIndexedIndirectCountAMD(
     VkCommandBuffer commandBuffer,
     VkBuffer buffer,
@@ -6092,25 +5360,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountAMD", "VK_AMD_draw_indirect_count");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 #endif
 #ifdef VK_AMD_negative_viewport_height
 #endif
@@ -6267,20 +5516,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginConditionalRenderingEXT(
-    VkCommandBuffer commandBuffer,
-    const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginConditionalRenderingEXT", "VK_EXT_conditional_rendering");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */);
-}
 static void entry_vkCmdEndConditionalRenderingEXT(
     VkCommandBuffer commandBuffer)
 {
@@ -6288,19 +5523,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndConditionalRenderingEXT(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndConditionalRenderingEXT", "VK_EXT_conditional_rendering");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 static void entry_vkCmdSetViewportWScalingNV(
@@ -6313,22 +5535,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetViewportWScalingNV(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstViewport,
-    uint32_t viewportCount,
-    const VkViewportWScalingNV* pViewportWScalings)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWScalingNV", "VK_NV_clip_space_w_scaling");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_direct_mode_display
 static VkResult entry_vkReleaseDisplayEXT(
@@ -6577,22 +5783,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDiscardRectangleEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstDiscardRectangle,
-    uint32_t discardRectangleCount,
-    const VkRect2D* pDiscardRectangles)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDiscardRectangleEXT", "VK_EXT_discard_rectangles");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
@@ -6795,20 +5985,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBeginDebugUtilsLabelEXT(
-    VkCommandBuffer commandBuffer,
-    const VkDebugUtilsLabelEXT* pLabelInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBeginDebugUtilsLabelEXT", "VK_EXT_debug_utils");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
-}
 static void entry_vkCmdEndDebugUtilsLabelEXT(
     VkCommandBuffer commandBuffer)
 {
@@ -6816,19 +5992,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdEndDebugUtilsLabelEXT(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdEndDebugUtilsLabelEXT", "VK_EXT_debug_utils");
-    }
-    AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer, true /* do lock */);
-}
 static void entry_vkCmdInsertDebugUtilsLabelEXT(
     VkCommandBuffer commandBuffer,
     const VkDebugUtilsLabelEXT* pLabelInfo)
@@ -6837,20 +6000,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdInsertDebugUtilsLabelEXT(
-    VkCommandBuffer commandBuffer,
-    const VkDebugUtilsLabelEXT* pLabelInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdInsertDebugUtilsLabelEXT", "VK_EXT_debug_utils");
-    }
-    AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */);
-}
 static VkResult entry_vkCreateDebugUtilsMessengerEXT(
     VkInstance instance,
     const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
@@ -6962,20 +6111,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetSampleLocationsEXT(
-    VkCommandBuffer commandBuffer,
-    const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_sample_locations"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetSampleLocationsEXT", "VK_EXT_sample_locations");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */);
-}
 static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
     VkPhysicalDevice physicalDevice,
     VkSampleCountFlagBits samples,
@@ -7153,21 +6288,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBindShadingRateImageNV(
-    VkCommandBuffer commandBuffer,
-    VkImageView imageView,
-    VkImageLayout imageLayout)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBindShadingRateImageNV", "VK_NV_shading_rate_image");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBindShadingRateImageNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */);
-}
 static void entry_vkCmdSetViewportShadingRatePaletteNV(
     VkCommandBuffer commandBuffer,
     uint32_t firstViewport,
@@ -7178,22 +6298,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstViewport,
-    uint32_t viewportCount,
-    const VkShadingRatePaletteNV* pShadingRatePalettes)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportShadingRatePaletteNV", "VK_NV_shading_rate_image");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetViewportShadingRatePaletteNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */);
-}
 static void entry_vkCmdSetCoarseSampleOrderNV(
     VkCommandBuffer commandBuffer,
     VkCoarseSampleOrderTypeNV sampleOrderType,
@@ -7204,22 +6308,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetCoarseSampleOrderNV(
-    VkCommandBuffer commandBuffer,
-    VkCoarseSampleOrderTypeNV sampleOrderType,
-    uint32_t customSampleOrderCount,
-    const VkCoarseSampleOrderCustomNV* pCustomSampleOrders)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetCoarseSampleOrderNV", "VK_NV_shading_rate_image");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetCoarseSampleOrderNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_ray_tracing
 static VkResult entry_vkCreateAccelerationStructureNV(
@@ -7339,27 +6427,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBuildAccelerationStructureNV(
-    VkCommandBuffer commandBuffer,
-    const VkAccelerationStructureInfoNV* pInfo,
-    VkBuffer instanceData,
-    VkDeviceSize instanceOffset,
-    VkBool32 update,
-    VkAccelerationStructureNV dst,
-    VkAccelerationStructureNV src,
-    VkBuffer scratch,
-    VkDeviceSize scratchOffset)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructureNV", "VK_NV_ray_tracing");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructureNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */);
-}
 static void entry_vkCmdCopyAccelerationStructureNV(
     VkCommandBuffer commandBuffer,
     VkAccelerationStructureNV dst,
@@ -7370,22 +6437,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyAccelerationStructureNV(
-    VkCommandBuffer commandBuffer,
-    VkAccelerationStructureNV dst,
-    VkAccelerationStructureNV src,
-    VkCopyAccelerationStructureModeKHR mode)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureNV", "VK_NV_ray_tracing");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */);
-}
 static void entry_vkCmdTraceRaysNV(
     VkCommandBuffer commandBuffer,
     VkBuffer raygenShaderBindingTableBuffer,
@@ -7407,33 +6458,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdTraceRaysNV(
-    VkCommandBuffer commandBuffer,
-    VkBuffer raygenShaderBindingTableBuffer,
-    VkDeviceSize raygenShaderBindingOffset,
-    VkBuffer missShaderBindingTableBuffer,
-    VkDeviceSize missShaderBindingOffset,
-    VkDeviceSize missShaderBindingStride,
-    VkBuffer hitShaderBindingTableBuffer,
-    VkDeviceSize hitShaderBindingOffset,
-    VkDeviceSize hitShaderBindingStride,
-    VkBuffer callableShaderBindingTableBuffer,
-    VkDeviceSize callableShaderBindingOffset,
-    VkDeviceSize callableShaderBindingStride,
-    uint32_t width,
-    uint32_t height,
-    uint32_t depth)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysNV", "VK_NV_ray_tracing");
-    }
-    AEMU_SCOPED_TRACE("vkCmdTraceRaysNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */);
-}
 static VkResult entry_vkCreateRayTracingPipelinesNV(
     VkDevice device,
     VkPipelineCache pipelineCache,
@@ -7574,24 +6598,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV(
-    VkCommandBuffer commandBuffer,
-    uint32_t accelerationStructureCount,
-    const VkAccelerationStructureNV* pAccelerationStructures,
-    VkQueryType queryType,
-    VkQueryPool queryPool,
-    uint32_t firstQuery)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesNV", "VK_NV_ray_tracing");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
-}
 static VkResult entry_vkCompileDeferredNV(
     VkDevice device,
     VkPipeline pipeline,
@@ -7671,23 +6677,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWriteBufferMarkerAMD(
-    VkCommandBuffer commandBuffer,
-    VkPipelineStageFlagBits pipelineStage,
-    VkBuffer dstBuffer,
-    VkDeviceSize dstOffset,
-    uint32_t marker)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_AMD_buffer_marker"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarkerAMD", "VK_AMD_buffer_marker");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */);
-}
 #endif
 #ifdef VK_AMD_pipeline_compiler_control
 #endif
@@ -7761,21 +6750,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawMeshTasksNV(
-    VkCommandBuffer commandBuffer,
-    uint32_t taskCount,
-    uint32_t firstTask)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksNV", "VK_NV_mesh_shader");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */);
-}
 static void entry_vkCmdDrawMeshTasksIndirectNV(
     VkCommandBuffer commandBuffer,
     VkBuffer buffer,
@@ -7787,23 +6761,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawMeshTasksIndirectNV(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    uint32_t drawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectNV", "VK_NV_mesh_shader");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
-}
 static void entry_vkCmdDrawMeshTasksIndirectCountNV(
     VkCommandBuffer commandBuffer,
     VkBuffer buffer,
@@ -7817,25 +6774,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV(
-    VkCommandBuffer commandBuffer,
-    VkBuffer buffer,
-    VkDeviceSize offset,
-    VkBuffer countBuffer,
-    VkDeviceSize countBufferOffset,
-    uint32_t maxDrawCount,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectCountNV", "VK_NV_mesh_shader");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectCountNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_fragment_shader_barycentric
 #endif
@@ -7852,22 +6790,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetExclusiveScissorNV(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstExclusiveScissor,
-    uint32_t exclusiveScissorCount,
-    const VkRect2D* pExclusiveScissors)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_scissor_exclusive"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetExclusiveScissorNV", "VK_NV_scissor_exclusive");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetExclusiveScissorNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 static void entry_vkCmdSetCheckpointNV(
@@ -7878,20 +6800,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetCheckpointNV(
-    VkCommandBuffer commandBuffer,
-    const void* pCheckpointMarker)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetCheckpointNV", "VK_NV_device_diagnostic_checkpoints");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */);
-}
 static void entry_vkGetQueueCheckpointDataNV(
     VkQueue queue,
     uint32_t* pCheckpointDataCount,
@@ -7959,22 +6867,6 @@
     vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
     return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
 }
-static VkResult dynCheck_entry_vkCmdSetPerformanceMarkerINTEL(
-    VkCommandBuffer commandBuffer,
-    const VkPerformanceMarkerInfoINTEL* pMarkerInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceMarkerINTEL", "VK_INTEL_performance_query");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPerformanceMarkerINTEL");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0;
-    vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
-    return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
-}
 static VkResult entry_vkCmdSetPerformanceStreamMarkerINTEL(
     VkCommandBuffer commandBuffer,
     const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
@@ -7985,22 +6877,6 @@
     vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
     return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
 }
-static VkResult dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL(
-    VkCommandBuffer commandBuffer,
-    const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceStreamMarkerINTEL", "VK_INTEL_performance_query");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPerformanceStreamMarkerINTEL");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0;
-    vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
-    return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
-}
 static VkResult entry_vkCmdSetPerformanceOverrideINTEL(
     VkCommandBuffer commandBuffer,
     const VkPerformanceOverrideInfoINTEL* pOverrideInfo)
@@ -8011,22 +6887,6 @@
     vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */);
     return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
 }
-static VkResult dynCheck_entry_vkCmdSetPerformanceOverrideINTEL(
-    VkCommandBuffer commandBuffer,
-    const VkPerformanceOverrideInfoINTEL* pOverrideInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceOverrideINTEL", "VK_INTEL_performance_query");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPerformanceOverrideINTEL");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0;
-    vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */);
-    return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
-}
 static VkResult entry_vkAcquirePerformanceConfigurationINTEL(
     VkDevice device,
     const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
@@ -8385,21 +7245,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetLineStippleEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t lineStippleFactor,
-    uint16_t lineStipplePattern)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_line_rasterization"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetLineStippleEXT", "VK_EXT_line_rasterization");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetLineStippleEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_shader_atomic_float
 #endif
@@ -8441,20 +7286,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetCullModeEXT(
-    VkCommandBuffer commandBuffer,
-    VkCullModeFlags cullMode)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetCullModeEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetCullModeEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */);
-}
 static void entry_vkCmdSetFrontFaceEXT(
     VkCommandBuffer commandBuffer,
     VkFrontFace frontFace)
@@ -8463,20 +7294,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetFrontFaceEXT(
-    VkCommandBuffer commandBuffer,
-    VkFrontFace frontFace)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetFrontFaceEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetFrontFaceEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */);
-}
 static void entry_vkCmdSetPrimitiveTopologyEXT(
     VkCommandBuffer commandBuffer,
     VkPrimitiveTopology primitiveTopology)
@@ -8485,20 +7302,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetPrimitiveTopologyEXT(
-    VkCommandBuffer commandBuffer,
-    VkPrimitiveTopology primitiveTopology)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveTopologyEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopologyEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */);
-}
 static void entry_vkCmdSetViewportWithCountEXT(
     VkCommandBuffer commandBuffer,
     uint32_t viewportCount,
@@ -8508,21 +7311,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetViewportWithCountEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t viewportCount,
-    const VkViewport* pViewports)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWithCountEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetViewportWithCountEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */);
-}
 static void entry_vkCmdSetScissorWithCountEXT(
     VkCommandBuffer commandBuffer,
     uint32_t scissorCount,
@@ -8532,21 +7320,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetScissorWithCountEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t scissorCount,
-    const VkRect2D* pScissors)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetScissorWithCountEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetScissorWithCountEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */);
-}
 static void entry_vkCmdBindVertexBuffers2EXT(
     VkCommandBuffer commandBuffer,
     uint32_t firstBinding,
@@ -8560,25 +7333,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBindVertexBuffers2EXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t firstBinding,
-    uint32_t bindingCount,
-    const VkBuffer* pBuffers,
-    const VkDeviceSize* pOffsets,
-    const VkDeviceSize* pSizes,
-    const VkDeviceSize* pStrides)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBindVertexBuffers2EXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2EXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */);
-}
 static void entry_vkCmdSetDepthTestEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 depthTestEnable)
@@ -8587,20 +7341,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDepthTestEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 depthTestEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthTestEnableEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */);
-}
 static void entry_vkCmdSetDepthWriteEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 depthWriteEnable)
@@ -8609,20 +7349,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDepthWriteEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 depthWriteEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthWriteEnableEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */);
-}
 static void entry_vkCmdSetDepthCompareOpEXT(
     VkCommandBuffer commandBuffer,
     VkCompareOp depthCompareOp)
@@ -8631,20 +7357,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDepthCompareOpEXT(
-    VkCommandBuffer commandBuffer,
-    VkCompareOp depthCompareOp)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthCompareOpEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOpEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */);
-}
 static void entry_vkCmdSetDepthBoundsTestEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 depthBoundsTestEnable)
@@ -8653,20 +7365,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 depthBoundsTestEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBoundsTestEnableEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */);
-}
 static void entry_vkCmdSetStencilTestEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 stencilTestEnable)
@@ -8675,20 +7373,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetStencilTestEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 stencilTestEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilTestEnableEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */);
-}
 static void entry_vkCmdSetStencilOpEXT(
     VkCommandBuffer commandBuffer,
     VkStencilFaceFlags faceMask,
@@ -8701,24 +7385,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetStencilOpEXT(
-    VkCommandBuffer commandBuffer,
-    VkStencilFaceFlags faceMask,
-    VkStencilOp failOp,
-    VkStencilOp passOp,
-    VkStencilOp depthFailOp,
-    VkCompareOp compareOp)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilOpEXT", "VK_EXT_extended_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetStencilOpEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_shader_atomic_float2
 #endif
@@ -8756,20 +7422,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV(
-    VkCommandBuffer commandBuffer,
-    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdPreprocessGeneratedCommandsNV", "VK_NV_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkCmdPreprocessGeneratedCommandsNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */);
-}
 static void entry_vkCmdExecuteGeneratedCommandsNV(
     VkCommandBuffer commandBuffer,
     VkBool32 isPreprocessed,
@@ -8779,21 +7431,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdExecuteGeneratedCommandsNV(
-    VkCommandBuffer commandBuffer,
-    VkBool32 isPreprocessed,
-    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdExecuteGeneratedCommandsNV", "VK_NV_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkCmdExecuteGeneratedCommandsNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */);
-}
 static void entry_vkCmdBindPipelineShaderGroupNV(
     VkCommandBuffer commandBuffer,
     VkPipelineBindPoint pipelineBindPoint,
@@ -8804,22 +7441,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBindPipelineShaderGroupNV(
-    VkCommandBuffer commandBuffer,
-    VkPipelineBindPoint pipelineBindPoint,
-    VkPipeline pipeline,
-    uint32_t groupIndex)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBindPipelineShaderGroupNV", "VK_NV_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBindPipelineShaderGroupNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */);
-}
 static VkResult entry_vkCreateIndirectCommandsLayoutNV(
     VkDevice device,
     const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
@@ -9040,21 +7661,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV(
-    VkCommandBuffer commandBuffer,
-    VkFragmentShadingRateNV shadingRate,
-    const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_NV_fragment_shading_rate_enums"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateEnumNV", "VK_NV_fragment_shading_rate_enums");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateEnumNV");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_ray_tracing_motion_blur
 #endif
@@ -9132,23 +7738,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetVertexInputEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t vertexBindingDescriptionCount,
-    const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
-    uint32_t vertexAttributeDescriptionCount,
-    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_vertex_input_dynamic_state"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetVertexInputEXT", "VK_EXT_vertex_input_dynamic_state");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetVertexInputEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_physical_device_drm
 #endif
@@ -9436,19 +8025,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSubpassShadingHUAWEI(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSubpassShadingHUAWEI", "VK_HUAWEI_subpass_shading");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSubpassShadingHUAWEI");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */);
-}
 #endif
 #ifdef VK_HUAWEI_invocation_mask
 static void entry_vkCmdBindInvocationMaskHUAWEI(
@@ -9460,21 +8036,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBindInvocationMaskHUAWEI(
-    VkCommandBuffer commandBuffer,
-    VkImageView imageView,
-    VkImageLayout imageLayout)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_HUAWEI_invocation_mask"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBindInvocationMaskHUAWEI", "VK_HUAWEI_invocation_mask");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBindInvocationMaskHUAWEI");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */);
-}
 #endif
 #ifdef VK_NV_external_memory_rdma
 static VkResult entry_vkGetMemoryRemoteAddressNV(
@@ -9514,20 +8075,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetPatchControlPointsEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t patchControlPoints)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPatchControlPointsEXT", "VK_EXT_extended_dynamic_state2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPatchControlPointsEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */);
-}
 static void entry_vkCmdSetRasterizerDiscardEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 rasterizerDiscardEnable)
@@ -9536,20 +8083,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 rasterizerDiscardEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetRasterizerDiscardEnableEXT", "VK_EXT_extended_dynamic_state2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */);
-}
 static void entry_vkCmdSetDepthBiasEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 depthBiasEnable)
@@ -9558,20 +8091,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetDepthBiasEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 depthBiasEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBiasEnableEXT", "VK_EXT_extended_dynamic_state2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */);
-}
 static void entry_vkCmdSetLogicOpEXT(
     VkCommandBuffer commandBuffer,
     VkLogicOp logicOp)
@@ -9580,20 +8099,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetLogicOpEXT(
-    VkCommandBuffer commandBuffer,
-    VkLogicOp logicOp)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetLogicOpEXT", "VK_EXT_extended_dynamic_state2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetLogicOpEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */);
-}
 static void entry_vkCmdSetPrimitiveRestartEnableEXT(
     VkCommandBuffer commandBuffer,
     VkBool32 primitiveRestartEnable)
@@ -9602,20 +8107,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT(
-    VkCommandBuffer commandBuffer,
-    VkBool32 primitiveRestartEnable)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveRestartEnableEXT", "VK_EXT_extended_dynamic_state2");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */);
-}
 #endif
 #ifdef VK_QNX_screen_surface
 static VkResult entry_vkCreateScreenSurfaceQNX(
@@ -9652,21 +8143,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetColorWriteEnableEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t attachmentCount,
-    const VkBool32* pColorWriteEnables)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_color_write_enable"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetColorWriteEnableEXT", "VK_EXT_color_write_enable");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetColorWriteEnableEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */);
-}
 #endif
 #ifdef VK_GOOGLE_gfxstream
 static VkResult entry_vkRegisterImageColorBufferGOOGLE(
@@ -9799,20 +8275,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkBeginCommandBufferAsyncGOOGLE(
-    VkCommandBuffer commandBuffer,
-    const VkCommandBufferBeginInfo* pBeginInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkBeginCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
-    }
-    AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo, true /* do lock */);
-}
 static void entry_vkEndCommandBufferAsyncGOOGLE(
     VkCommandBuffer commandBuffer)
 {
@@ -9820,19 +8282,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer, true /* do lock */);
 }
-static void dynCheck_entry_vkEndCommandBufferAsyncGOOGLE(
-    VkCommandBuffer commandBuffer)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkEndCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
-    }
-    AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer, true /* do lock */);
-}
 static void entry_vkResetCommandBufferAsyncGOOGLE(
     VkCommandBuffer commandBuffer,
     VkCommandBufferResetFlags flags)
@@ -9841,20 +8290,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */);
 }
-static void dynCheck_entry_vkResetCommandBufferAsyncGOOGLE(
-    VkCommandBuffer commandBuffer,
-    VkCommandBufferResetFlags flags)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkResetCommandBufferAsyncGOOGLE", "VK_GOOGLE_gfxstream");
-    }
-    AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */);
-}
 static void entry_vkCommandBufferHostSyncGOOGLE(
     VkCommandBuffer commandBuffer,
     uint32_t needHostSync,
@@ -9864,21 +8299,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */);
 }
-static void dynCheck_entry_vkCommandBufferHostSyncGOOGLE(
-    VkCommandBuffer commandBuffer,
-    uint32_t needHostSync,
-    uint32_t sequenceNumber)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCommandBufferHostSyncGOOGLE", "VK_GOOGLE_gfxstream");
-    }
-    AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */);
-}
 static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
     VkDevice device,
     const VkImageCreateInfo* pCreateInfo,
@@ -10163,24 +8583,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawMultiEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t drawCount,
-    const VkMultiDrawInfoEXT* pVertexInfo,
-    uint32_t instanceCount,
-    uint32_t firstInstance,
-    uint32_t stride)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiEXT", "VK_EXT_multi_draw");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawMultiEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */);
-}
 static void entry_vkCmdDrawMultiIndexedEXT(
     VkCommandBuffer commandBuffer,
     uint32_t drawCount,
@@ -10194,25 +8596,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdDrawMultiIndexedEXT(
-    VkCommandBuffer commandBuffer,
-    uint32_t drawCount,
-    const VkMultiDrawIndexedInfoEXT* pIndexInfo,
-    uint32_t instanceCount,
-    uint32_t firstInstance,
-    uint32_t stride,
-    const int32_t* pVertexOffset)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiIndexedEXT", "VK_EXT_multi_draw");
-    }
-    AEMU_SCOPED_TRACE("vkCmdDrawMultiIndexedEXT");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */);
-}
 #endif
 #ifdef VK_EXT_load_store_op_none
 #endif
@@ -10306,22 +8689,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBuildAccelerationStructuresKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t infoCount,
-    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
-    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
-}
 static void entry_vkCmdBuildAccelerationStructuresIndirectKHR(
     VkCommandBuffer commandBuffer,
     uint32_t infoCount,
@@ -10334,24 +8701,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t infoCount,
-    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
-    const VkDeviceAddress* pIndirectDeviceAddresses,
-    const uint32_t* pIndirectStrides,
-    const uint32_t* const* ppMaxPrimitiveCounts)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresIndirectKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresIndirectKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */);
-}
 static VkResult entry_vkBuildAccelerationStructuresKHR(
     VkDevice device,
     VkDeferredOperationKHR deferredOperation,
@@ -10507,20 +8856,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyAccelerationStructureKHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyAccelerationStructureInfoKHR* pInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
-}
 static void entry_vkCmdCopyAccelerationStructureToMemoryKHR(
     VkCommandBuffer commandBuffer,
     const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
@@ -10529,20 +8864,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureToMemoryKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureToMemoryKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */);
-}
 static void entry_vkCmdCopyMemoryToAccelerationStructureKHR(
     VkCommandBuffer commandBuffer,
     const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
@@ -10551,20 +8872,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR(
-    VkCommandBuffer commandBuffer,
-    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdCopyMemoryToAccelerationStructureKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdCopyMemoryToAccelerationStructureKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
-}
 static VkDeviceAddress entry_vkGetAccelerationStructureDeviceAddressKHR(
     VkDevice device,
     const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
@@ -10602,24 +8909,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t accelerationStructureCount,
-    const VkAccelerationStructureKHR* pAccelerationStructures,
-    VkQueryType queryType,
-    VkQueryPool queryPool,
-    uint32_t firstQuery)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesKHR", "VK_KHR_acceleration_structure");
-    }
-    AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
-}
 static void entry_vkGetDeviceAccelerationStructureCompatibilityKHR(
     VkDevice device,
     const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
@@ -10686,26 +8975,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdTraceRaysKHR(
-    VkCommandBuffer commandBuffer,
-    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
-    uint32_t width,
-    uint32_t height,
-    uint32_t depth)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysKHR", "VK_KHR_ray_tracing_pipeline");
-    }
-    AEMU_SCOPED_TRACE("vkCmdTraceRaysKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */);
-}
 static VkResult entry_vkCreateRayTracingPipelinesKHR(
     VkDevice device,
     VkDeferredOperationKHR deferredOperation,
@@ -10786,24 +9055,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdTraceRaysIndirectKHR(
-    VkCommandBuffer commandBuffer,
-    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
-    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
-    VkDeviceAddress indirectDeviceAddress)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysIndirectKHR", "VK_KHR_ray_tracing_pipeline");
-    }
-    AEMU_SCOPED_TRACE("vkCmdTraceRaysIndirectKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */);
-}
 static VkDeviceSize entry_vkGetRayTracingShaderGroupStackSizeKHR(
     VkDevice device,
     VkPipeline pipeline,
@@ -10841,20 +9092,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */);
 }
-static void dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR(
-    VkCommandBuffer commandBuffer,
-    uint32_t pipelineStackSize)
-{
-    auto resources = ResourceTracker::get();
-    VkDevice device = resources->getDevice(commandBuffer);;
-    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCmdSetRayTracingPipelineStackSizeKHR", "VK_KHR_ray_tracing_pipeline");
-    }
-    AEMU_SCOPED_TRACE("vkCmdSetRayTracingPipelineStackSizeKHR");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */);
-}
 #endif
 #ifdef VK_KHR_ray_query
 #endif
@@ -13823,11 +12060,11 @@
     }
     if (!strcmp(name, "vkCmdSetDeviceMask"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDeviceMask;
+        return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
     }
     if (!strcmp(name, "vkCmdDispatchBase"))
     {
-        return (void*)dynCheck_entry_vkCmdDispatchBase;
+        return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
     }
     if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
     {
@@ -13921,11 +12158,13 @@
 #ifdef VK_VERSION_1_2
     if (!strcmp(name, "vkCmdDrawIndirectCount"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndirectCount;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectCount : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawIndexedIndirectCount"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCount;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr;
     }
     if (!strcmp(name, "vkCreateRenderPass2"))
     {
@@ -13933,15 +12172,18 @@
     }
     if (!strcmp(name, "vkCmdBeginRenderPass2"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginRenderPass2;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdBeginRenderPass2 : nullptr;
     }
     if (!strcmp(name, "vkCmdNextSubpass2"))
     {
-        return (void*)dynCheck_entry_vkCmdNextSubpass2;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdNextSubpass2 : nullptr;
     }
     if (!strcmp(name, "vkCmdEndRenderPass2"))
     {
-        return (void*)dynCheck_entry_vkCmdEndRenderPass2;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdEndRenderPass2 : nullptr;
     }
     if (!strcmp(name, "vkResetQueryPool"))
     {
@@ -14178,31 +12420,37 @@
     }
     if (!strcmp(name, "vkCmdBeginVideoCodingKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginVideoCodingKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdBeginVideoCodingKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdEndVideoCodingKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdEndVideoCodingKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdEndVideoCodingKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdControlVideoCodingKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdControlVideoCodingKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_queue");
+        return hasExt ? (void*)entry_vkCmdControlVideoCodingKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_video_decode_queue
     if (!strcmp(name, "vkCmdDecodeVideoKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdDecodeVideoKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_decode_queue");
+        return hasExt ? (void*)entry_vkCmdDecodeVideoKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_dynamic_rendering
     if (!strcmp(name, "vkCmdBeginRenderingKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginRenderingKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdBeginRenderingKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdEndRenderingKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdEndRenderingKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_dynamic_rendering");
+        return hasExt ? (void*)entry_vkCmdEndRenderingKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
@@ -14249,11 +12497,13 @@
     }
     if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDeviceMaskKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
+        return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdDispatchBaseKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdDispatchBaseKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
+        return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_maintenance1
@@ -14326,11 +12576,13 @@
 #ifdef VK_KHR_push_descriptor
     if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdPushDescriptorSetKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
+        return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
+        return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_descriptor_update_template
@@ -14354,15 +12606,18 @@
     }
     if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginRenderPass2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
+        return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdNextSubpass2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdNextSubpass2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
+        return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdEndRenderPass2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
+        return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -14495,11 +12750,13 @@
 #ifdef VK_KHR_draw_indirect_count
     if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndirectCountKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
+        return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_timeline_semaphore
@@ -14524,7 +12781,8 @@
     }
     if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_fragment_shading_rate");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_present_wait
@@ -14586,29 +12844,35 @@
 #ifdef VK_KHR_video_encode_queue
     if (!strcmp(name, "vkCmdEncodeVideoKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdEncodeVideoKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_video_encode_queue");
+        return hasExt ? (void*)entry_vkCmdEncodeVideoKHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_synchronization2
     if (!strcmp(name, "vkCmdSetEvent2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdSetEvent2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdSetEvent2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdResetEvent2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdResetEvent2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdResetEvent2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdWaitEvents2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdWaitEvents2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWaitEvents2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdPipelineBarrier2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdPipelineBarrier2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdPipelineBarrier2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdWriteTimestamp2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdWriteTimestamp2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteTimestamp2KHR : nullptr;
     }
     if (!strcmp(name, "vkQueueSubmit2KHR"))
     {
@@ -14617,7 +12881,8 @@
     }
     if (!strcmp(name, "vkCmdWriteBufferMarker2AMD"))
     {
-        return (void*)dynCheck_entry_vkCmdWriteBufferMarker2AMD;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_synchronization2");
+        return hasExt ? (void*)entry_vkCmdWriteBufferMarker2AMD : nullptr;
     }
     if (!strcmp(name, "vkGetQueueCheckpointData2NV"))
     {
@@ -14628,27 +12893,33 @@
 #ifdef VK_KHR_copy_commands2
     if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyBuffer2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBuffer2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyImage2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyImage2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImage2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyBufferToImage2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyBufferToImage2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBufferToImage2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyImageToBuffer2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImageToBuffer2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdBlitImage2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBlitImage2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdBlitImage2KHR : nullptr;
     }
     if (!strcmp(name, "vkCmdResolveImage2KHR"))
     {
-        return (void*)dynCheck_entry_vkCmdResolveImage2KHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
     }
 #endif
 #ifdef VK_KHR_maintenance4
@@ -14708,41 +12979,50 @@
     }
     if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDebugMarkerBeginEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
+        return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDebugMarkerEndEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
+        return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDebugMarkerInsertEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
+        return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
     }
 #endif
 #ifdef VK_EXT_transform_feedback
     if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBindTransformFeedbackBuffersEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginTransformFeedbackEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginTransformFeedbackEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdEndTransformFeedbackEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdEndTransformFeedbackEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndTransformFeedbackEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdBeginQueryIndexedEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginQueryIndexedEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginQueryIndexedEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdEndQueryIndexedEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdEndQueryIndexedEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndQueryIndexedEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndirectByteCountEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
     }
 #endif
 #ifdef VK_NVX_binary_import
@@ -14764,7 +13044,8 @@
     }
     if (!strcmp(name, "vkCmdCuLaunchKernelNVX"))
     {
-        return (void*)dynCheck_entry_vkCmdCuLaunchKernelNVX;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_binary_import");
+        return hasExt ? (void*)entry_vkCmdCuLaunchKernelNVX : nullptr;
     }
 #endif
 #ifdef VK_NVX_image_view_handle
@@ -14780,11 +13061,13 @@
 #ifdef VK_AMD_draw_indirect_count
     if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndirectCountAMD;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
+        return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
     }
 #endif
 #ifdef VK_AMD_shader_info
@@ -14823,17 +13106,20 @@
 #ifdef VK_EXT_conditional_rendering
     if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginConditionalRenderingEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
+        return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdEndConditionalRenderingEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
+        return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
     }
 #endif
 #ifdef VK_NV_clip_space_w_scaling
     if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetViewportWScalingNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
+        return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
     }
 #endif
 #ifdef VK_EXT_direct_mode_display
@@ -14893,7 +13179,8 @@
 #ifdef VK_EXT_discard_rectangles
     if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDiscardRectangleEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
+        return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
     }
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -14974,15 +13261,18 @@
     }
     if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBeginDebugUtilsLabelEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
+        return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdEndDebugUtilsLabelEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
+        return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdInsertDebugUtilsLabelEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
+        return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
     }
     if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
     {
@@ -15013,7 +13303,8 @@
 #ifdef VK_EXT_sample_locations
     if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetSampleLocationsEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
+        return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
     }
     if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
     {
@@ -15048,15 +13339,18 @@
 #ifdef VK_NV_shading_rate_image
     if (!strcmp(name, "vkCmdBindShadingRateImageNV"))
     {
-        return (void*)dynCheck_entry_vkCmdBindShadingRateImageNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdBindShadingRateImageNV : nullptr;
     }
     if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetViewportShadingRatePaletteNV : nullptr;
     }
     if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetCoarseSampleOrderNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetCoarseSampleOrderNV : nullptr;
     }
 #endif
 #ifdef VK_NV_ray_tracing
@@ -15078,15 +13372,18 @@
     }
     if (!strcmp(name, "vkCmdBuildAccelerationStructureNV"))
     {
-        return (void*)dynCheck_entry_vkCmdBuildAccelerationStructureNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructureNV : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyAccelerationStructureNV"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureNV : nullptr;
     }
     if (!strcmp(name, "vkCmdTraceRaysNV"))
     {
-        return (void*)dynCheck_entry_vkCmdTraceRaysNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdTraceRaysNV : nullptr;
     }
     if (!strcmp(name, "vkCreateRayTracingPipelinesNV"))
     {
@@ -15106,7 +13403,8 @@
     }
     if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV"))
     {
-        return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesNV : nullptr;
     }
     if (!strcmp(name, "vkCompileDeferredNV"))
     {
@@ -15122,7 +13420,8 @@
 #ifdef VK_AMD_buffer_marker
     if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
     {
-        return (void*)dynCheck_entry_vkCmdWriteBufferMarkerAMD;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
+        return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
     }
 #endif
 #ifdef VK_EXT_calibrated_timestamps
@@ -15139,27 +13438,32 @@
 #ifdef VK_NV_mesh_shader
     if (!strcmp(name, "vkCmdDrawMeshTasksNV"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawMeshTasksNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksNV : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectNV : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectCountNV : nullptr;
     }
 #endif
 #ifdef VK_NV_scissor_exclusive
     if (!strcmp(name, "vkCmdSetExclusiveScissorNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetExclusiveScissorNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_scissor_exclusive");
+        return hasExt ? (void*)entry_vkCmdSetExclusiveScissorNV : nullptr;
     }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
     if (!strcmp(name, "vkCmdSetCheckpointNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetCheckpointNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
+        return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
     }
     if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
     {
@@ -15178,15 +13482,18 @@
     }
     if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPerformanceMarkerINTEL;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceMarkerINTEL : nullptr;
     }
     if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceStreamMarkerINTEL : nullptr;
     }
     if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPerformanceOverrideINTEL;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceOverrideINTEL : nullptr;
     }
     if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL"))
     {
@@ -15282,7 +13589,8 @@
 #ifdef VK_EXT_line_rasterization
     if (!strcmp(name, "vkCmdSetLineStippleEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetLineStippleEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_line_rasterization");
+        return hasExt ? (void*)entry_vkCmdSetLineStippleEXT : nullptr;
     }
 #endif
 #ifdef VK_EXT_host_query_reset
@@ -15294,51 +13602,63 @@
 #ifdef VK_EXT_extended_dynamic_state
     if (!strcmp(name, "vkCmdSetCullModeEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetCullModeEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetCullModeEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetFrontFaceEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetFrontFaceEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetFrontFaceEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPrimitiveTopologyEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveTopologyEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetViewportWithCountEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetViewportWithCountEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetViewportWithCountEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetScissorWithCountEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetScissorWithCountEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetScissorWithCountEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdBindVertexBuffers2EXT"))
     {
-        return (void*)dynCheck_entry_vkCmdBindVertexBuffers2EXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdBindVertexBuffers2EXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetDepthTestEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDepthTestEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthTestEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDepthWriteEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthWriteEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetDepthCompareOpEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDepthCompareOpEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthCompareOpEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthBoundsTestEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetStencilTestEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetStencilTestEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilTestEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetStencilOpEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetStencilOpEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilOpEXT : nullptr;
     }
 #endif
 #ifdef VK_NV_device_generated_commands
@@ -15348,15 +13668,18 @@
     }
     if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV"))
     {
-        return (void*)dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdPreprocessGeneratedCommandsNV : nullptr;
     }
     if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV"))
     {
-        return (void*)dynCheck_entry_vkCmdExecuteGeneratedCommandsNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdExecuteGeneratedCommandsNV : nullptr;
     }
     if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV"))
     {
-        return (void*)dynCheck_entry_vkCmdBindPipelineShaderGroupNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdBindPipelineShaderGroupNV : nullptr;
     }
     if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV"))
     {
@@ -15400,7 +13723,8 @@
 #ifdef VK_NV_fragment_shading_rate_enums
     if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV"))
     {
-        return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_fragment_shading_rate_enums");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
     }
 #endif
 #ifdef VK_NV_acquire_winrt_display
@@ -15430,7 +13754,8 @@
 #ifdef VK_EXT_vertex_input_dynamic_state
     if (!strcmp(name, "vkCmdSetVertexInputEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetVertexInputEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_vertex_input_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetVertexInputEXT : nullptr;
     }
 #endif
 #ifdef VK_FUCHSIA_external_memory
@@ -15482,13 +13807,15 @@
     }
     if (!strcmp(name, "vkCmdSubpassShadingHUAWEI"))
     {
-        return (void*)dynCheck_entry_vkCmdSubpassShadingHUAWEI;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_subpass_shading");
+        return hasExt ? (void*)entry_vkCmdSubpassShadingHUAWEI : nullptr;
     }
 #endif
 #ifdef VK_HUAWEI_invocation_mask
     if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI"))
     {
-        return (void*)dynCheck_entry_vkCmdBindInvocationMaskHUAWEI;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_HUAWEI_invocation_mask");
+        return hasExt ? (void*)entry_vkCmdBindInvocationMaskHUAWEI : nullptr;
     }
 #endif
 #ifdef VK_NV_external_memory_rdma
@@ -15500,23 +13827,28 @@
 #ifdef VK_EXT_extended_dynamic_state2
     if (!strcmp(name, "vkCmdSetPatchControlPointsEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPatchControlPointsEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPatchControlPointsEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetRasterizerDiscardEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetDepthBiasEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetDepthBiasEnableEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetLogicOpEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetLogicOpEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetLogicOpEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state2");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveRestartEnableEXT : nullptr;
     }
 #endif
 #ifdef VK_QNX_screen_surface
@@ -15534,7 +13866,8 @@
 #ifdef VK_EXT_color_write_enable
     if (!strcmp(name, "vkCmdSetColorWriteEnableEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdSetColorWriteEnableEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_color_write_enable");
+        return hasExt ? (void*)entry_vkCmdSetColorWriteEnableEXT : nullptr;
     }
 #endif
 #ifdef VK_GOOGLE_gfxstream
@@ -15556,19 +13889,23 @@
     }
     if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
     {
-        return (void*)dynCheck_entry_vkBeginCommandBufferAsyncGOOGLE;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
     {
-        return (void*)dynCheck_entry_vkEndCommandBufferAsyncGOOGLE;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
     {
-        return (void*)dynCheck_entry_vkResetCommandBufferAsyncGOOGLE;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
     {
-        return (void*)dynCheck_entry_vkCommandBufferHostSyncGOOGLE;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
     {
@@ -15637,11 +13974,13 @@
 #ifdef VK_EXT_multi_draw
     if (!strcmp(name, "vkCmdDrawMultiEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawMultiEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiEXT : nullptr;
     }
     if (!strcmp(name, "vkCmdDrawMultiIndexedEXT"))
     {
-        return (void*)dynCheck_entry_vkCmdDrawMultiIndexedEXT;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_multi_draw");
+        return hasExt ? (void*)entry_vkCmdDrawMultiIndexedEXT : nullptr;
     }
 #endif
 #ifdef VK_EXT_pageable_device_local_memory
@@ -15661,11 +14000,13 @@
     }
     if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresIndirectKHR : nullptr;
     }
     if (!strcmp(name, "vkBuildAccelerationStructuresKHR"))
     {
@@ -15689,15 +14030,18 @@
     }
     if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureToMemoryKHR : nullptr;
     }
     if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyMemoryToAccelerationStructureKHR : nullptr;
     }
     if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR"))
     {
@@ -15705,7 +14049,8 @@
     }
     if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesKHR : nullptr;
     }
     if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR"))
     {
@@ -15719,7 +14064,8 @@
 #ifdef VK_KHR_ray_tracing_pipeline
     if (!strcmp(name, "vkCmdTraceRaysKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdTraceRaysKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysKHR : nullptr;
     }
     if (!strcmp(name, "vkCreateRayTracingPipelinesKHR"))
     {
@@ -15731,7 +14077,8 @@
     }
     if (!strcmp(name, "vkCmdTraceRaysIndirectKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdTraceRaysIndirectKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysIndirectKHR : nullptr;
     }
     if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR"))
     {
@@ -15739,7 +14086,8 @@
     }
     if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR"))
     {
-        return (void*)dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR;
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdSetRayTracingPipelineStackSizeKHR : nullptr;
     }
 #endif
     return nullptr;