aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.h
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-05-15 15:09:35 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-06-17 19:47:02 -0600
commiteddcf1d2462c477f2b1004333adb459d0c2554ce (patch)
tree9ab140682db7e8f54271de28d401915c28bbe2e6 /loader/loader.h
parentd8107d14e2619740c5ca276ce8fe06cf584b2d9b (diff)
downloadusermoji-eddcf1d2462c477f2b1004333adb459d0c2554ce.tar.xz
misc: Loader and Layers move device chain activation to CreateDevice
Diffstat (limited to 'loader/loader.h')
-rw-r--r--loader/loader.h66
1 files changed, 64 insertions, 2 deletions
diff --git a/loader/loader.h b/loader/loader.h
index 40046925..54a97584 100644
--- a/loader/loader.h
+++ b/loader/loader.h
@@ -57,8 +57,34 @@ struct loader_layers {
char name[256];
};
+struct loader_icd {
+ const struct loader_scanned_icds *scanned_icds;
+
+ VkLayerDispatchTable *loader_dispatch;
+ uint32_t layer_count[MAX_GPUS_FOR_LAYER];
+ struct loader_layers layer_libs[MAX_GPUS_FOR_LAYER][MAX_LAYER_LIBRARIES];
+ VkBaseLayerObject *wrappedGpus[MAX_GPUS_FOR_LAYER];
+ uint32_t gpu_count;
+ VkBaseLayerObject *gpus;
+ VkInstance instance; // instance object from the icd
+ PFN_vkGetProcAddr GetProcAddr;
+ PFN_vkDestroyInstance DestroyInstance;
+ PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
+ PFN_vkGetPhysicalDeviceInfo GetPhysicalDeviceInfo;
+ PFN_vkCreateDevice CreateDevice;
+ PFN_vkGetPhysicalDeviceExtensionInfo GetPhysicalDeviceExtensionInfo;
+ PFN_vkEnumerateLayers EnumerateLayers;
+ PFN_vkGetMultiDeviceCompatibility GetMultiDeviceCompatibility;
+ PFN_vkDbgRegisterMsgCallback DbgRegisterMsgCallback;
+ PFN_vkDbgUnregisterMsgCallback DbgUnregisterMsgCallback;
+ PFN_vkDbgSetGlobalOption DbgSetGlobalOption;
+ PFN_vkGetDisplayInfoWSI GetDisplayInfoWSI;
+ struct loader_icd *next;
+};
+
struct loader_instance {
- VkLayerInstanceDispatchTable *disp;
+ VkLayerInstanceDispatchTable *disp; // must be first entry in structure
+
uint32_t layer_count;
struct loader_layers layer_libs[MAX_LAYER_LIBRARIES];
VkBaseLayerObject *wrappedInstance;
@@ -126,6 +152,16 @@ VkResult loader_EnumeratePhysicalDevices(
VkInstance instance,
uint32_t* pPhysicalDeviceCount,
VkPhysicalDevice* pPhysicalDevices);
+VkResult loader_GetPhysicalDeviceInfo(
+ VkPhysicalDevice gpu,
+ VkPhysicalDeviceInfoType infoType,
+ size_t* pDataSize,
+ void* pData);
+
+VkResult loader_CreateDevice(
+ VkPhysicalDevice gpu,
+ const VkDeviceCreateInfo* pCreateInfo,
+ VkDevice* pDevice);
VkResult VKAPI loader_GetGlobalExtensionInfo(
VkExtensionInfoType infoType,
@@ -133,6 +169,25 @@ VkResult VKAPI loader_GetGlobalExtensionInfo(
size_t* pDataSize,
void* pData);
+VkResult loader_GetPhysicalDeviceExtensionInfo(
+ VkPhysicalDevice gpu,
+ VkExtensionInfoType infoType,
+ uint32_t extensionIndex,
+ size_t* pDataSize,
+ void* pData);
+
+VkResult loader_EnumerateLayers(
+ VkPhysicalDevice gpu,
+ size_t maxStringSize,
+ size_t* pLayerCount,
+ char* const* pOutLayers,
+ void* pReserved);
+
+VkResult loader_GetMultiDeviceCompatibility(
+ VkPhysicalDevice gpu0,
+ VkPhysicalDevice gpu1,
+ VkPhysicalDeviceCompatibilityInfo* pInfo);
+
VkResult loader_DbgRegisterMsgCallback(
VkInstance instance,
VK_DBG_MSG_CALLBACK_FUNCTION pfnMsgCallback,
@@ -148,11 +203,18 @@ VkResult loader_DbgSetGlobalOption(
size_t dataSize,
const void* pData);
+VkResult loader_GetDisplayInfoWSI(
+ VkDisplayWSI display,
+ VkDisplayInfoTypeWSI infoType,
+ size_t* pDataSize,
+ void* pData);
+
/* function definitions */
bool loader_is_extension_scanned(const char *name);
void loader_icd_scan(void);
void layer_lib_scan(void);
void loader_coalesce_extensions(void);
-struct loader_icd * loader_get_icd(const VkBaseLayerObject *gpu, uint32_t *gpu_index);
+struct loader_icd * loader_get_icd(const VkBaseLayerObject *gpu,
+ uint32_t *gpu_index);
uint32_t loader_activate_instance_layers(struct loader_instance *inst);
#endif /* LOADER_H */