From d0ef28783b42235f9a53a5d4a3840a69a14a34e8 Mon Sep 17 00:00:00 2001 From: Eduardo Lima Mitev Date: Thu, 10 Nov 2016 10:45:33 +0100 Subject: [PATCH] common: Makes vk-api assume a Vulkan loader is being used --- common/vk-api.c | 7 ++++++- common/vk-api.h | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/common/vk-api.c b/common/vk-api.c index 2797291..d99ee37 100644 --- a/common/vk-api.c +++ b/common/vk-api.c @@ -17,7 +17,12 @@ void vk_api_load_from_icd (struct vk_api* vk) { /* load API entry points from ICD */ - GET_ICD_PROC_ADDR (*vk, GetInstanceProcAddr); + + /* if program is linked against a Vulkan loader */ + vk->GetInstanceProcAddr = vkGetInstanceProcAddr; + /* otherwise, */ + /* GET_ICD_PROC_ADDR (vk, GetInstanceProcAddr); */ + GET_PROC_ADDR (*vk, EnumerateInstanceLayerProperties); GET_PROC_ADDR (*vk, EnumerateInstanceExtensionProperties); GET_PROC_ADDR (*vk, CreateInstance); diff --git a/common/vk-api.h b/common/vk-api.h index 1848d4d..fd33fd9 100644 --- a/common/vk-api.h +++ b/common/vk-api.h @@ -14,11 +14,14 @@ #include +/* This is only necessary if program is linked to a Vulkan vendor driver\ + * directly + */ PFN_vkVoidFunction vk_icdGetInstanceProcAddr (VkInstance instance, const char* pName); - #define GET_ICD_PROC_ADDR(api, symbol) \ - (api).symbol = (PFN_vk ##symbol) vk_icdGetInstanceProcAddr(NULL, "vk" #symbol); + api.symbol = (PFN_vk ##symbol) vk_icdGetInstanceProcAddr(NULL, "vk" #symbol); + #define GET_PROC_ADDR(api, symbol) \ (api).symbol = (PFN_vk ##symbol) (api).GetInstanceProcAddr(NULL, "vk" #symbol);