Commit dc85364a by Nicolas Capens Committed by Nicolas Capens

Fix entry function pointer queries.

vkGetInstanceProcAddr must return NULL when the instance parameter is NULL, except for a few global functions. vkGetDeviceProcAddr must return NULL for any non-device-level functions. Fixes dEQP-VK.api.version_check.entry_points Bug b/116336664 Change-Id: I446edb0b8c4b94938e0ab77913c8ad391d490f4f Reviewed-on: https://swiftshader-review.googlesource.com/c/22688Tested-by: 's avatarNicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com>
parent 318d5e03
......@@ -19,7 +19,8 @@
namespace vk
{
PFN_vkVoidFunction GetProcAddr(const char* pName);
PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
}
#endif // VK_UTILS_HPP_
\ No newline at end of file
......@@ -45,7 +45,9 @@ extern "C"
{
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName)
{
return vk::GetProcAddr(pName);
TRACE("(VkInstance instance = 0x%X, const char* pName = 0x%X)", instance, pName);
return vk::GetInstanceProcAddr(instance, pName);
}
VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance)
......@@ -186,13 +188,15 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char* pName)
{
TRACE("(VkInstance instance = 0x%X, const char* pName = 0x%X)", instance, pName);
return vk::GetProcAddr(pName);
return vk::GetInstanceProcAddr(instance, pName);
}
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(VkDevice device, const char* pName)
{
TRACE("(VkDevice device = 0x%X, const char* pName = 0x%X)", device, pName);
return vk::GetProcAddr(pName);
return vk::GetDeviceProcAddr(device, pName);
}
VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment