Commit 53105997 by Peng Huang Committed by Commit Bot

Initialize some missing vulkan function pointers

Those methods are used by VMA. However VMA can get those methods by itself, if null function pointers are provided for creating the VMA. But it will cause problem, when ANGLE & Chromium are sharing one VMA implementation, since the VMA implementation in chromium will be built with VMA_STATIC_VULKAN_FUNCTIONS=0 & VMA_DYNAMIC_VULKAN_FUNCTIONS=0. Bug: chromium:1170339 Change-Id: I5bf435698e4e361bfa7a6afce84390ccc4355b53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2655795Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent a408ce83
......@@ -1351,14 +1351,18 @@ angle::Result RendererVk::initializeDevice(DisplayVk *displayVk, uint32_t queueF
}
// Enable VK_KHR_get_memory_requirements2, if supported
bool hasGetMemoryRequirements2KHR = false;
if (ExtensionFound(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME, deviceExtensionNames))
{
enabledDeviceExtensions.push_back(VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME);
hasGetMemoryRequirements2KHR = true;
}
// Enable VK_KHR_bind_memory2, if supported
bool hasBindMemory2KHR = false;
if (ExtensionFound(VK_KHR_BIND_MEMORY_2_EXTENSION_NAME, deviceExtensionNames))
{
hasBindMemory2KHR = true;
enabledDeviceExtensions.push_back(VK_KHR_BIND_MEMORY_2_EXTENSION_NAME);
}
......@@ -1678,6 +1682,14 @@ angle::Result RendererVk::initializeDevice(DisplayVk *displayVk, uint32_t queueF
}
#if !defined(ANGLE_SHARED_LIBVULKAN)
if (hasGetMemoryRequirements2KHR)
{
InitGetMemoryRequirements2KHRFunctions(mDevice);
}
if (hasBindMemory2KHR)
{
InitBindMemory2KHRFunctions(mDevice);
}
if (getFeatures().supportsTransformFeedbackExtension.enabled)
{
InitTransformFeedbackEXTFunctions(mDevice);
......
......@@ -905,6 +905,7 @@ void InitGetPhysicalDeviceProperties2KHRFunctions(VkInstance instance)
{
GET_INSTANCE_FUNC(vkGetPhysicalDeviceProperties2KHR);
GET_INSTANCE_FUNC(vkGetPhysicalDeviceFeatures2KHR);
GET_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR);
}
void InitTransformFeedbackEXTFunctions(VkDevice device)
......@@ -962,6 +963,20 @@ void InitExternalMemoryHostFunctions(VkInstance instance)
GET_INSTANCE_FUNC(vkGetMemoryHostPointerPropertiesEXT);
}
// VK_KHR_get_memory_requirements2
void InitGetMemoryRequirements2KHRFunctions(VkDevice device)
{
GET_DEVICE_FUNC(vkGetBufferMemoryRequirements2KHR);
GET_DEVICE_FUNC(vkGetImageMemoryRequirements2KHR);
}
// VK_KHR_bind_memory2
void InitBindMemory2KHRFunctions(VkDevice device)
{
GET_DEVICE_FUNC(vkBindBufferMemory2KHR);
GET_DEVICE_FUNC(vkBindImageMemory2KHR);
}
// VK_KHR_external_fence_capabilities
void InitExternalFenceCapabilitiesFunctions(VkInstance instance)
{
......
......@@ -910,6 +910,12 @@ void InitExternalMemoryHostFunctions(VkInstance instance);
// VK_KHR_external_fence_capabilities
void InitExternalFenceCapabilitiesFunctions(VkInstance instance);
// VK_KHR_get_memory_requirements2
void InitGetMemoryRequirements2KHRFunctions(VkDevice device);
// VK_KHR_bind_memory2
void InitBindMemory2KHRFunctions(VkDevice device);
// VK_KHR_external_fence_fd
void InitExternalFenceFdFunctions(VkInstance instance);
......
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