SDL  2.0
vk_icd.h File Reference
#include "vulkan.h"
#include <stdbool.h>
+ Include dependency graph for vk_icd.h:

Go to the source code of this file.

Data Structures

union  VK_LOADER_DATA
 
struct  VkIcdSurfaceBase
 
struct  VkIcdSurfaceDisplay
 
struct  VkIcdSurfaceHeadless
 

Macros

#define CURRENT_LOADER_ICD_INTERFACE_VERSION   6
 
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION   0
 
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION   4
 
#define ICD_LOADER_MAGIC   0x01CDC0DE
 

Typedefs

typedef VkResult(VKAPI_PTRPFN_vkNegotiateLoaderICDInterfaceVersion) (uint32_t *pVersion)
 
typedef PFN_vkVoidFunction(VKAPI_PTRPFN_GetPhysicalDeviceProcAddr) (VkInstance instance, const char *pName)
 
typedef VkResult(VKAPI_PTRPFN_vk_icdNegotiateLoaderICDInterfaceVersion) (uint32_t *pVersion)
 
typedef PFN_vkVoidFunction(VKAPI_PTRPFN_vk_icdGetInstanceProcAddr) (VkInstance instance, const char *pName)
 
typedef PFN_vkVoidFunction(VKAPI_PTRPFN_vk_icdGetPhysicalDeviceProcAddr) (VkInstance instance, const char *pName)
 

Enumerations

enum  VkIcdWsiPlatform {
  VK_ICD_WSI_PLATFORM_MIR ,
  VK_ICD_WSI_PLATFORM_WAYLAND ,
  VK_ICD_WSI_PLATFORM_WIN32 ,
  VK_ICD_WSI_PLATFORM_XCB ,
  VK_ICD_WSI_PLATFORM_XLIB ,
  VK_ICD_WSI_PLATFORM_ANDROID ,
  VK_ICD_WSI_PLATFORM_MACOS ,
  VK_ICD_WSI_PLATFORM_IOS ,
  VK_ICD_WSI_PLATFORM_DISPLAY ,
  VK_ICD_WSI_PLATFORM_HEADLESS ,
  VK_ICD_WSI_PLATFORM_METAL ,
  VK_ICD_WSI_PLATFORM_DIRECTFB ,
  VK_ICD_WSI_PLATFORM_VI
}
 

Functions

VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion (uint32_t *pVersion)
 
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr (VkInstance instance, const char *pName)
 
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr (VkInstance isntance, const char *pName)
 
static void set_loader_magic_value (void *pNewObject)
 
static bool valid_loader_magic_value (void *pNewObject)
 

Macro Definition Documentation

◆ CURRENT_LOADER_ICD_INTERFACE_VERSION

#define CURRENT_LOADER_ICD_INTERFACE_VERSION   6

Definition at line 45 of file vk_icd.h.

◆ ICD_LOADER_MAGIC

#define ICD_LOADER_MAGIC   0x01CDC0DE

Definition at line 89 of file vk_icd.h.

◆ MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION

#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION   4

Definition at line 47 of file vk_icd.h.

◆ MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION

#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION   0

Definition at line 46 of file vk_icd.h.

Typedef Documentation

◆ PFN_GetPhysicalDeviceProcAddr

typedef PFN_vkVoidFunction(VKAPI_PTR * PFN_GetPhysicalDeviceProcAddr) (VkInstance instance, const char *pName)

Definition at line 54 of file vk_icd.h.

◆ PFN_vk_icdGetInstanceProcAddr

typedef PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetInstanceProcAddr) (VkInstance instance, const char *pName)

Definition at line 59 of file vk_icd.h.

◆ PFN_vk_icdGetPhysicalDeviceProcAddr

typedef PFN_vkVoidFunction(VKAPI_PTR * PFN_vk_icdGetPhysicalDeviceProcAddr) (VkInstance instance, const char *pName)

Definition at line 60 of file vk_icd.h.

