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
 

Macros

#define CURRENT_LOADER_ICD_INTERFACE_VERSION   5
 
#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)
 

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
}
 

Functions

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   5

Definition at line 44 of file vk_icd.h.

◆ ICD_LOADER_MAGIC

#define ICD_LOADER_MAGIC   0x01CDC0DE

Definition at line 61 of file vk_icd.h.

Referenced by set_loader_magic_value(), and valid_loader_magic_value().

◆ MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION

#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION   4

Definition at line 46 of file vk_icd.h.

◆ MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION

#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION   0

Definition at line 45 of file vk_icd.h.

Typedef Documentation

◆ PFN_GetPhysicalDeviceProcAddr

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

Definition at line 52 of file vk_icd.h.

◆ PFN_vkNegotiateLoaderICDInterfaceVersion

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

Definition at line 47 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 

Definition at line 82 of file vk_icd.h.

Function Documentation

◆ set_loader_magic_value()

static void set_loader_magic_value ( void pNewObject)
inlinestatic

Definition at line 68 of file vk_icd.h.

References ICD_LOADER_MAGIC, and VK_LOADER_DATA::loaderMagic.

68  {
69  VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
70  loader_info->loaderMagic = ICD_LOADER_MAGIC;
71 }
uintptr_t loaderMagic
Definition: vk_icd.h:64
#define ICD_LOADER_MAGIC
Definition: vk_icd.h:61

◆ valid_loader_magic_value()

static bool valid_loader_magic_value ( void pNewObject)
inlinestatic

Definition at line 73 of file vk_icd.h.

References ICD_LOADER_MAGIC, and VK_LOADER_DATA::loaderMagic.

73  {
74  const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject;
75  return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC;
76 }
uintptr_t loaderMagic
Definition: vk_icd.h:64
#define ICD_LOADER_MAGIC
Definition: vk_icd.h:61