diff --git a/vulkan/libvulkan/entry.cpp b/vulkan/libvulkan/entry.cpp
index 7bfaaf2..f2b4482 100644
--- a/vulkan/libvulkan/entry.cpp
+++ b/vulkan/libvulkan/entry.cpp
@@ -578,7 +578,7 @@
 
 __attribute__((visibility("default")))
 VkResult vkCreateCommandBuffer(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer) {
-    return GetVtbl(device).CreateCommandBuffer(device, pCreateInfo, pCmdBuffer);
+    return vulkan::CreateCommandBuffer(device, pCreateInfo, pCmdBuffer);
 }
 
 __attribute__((visibility("default")))
diff --git a/vulkan/libvulkan/entry.cpp.tmpl b/vulkan/libvulkan/entry.cpp.tmpl
index 249f8fd..3eabe2e 100644
--- a/vulkan/libvulkan/entry.cpp.tmpl
+++ b/vulkan/libvulkan/entry.cpp.tmpl
@@ -73,7 +73,7 @@
 */}}
 {{define "IsSpecialEntry"}}
   {{/* TODO: figure out how to do this in a cleaner or at least multi-line way */}}
-  {{if or (eq $ "vkGetInstanceProcAddr") (or (eq $ "vkGetDeviceProcAddr") (or (eq $ "vkGetDeviceQueue") (eq $ "vkDestroyDevice")))}}
+  {{if or (eq $ "vkGetInstanceProcAddr") (or (eq $ "vkGetDeviceProcAddr") (or (eq $ "vkGetDeviceQueue") (or (eq $ "vkCreateCommandBuffer") (eq $ "vkDestroyDevice"))))}}
     true
   {{end}}
 {{end}}
diff --git a/vulkan/libvulkan/loader.cpp b/vulkan/libvulkan/loader.cpp
index a99e90a..19ca9f2 100644
--- a/vulkan/libvulkan/loader.cpp
+++ b/vulkan/libvulkan/loader.cpp
@@ -494,6 +494,7 @@
         return GetGlobalDeviceProcAddr(name);
     // For special-case functions we always return the loader entry
     if (strcmp(name, "vkGetDeviceQueue") == 0 ||
+        strcmp(name, "vkCreateCommandBuffer") == 0 ||
         strcmp(name, "vkDestroyDevice") == 0) {
         return GetGlobalDeviceProcAddr(name);
     }
@@ -521,6 +522,27 @@
     return VK_SUCCESS;
 }
 
+VkResult CreateCommandBuffer(VkDevice drv_device,
+                             const VkCmdBufferCreateInfo* create_info,
+                             VkCmdBuffer* out_cmdbuf) {
+    const DeviceVtbl* vtbl = GetVtbl(drv_device);
+    VkCmdBuffer cmdbuf;
+    VkResult result =
+        vtbl->CreateCommandBuffer(drv_device, create_info, &cmdbuf);
+    if (result != VK_SUCCESS)
+        return result;
+    hwvulkan_dispatch_t* dispatch =
+        reinterpret_cast<hwvulkan_dispatch_t*>(cmdbuf);
+    if (dispatch->magic != HWVULKAN_DISPATCH_MAGIC) {
+        ALOGE("invalid VkCmdBuffer dispatch magic: 0x%" PRIxPTR,
+              dispatch->magic);
+        return VK_ERROR_INITIALIZATION_FAILED;
+    }
+    dispatch->vtbl = vtbl;
+    *out_cmdbuf = cmdbuf;
+    return VK_SUCCESS;
+}
+
 VkResult DestroyDevice(VkDevice drv_device) {
     const DeviceVtbl* vtbl = GetVtbl(drv_device);
     Device* device = static_cast<Device*>(vtbl->device);
diff --git a/vulkan/libvulkan/loader.h b/vulkan/libvulkan/loader.h
index 1f6a1d4..fad92a7 100644
--- a/vulkan/libvulkan/loader.h
+++ b/vulkan/libvulkan/loader.h
@@ -187,6 +187,9 @@
                         uint32_t family,
                         uint32_t index,
                         VkQueue* out_queue);
+VkResult CreateCommandBuffer(VkDevice device,
+                             const VkCmdBufferCreateInfo* create_info,
+                             VkCmdBuffer* out_cmdbuf);
 VkResult DestroyDevice(VkDevice drv_device);
 
 // -----------------------------------------------------------------------------
