Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ba8bc8d authored by Jesse Hall's avatar Jesse Hall
Browse files

vulkan: Update from version 0.209.0 to 0.210.0

Change-Id: Ic5791cf1193de1e5d2ce355d9dcc4450b0def85a
(cherry picked from commit 5fa30181e473f9055884404545e7345c75440e64)
parent f4ab2b18
Loading
Loading
Loading
Loading
+31 −22
Original line number Original line Diff line number Diff line
@@ -27,7 +27,7 @@ import platform "platform.api"


// API version (major.minor.patch)
// API version (major.minor.patch)
define VERSION_MAJOR 0
define VERSION_MAJOR 0
define VERSION_MINOR 209
define VERSION_MINOR 210
define VERSION_PATCH 0
define VERSION_PATCH 0


// API limits
// API limits
@@ -57,7 +57,7 @@ define NULL_HANDLE 0
@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NUMBER             3
@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NUMBER             3
@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME               "VK_KHR_display"
@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME               "VK_KHR_display"


@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_REVISION         8
@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_REVISION         9
@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_display_swapchain"
@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_display_swapchain"


@@ -630,8 +630,7 @@ enum VkStructureType {
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR           = 0xc0000c01,
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR           = 0xc0000c01,


    //@extension("VK_KHR_display_swapchain")
    //@extension("VK_KHR_display_swapchain")
    VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR         = 0xc0001000,
    VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR          = 0xc0001000,
    VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR          = 0xc0001001,
}
}


