vulkan: Add skeleton swapchain support
Loader and driver entry points exist and the call chains are hooked up
properly, but functions are just empty stubs for now.
Change-Id: I6ff95e47d1d09ebed41eda8accb71686c8249546
(cherry picked from commit 038c8a740bbda4650bec776023a26a7fcbf93864)
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index 0a15818..766abc9 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -137,6 +137,11 @@
VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
VkInstance* out_instance) {
+ // Assume the loader provided alloc callbacks even if the app didn't.
+ ALOG_ASSERT(
+ !create_info->pAllocCb,
+ "Missing alloc callbacks, loader or app should have provided them");
+
VkInstance_T* instance =
static_cast<VkInstance_T*>(create_info->pAllocCb->pfnAlloc(
create_info->pAllocCb->pUserData, sizeof(VkInstance_T),
@@ -231,7 +236,15 @@
}
PFN_vkVoidFunction GetDeviceProcAddr(VkDevice, const char* name) {
- return LookupDeviceProcAddr(name);
+ PFN_vkVoidFunction proc = LookupDeviceProcAddr(name);
+ if (proc)
+ return proc;
+ if (strcmp(name, "vkImportNativeFenceANDROID") == 0)
+ return reinterpret_cast<PFN_vkVoidFunction>(ImportNativeFenceANDROID);
+ if (strcmp(name, "vkQueueSignalNativeFenceANDROID") == 0)
+ return reinterpret_cast<PFN_vkVoidFunction>(
+ QueueSignalNativeFenceANDROID);
+ return nullptr;
}
// -----------------------------------------------------------------------------
@@ -1110,6 +1123,16 @@
void CmdExecuteCommands(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers) {
}
+VkResult ImportNativeFenceANDROID(VkDevice device, VkSemaphore semaphore, int nativeFenceFd) {
+ ALOGV("TODO: vk%s", __FUNCTION__);
+ return VK_SUCCESS;
+}
+
+VkResult QueueSignalNativeFenceANDROID(VkQueue queue, int* pNativeFenceFd) {
+ ALOGV("TODO: vk%s", __FUNCTION__);
+ return VK_SUCCESS;
+}
+
#pragma clang diagnostic pop
// clang-format on