◆ PFN_vk_icdNegotiateLoaderICDInterfaceVersion

typedef VkResult(VKAPI_PTR * PFN_vk_icdNegotiateLoaderICDInterfaceVersion) (uint32_t *pVersion)

Definition at line 58 of file vk_icd.h.

◆ PFN_vkNegotiateLoaderICDInterfaceVersion

typedef VkResult(VKAPI_PTR * PFN_vkNegotiateLoaderICDInterfaceVersion) (uint32_t *pVersion)

Definition at line 50 of file vk_icd.h.

Enumeration Type Documentation

◆ VkIcdWsiPlatform

Enumerator
VK_ICD_WSI_PLATFORM_MIR 
VK_ICD_WSI_PLATFORM_WAYLAND 
VK_ICD_WSI_PLATFORM_WIN32 
VK_ICD_WSI_PLATFORM_XCB 
VK_ICD_WSI_PLATFORM_XLIB 
VK_ICD_WSI_PLATFORM_ANDROID 
VK_ICD_WSI_PLATFORM_MACOS 
VK_ICD_WSI_PLATFORM_IOS 
VK_ICD_WSI_PLATFORM_DISPLAY 
VK_ICD_WSI_PLATFORM_HEADLESS 
VK_ICD_WSI_PLATFORM_METAL 
VK_ICD_WSI_PLATFORM_DIRECTFB 
VK_ICD_WSI_PLATFORM_VI 

Definition at line 110 of file vk_icd.h.

110  {
VkIcdWsiPlatform
Definition: vk_icd.h:110
@ VK_ICD_WSI_PLATFORM_HEADLESS
Definition: vk_icd.h:120
@ VK_ICD_WSI_PLATFORM_METAL
Definition: vk_icd.h:121
@ VK_ICD_WSI_PLATFORM_MACOS
Definition: vk_icd.h:117
@ VK_ICD_WSI_PLATFORM_DISPLAY
Definition: vk_icd.h:119
@ VK_ICD_WSI_PLATFORM_WAYLAND
Definition: vk_icd.h:112
@ VK_ICD_WSI_PLATFORM_DIRECTFB
Definition: vk_icd.h:122
@ VK_ICD_WSI_PLATFORM_XCB
Definition: vk_icd.h:114
@ VK_ICD_WSI_PLATFORM_XLIB
Definition: vk_icd.h:115
@ VK_ICD_WSI_PLATFORM_WIN32
Definition: vk_icd.h:113
@ VK_ICD_WSI_PLATFORM_MIR
Definition: vk_icd.h:111
@ VK_ICD_WSI_PLATFORM_VI
Definition: vk_icd.h:123
@ VK_ICD_WSI_PLATFORM_IOS
Definition: vk_icd.h:118
@ VK_ICD_WSI_PLATFORM_ANDROID
Definition: vk_icd.h:116

Function Documentation

◆ set_loader_magic_value()

static void set_loader_magic_value ( void pNewObject)
inlinestatic

Definition at line 96 of file vk_icd.h.

96  {
97  VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
98  loader_info->loaderMagic = ICD_LOADER_MAGIC;
99 }
uintptr_t loaderMagic
Definition: vk_icd.h:92
#define ICD_LOADER_MAGIC
Definition: vk_icd.h:89

References ICD_LOADER_MAGIC, and VK_LOADER_DATA::loaderMagic.

◆ valid_loader_magic_value()

static bool valid_loader_magic_value ( void pNewObject)
inlinestatic

Definition at line 101 of file vk_icd.h.

101  {
102  const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
103  return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC;
104 }

References ICD_LOADER_MAGIC, and VK_LOADER_DATA::loaderMagic.

◆ vk_icdGetInstanceProcAddr()

VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr ( VkInstance  instance,
const char *  pName 
)

◆ vk_icdGetPhysicalDeviceProcAddr()

VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr ( VkInstance  isntance,
const char *  pName 
)

◆ vk_icdNegotiateLoaderICDInterfaceVersion()

VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion ( uint32_t pVersion)