enum VkSubpassContents {
enum VkSubpassContents {
@@ -673,7 +672,7 @@ enum VkResult {
    VK_ERROR_OUT_OF_DATE_KHR                                = 0xC0000804,
    VK_ERROR_OUT_OF_DATE_KHR                                = 0xC0000804,


    //@extension("VK_KHR_display_swapchain")
    //@extension("VK_KHR_display_swapchain")
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR                       = 0xC0001002,
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR                       = 0xC0001001,


    //@extension("VK_KHR_android_surface")
    //@extension("VK_KHR_android_surface")
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR                       = 0xC0002400,
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR                       = 0xC0002400,
@@ -1148,13 +1147,13 @@ type VkFlags VkSurfaceTransformFlagsKHR
@extension("VK_KHR_swapchain")
@extension("VK_KHR_swapchain")
bitfield VkSurfaceTransformFlagBitsKHR {
bitfield VkSurfaceTransformFlagBitsKHR {
    VK_SURFACE_TRANSFORM_NONE_BIT_KHR                           = 0x00000001,
    VK_SURFACE_TRANSFORM_NONE_BIT_KHR                           = 0x00000001,
    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR                      = 0x00000002,
    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                      = 0x00000002,
    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR                     = 0x00000004,
    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                     = 0x00000004,
    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR                     = 0x00000008,
    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                     = 0x00000008,
    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR                    = 0x00000010,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR              = 0x00000010,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR              = 0x00000020,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR    = 0x00000020,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR             = 0x00000040,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR   = 0x00000040,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR             = 0x00000080,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR   = 0x00000080,
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                        = 0x00000100,
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                        = 0x00000100,
}
}


@@ -1190,6 +1189,12 @@ type VkFlags VkDisplaySurfaceCreateFlagsKHR
//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
//}
//}


@extension("VK_KHR_display")
type VkFlags VkDisplayModeCreateFlagsKHR
//@extension("VK_KHR_display")
//bitfield VkDisplayModeCreateFlagBitsKHR {
//}



//////////////////
//////////////////
//  Structures  //
//  Structures  //
@@ -2366,6 +2371,7 @@ class VkDisplayModePropertiesKHR {
class VkDisplayModeCreateInfoKHR {
class VkDisplayModeCreateInfoKHR {
    VkStructureType                             sType
    VkStructureType                             sType
    const void*                                 pNext
    const void*                                 pNext
    VkDisplayModeCreateFlagsKHR                 flags
    VkDisplayModeParametersKHR                  parameters
    VkDisplayModeParametersKHR                  parameters
}
}


@@ -2402,13 +2408,6 @@ class VkDisplaySurfaceCreateInfoKHR {
    VkExtent2D                                  imageExtent
    VkExtent2D                                  imageExtent
}
}


@extension("VK_KHR_display_swapchain")
class VkDisplaySwapchainCreateInfoKHR {
    VkStructureType                             sType
    const void*                                 pNext
    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo
}

@extension("VK_KHR_display_swapchain")
@extension("VK_KHR_display_swapchain")
class VkDisplayPresentInfoKHR {
class VkDisplayPresentInfoKHR {
    VkStructureType                             sType
    VkStructureType                             sType
@@ -4813,7 +4812,7 @@ cmd VkResult vkCreateDisplayModeKHR(
@extension("VK_KHR_display")
@extension("VK_KHR_display")
cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
        VkPhysicalDevice                        physicalDevice,
        VkPhysicalDevice                        physicalDevice,
        VkDisplayModeCreateInfoKHR              mode,
        VkDisplayModeKHR                        mode,
        u32                                     planeIndex,
        u32                                     planeIndex,
        VkDisplayPlaneCapabilitiesKHR*          pCapabilities) {
        VkDisplayPlaneCapabilitiesKHR*          pCapabilities) {
    physicalDeviceObject := GetPhysicalDevice(physicalDevice)
    physicalDeviceObject := GetPhysicalDevice(physicalDevice)
@@ -4829,6 +4828,16 @@ cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
    return ?
    return ?
}
}


@extension("VK_KHR_display_swapchain")
cmd VkResult vkCreateSharedSwapchainsKHR(
        VkDevice                                device,
        u32                                     swapchainCount,
        const VkSwapchainCreateInfoKHR*         pCreateInfos,
        const VkAllocationCallbacks*            pAllocator,
        VkSwapchainKHR*                         pSwapchains) {
    return ?
}

@extension("VK_KHR_xlib_surface")
@extension("VK_KHR_xlib_surface")
cmd VkResult vkCreateXlibSurfaceKHR(
cmd VkResult vkCreateXlibSurfaceKHR(
        VkInstance                              instance,
        VkInstance                              instance,
+25 −20
Original line number Original line Diff line number Diff line
@@ -41,7 +41,7 @@ extern "C" {
    ((major << 22) | (minor << 12) | patch)
    ((major << 22) | (minor << 12) | patch)


// Vulkan API version supported by this file
// Vulkan API version supported by this file
#define VK_API_VERSION VK_MAKE_VERSION(0, 209, 0)
#define VK_API_VERSION VK_MAKE_VERSION(0, 210, 0)




#define VK_NULL_HANDLE 0
#define VK_NULL_HANDLE 0
@@ -128,7 +128,7 @@ typedef enum VkResult {
    VK_ERROR_SURFACE_LOST_KHR = 0xC0000400,
    VK_ERROR_SURFACE_LOST_KHR = 0xC0000400,
    VK_SUBOPTIMAL_KHR = 0x40000403,
    VK_SUBOPTIMAL_KHR = 0x40000403,
    VK_ERROR_OUT_OF_DATE_KHR = 0xC0000804,
    VK_ERROR_OUT_OF_DATE_KHR = 0xC0000804,
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC0001002,
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC0001001,
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC0002400,
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC0002400,
    VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
    VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
    VK_RESULT_END_RANGE = VK_INCOMPLETE,
    VK_RESULT_END_RANGE = VK_INCOMPLETE,
@@ -189,8 +189,7 @@ typedef enum VkStructureType {
    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 0xC0000801,
    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 0xC0000801,
    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 0xC0000C00,
    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 0xC0000C00,
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 0xC0000C01,
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 0xC0000C01,
    VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR = 0xC0001000,
    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 0xC0001000,
    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 0xC0001001,
    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
@@ -3123,13 +3122,13 @@ typedef enum VkPresentModeKHR {


typedef enum VkSurfaceTransformFlagBitsKHR {
typedef enum VkSurfaceTransformFlagBitsKHR {
    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
} VkSurfaceTransformFlagBitsKHR;
} VkSurfaceTransformFlagBitsKHR;
typedef VkFlags VkSurfaceTransformFlagsKHR;
typedef VkFlags VkSurfaceTransformFlagsKHR;
@@ -3291,6 +3290,7 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
} VkDisplayPlaneAlphaFlagBitsKHR;
} VkDisplayPlaneAlphaFlagBitsKHR;
typedef VkFlags VkDisplayModeCreateFlagsKHR;
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;


@@ -3317,6 +3317,7 @@ typedef struct VkDisplayModePropertiesKHR {
typedef struct VkDisplayModeCreateInfoKHR {
typedef struct VkDisplayModeCreateInfoKHR {
    VkStructureType                             sType;
    VkStructureType                             sType;
    const void*                                 pNext;
    const void*                                 pNext;
    VkDisplayModeCreateFlagsKHR                 flags;
    VkDisplayModeParametersKHR                  parameters;
    VkDisplayModeParametersKHR                  parameters;
} VkDisplayModeCreateInfoKHR;
} VkDisplayModeCreateInfoKHR;


@@ -3356,7 +3357,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(V
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);


#ifdef VK_PROTOTYPES
#ifdef VK_PROTOTYPES
@@ -3390,7 +3391,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(


VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
    VkPhysicalDevice                            physicalDevice,
    VkPhysicalDevice                            physicalDevice,
    VkDisplayModeCreateInfoKHR                  mode,
    VkDisplayModeKHR                            mode,
    uint32_t                                    planeIndex,
    uint32_t                                    planeIndex,
    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);


@@ -3402,16 +3403,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
#endif
#endif


#define VK_KHR_display_swapchain 1
#define VK_KHR_display_swapchain 1
#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 8
#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 9
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"


typedef struct VkDisplaySwapchainCreateInfoKHR {
    VkStructureType                             sType;
    const void*                                 pNext;
    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
} VkDisplaySwapchainCreateInfoKHR;

typedef struct VkDisplayPresentInfoKHR {
typedef struct VkDisplayPresentInfoKHR {
    VkStructureType                             sType;
    VkStructureType                             sType;
    const void*                                 pNext;
    const void*                                 pNext;
@@ -3421,6 +3416,16 @@ typedef struct VkDisplayPresentInfoKHR {
} VkDisplayPresentInfoKHR;
} VkDisplayPresentInfoKHR;




typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);

#ifdef VK_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
    VkDevice                                    device,
    uint32_t                                    swapchainCount,
    const VkSwapchainCreateInfoKHR*             pCreateInfos,
    const VkAllocationCallbacks*                pAllocator,
    VkSwapchainKHR*                             pSwapchains);
#endif


#ifdef VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_USE_PLATFORM_XLIB_KHR
#define VK_KHR_xlib_surface 1
#define VK_KHR_xlib_surface 1
+14 −1
Original line number Original line Diff line number Diff line
@@ -216,9 +216,22 @@ bool LoadDeviceVtbl(VkDevice device,
        ALOGE("missing device proc: %s", "vkGetDeviceProcAddr");
        ALOGE("missing device proc: %s", "vkGetDeviceProcAddr");
        success = false;
        success = false;
    }
    }
    {{range $f := AllCommands $}}
      {{if and (eq (Macro "Vtbl" $f) "Device") (not (eq (Macro "FunctionName" $f) "vkGetDeviceProcAddr"))}}
        {{if not (GetAnnotation $f "extension")}}
    vtbl.{{TrimPrefix "vk" (Macro "FunctionName" $f)}} = §
        reinterpret_cast<{{Macro "FunctionPtrName" $f}}>(§
            get_proc_addr(device, "{{Macro "FunctionName" $f}}"));
    if (UNLIKELY(!vtbl.{{TrimPrefix "vk" (Macro "FunctionName" $f)}})) {
        ALOGE("missing device proc: %s", "{{Macro "FunctionName" $f}}");
        success = false;
    }
        {{end}}
      {{end}}
    {{end}}
    {{range $f := AllCommands $}}
    {{range $f := AllCommands $}}
      {{if eq (Macro "Vtbl" $f) "Device"}}
      {{if eq (Macro "Vtbl" $f) "Device"}}
        {{if not (eq (Macro "FunctionName" $f) "vkGetDeviceProcAddr")}}
        {{if and (GetAnnotation $f "extension") (Macro "IsDispatched" $f)}}
    vtbl.{{TrimPrefix "vk" (Macro "FunctionName" $f)}} = §
    vtbl.{{TrimPrefix "vk" (Macro "FunctionName" $f)}} = §
        reinterpret_cast<{{Macro "FunctionPtrName" $f}}>(§
        reinterpret_cast<{{Macro "FunctionPtrName" $f}}>(§
            get_proc_addr(device, "{{Macro "FunctionName" $f}}"));
            get_proc_addr(device, "{{Macro "FunctionName" $f}}"));