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
diff --git a/vulkan/nulldrv/null_driver.h b/vulkan/nulldrv/null_driver.h
index c6c7aa6..6bfbda5 100644
--- a/vulkan/nulldrv/null_driver.h
+++ b/vulkan/nulldrv/null_driver.h
@@ -19,6 +19,7 @@
#define VK_PROTOTYPES
#include <vulkan/vulkan.h>
+#include <vulkan/vk_ext_android_native_buffer.h>
namespace null_driver {
@@ -177,6 +178,9 @@
void CmdNextSubpass(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
void CmdEndRenderPass(VkCmdBuffer cmdBuffer);
void CmdExecuteCommands(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
+
+VkResult ImportNativeFenceANDROID(VkDevice device, VkSemaphore semaphore, int nativeFenceFd);
+VkResult QueueSignalNativeFenceANDROID(VkQueue queue, int* pNativeFenceFd);
// clang-format on
} // namespace null_driver