diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-05-15 15:09:35 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-17 19:47:02 -0600 |
| commit | eddcf1d2462c477f2b1004333adb459d0c2554ce (patch) | |
| tree | 9ab140682db7e8f54271de28d401915c28bbe2e6 /loader/loader.h | |
| parent | d8107d14e2619740c5ca276ce8fe06cf584b2d9b (diff) | |
| download | usermoji-eddcf1d2462c477f2b1004333adb459d0c2554ce.tar.xz | |
misc: Loader and Layers move device chain activation to CreateDevice
Diffstat (limited to 'loader/loader.h')
| -rw-r--r-- | loader/loader.h | 66 |
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 */ |
