loader: Update the loader to 1.0.39
Add new extensions for 1.0.39. Also, updated layers to include minimal set of functionality for 1.0.39 extensions. Extensions include: - VK_KHR_get_physical_device_properties2 - VK_KHR_shader_draw_parameters - VK_EXT_direct_mode_display - VK_EXT_display_surface_counter - VK_EXT_display_control Also, redo the LoaderAndLayerIf document. Change-Id: I10412086da7a798afe832a3892e18f606259b5af
This commit is contained in:
parent
3c68429b63
commit
f4a6605fcc
@ -35,6 +35,41 @@
|
|||||||
#define VK_LAYER_EXPORT
|
#define VK_LAYER_EXPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_NUM_UNKNOWN_EXTS 250
|
||||||
|
|
||||||
|
// Loader-Layer version negotiation API. Versions add the following features:
|
||||||
|
// Versions 0/1 - Initial. Doesn't support vk_layerGetPhysicalDeviceProcAddr
|
||||||
|
// or vk_icdNegotiateLoaderLayerInterfaceVersion.
|
||||||
|
// Version 2 - Add support for vk_layerGetPhysicalDeviceProcAddr and
|
||||||
|
// vk_icdNegotiateLoaderLayerInterfaceVersion.
|
||||||
|
#define CURRENT_LOADER_LAYER_INTERFACE_VERSION 2
|
||||||
|
#define MIN_SUPPORTED_LOADER_LAYER_INTERFACE_VERSION 1
|
||||||
|
|
||||||
|
// Internal function
|
||||||
|
typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName);
|
||||||
|
|
||||||
|
// Version negotiation values
|
||||||
|
typedef enum VkNegotiateLayerStructType {
|
||||||
|
LAYER_NEGOTIATE_UNINTIALIZED = 0,
|
||||||
|
LAYER_NEGOTIATE_INTERFACE_STRUCT = 1,
|
||||||
|
} VkNegotiateLayerStructType;
|
||||||
|
|
||||||
|
// Version negotiation structures
|
||||||
|
typedef struct VkNegotiateLayerInterface {
|
||||||
|
VkNegotiateLayerStructType sType;
|
||||||
|
void *pNext;
|
||||||
|
uint32_t loaderLayerInterfaceVersion;
|
||||||
|
PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr;
|
||||||
|
PFN_vkGetDeviceProcAddr pfnGetDeviceProcAddr;
|
||||||
|
PFN_GetPhysicalDeviceProcAddr pfnGetPhysicalDeviceProcAddr;
|
||||||
|
} VkNegotiateLayerInterface;
|
||||||
|
|
||||||
|
// Version negotiation functions
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderLayerInterfaceVersion)(VkNegotiateLayerInterface *pVersionStruct);
|
||||||
|
|
||||||
|
// Function prototype for unknown physical device extension command
|
||||||
|
typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device, ...);
|
||||||
|
|
||||||
typedef struct VkLayerDispatchTable_ {
|
typedef struct VkLayerDispatchTable_ {
|
||||||
PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
|
PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
|
||||||
PFN_vkDestroyDevice DestroyDevice;
|
PFN_vkDestroyDevice DestroyDevice;
|
||||||
@ -173,6 +208,14 @@ typedef struct VkLayerDispatchTable_ {
|
|||||||
PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
|
PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
|
||||||
PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
|
PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
|
||||||
PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
|
PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
|
||||||
|
// KHR_maintenance1
|
||||||
|
PFN_vkTrimCommandPoolKHR TrimCommandPoolKHR;
|
||||||
|
// EXT_display_control
|
||||||
|
PFN_vkDisplayPowerControlEXT DisplayPowerControlEXT;
|
||||||
|
PFN_vkRegisterDeviceEventEXT RegisterDeviceEventEXT;
|
||||||
|
PFN_vkRegisterDisplayEventEXT RegisterDisplayEventEXT;
|
||||||
|
PFN_vkGetSwapchainCounterEXT GetSwapchainCounterEXT;
|
||||||
|
// NVX_device_generated_commands
|
||||||
PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
|
PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
|
||||||
PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
|
PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
|
||||||
PFN_vkCreateIndirectCommandsLayoutNVX CreateIndirectCommandsLayoutNVX;
|
PFN_vkCreateIndirectCommandsLayoutNVX CreateIndirectCommandsLayoutNVX;
|
||||||
@ -185,6 +228,7 @@ typedef struct VkLayerDispatchTable_ {
|
|||||||
|
|
||||||
typedef struct VkLayerInstanceDispatchTable_ {
|
typedef struct VkLayerInstanceDispatchTable_ {
|
||||||
PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
|
PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
|
||||||
|
PFN_GetPhysicalDeviceProcAddr GetPhysicalDeviceProcAddr;
|
||||||
PFN_vkDestroyInstance DestroyInstance;
|
PFN_vkDestroyInstance DestroyInstance;
|
||||||
PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
|
PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
|
||||||
PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
|
PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
|
||||||
@ -206,9 +250,6 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||||||
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
|
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
|
||||||
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR
|
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR
|
||||||
GetPhysicalDeviceSurfacePresentModesKHR;
|
GetPhysicalDeviceSurfacePresentModesKHR;
|
||||||
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
|
|
||||||
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
|
|
||||||
PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
|
|
||||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||||
PFN_vkCreateMirSurfaceKHR CreateMirSurfaceKHR;
|
PFN_vkCreateMirSurfaceKHR CreateMirSurfaceKHR;
|
||||||
PFN_vkGetPhysicalDeviceMirPresentationSupportKHR
|
PFN_vkGetPhysicalDeviceMirPresentationSupportKHR
|
||||||
@ -251,8 +292,37 @@ typedef struct VkLayerInstanceDispatchTable_ {
|
|||||||
GetDisplayPlaneCapabilitiesKHR;
|
GetDisplayPlaneCapabilitiesKHR;
|
||||||
PFN_vkCreateDisplayPlaneSurfaceKHR
|
PFN_vkCreateDisplayPlaneSurfaceKHR
|
||||||
CreateDisplayPlaneSurfaceKHR;
|
CreateDisplayPlaneSurfaceKHR;
|
||||||
|
// KHR_get_physical_device_properties2
|
||||||
|
PFN_vkGetPhysicalDeviceFeatures2KHR GetPhysicalDeviceFeatures2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceProperties2KHR GetPhysicalDeviceProperties2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceFormatProperties2KHR
|
||||||
|
GetPhysicalDeviceFormatProperties2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceImageFormatProperties2KHR
|
||||||
|
GetPhysicalDeviceImageFormatProperties2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR
|
||||||
|
GetPhysicalDeviceQueueFamilyProperties2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceMemoryProperties2KHR
|
||||||
|
GetPhysicalDeviceMemoryProperties2KHR;
|
||||||
|
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
|
||||||
|
GetPhysicalDeviceSparseImageFormatProperties2KHR;
|
||||||
|
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||||
|
// EXT_acquire_xlib_display
|
||||||
|
PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
|
||||||
|
PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
|
||||||
|
#endif
|
||||||
|
// EXT_debug_report
|
||||||
|
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
|
||||||
|
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
|
||||||
|
PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
|
||||||
|
// EXT_direct_mode_display
|
||||||
|
PFN_vkReleaseDisplayEXT ReleaseDisplayEXT;
|
||||||
|
// EXT_display_surface_counter
|
||||||
|
PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT
|
||||||
|
GetPhysicalDeviceSurfaceCapabilities2EXT;
|
||||||
|
// NV_external_memory_capabilities
|
||||||
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
|
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
|
||||||
GetPhysicalDeviceExternalImageFormatPropertiesNV;
|
GetPhysicalDeviceExternalImageFormatPropertiesNV;
|
||||||
|
// NVX_device_generated_commands (phys dev commands)
|
||||||
PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
|
PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
|
||||||
GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
|
GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
|
||||||
} VkLayerInstanceDispatchTable;
|
} VkLayerInstanceDispatchTable;
|
||||||
@ -273,6 +343,7 @@ typedef enum VkLayerFunction_ {
|
|||||||
typedef struct VkLayerInstanceLink_ {
|
typedef struct VkLayerInstanceLink_ {
|
||||||
struct VkLayerInstanceLink_ *pNext;
|
struct VkLayerInstanceLink_ *pNext;
|
||||||
PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
|
PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
|
||||||
|
PFN_GetPhysicalDeviceProcAddr pfnNextGetPhysicalDeviceProcAddr;
|
||||||
} VkLayerInstanceLink;
|
} VkLayerInstanceLink;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user