frontbuffer enhancements to ANDROID_vulkan_native_buffer
Since VK_KHR_swapchain is implemented entirely in libvulkan, we need an
image-level mechanism to inform the driver that a swapchain image will
be used for front-buffered rendering. This is implemented by chaining
another structure off of the VkImageCreateInfo passed to the driver when
creating swapchain images.
V2: Don't foul up api file. Rerun code generators.
V3: Rename VkNativeBuffer2ANDROID structure to
VkSwapchainImageCreateInfoANDROID
V4: Provide nulldrv stub for new function
V5: rebase.
Change-Id: I4447400cb1782440638e4c8816b081dd8923ddb9
Test: compile
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index 37cc448..d1fa15f 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -75,7 +75,7 @@
@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface"
-@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 5
+@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 6
@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer"
@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 3
@@ -681,6 +681,7 @@
//@extension("VK_ANDROID_native_buffer")
VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
+ VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
//@extension("VK_EXT_debug_report")
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
@@ -1376,6 +1377,13 @@
VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
}
+@extension("VK_ANDROID_native_buffer")
+type VkFlags VkSwapchainImageUsageFlagsANDROID
+@extension("VK_ANDROID_native_buffer")
+bitfield VkSwapchainImageUsageFlagBitsANDROID {
+ VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_FRONT_BUFFER_BIT_ANDROID = 0x00000001,
+}
+
//////////////////
// Structures //
@@ -2671,6 +2679,13 @@
int usage
}
+@extension("VK_ANDROID_native_buffer")
+class VkSwapchainImageCreateInfoANDROID {
+ VkStructureType sType
+ const void* pNext
+ VkSwapchainImageUsageFlagBitsANDROID flags
+}
+
@extension("VK_EXT_debug_report")
class VkDebugReportCallbackCreateInfoEXT {
VkStructureType sType
@@ -5281,6 +5296,16 @@
}
@extension("VK_ANDROID_native_buffer")
+cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
+ VkDevice device,
+ VkFormat format,
+ VkImageUsageFlags imageUsage,
+ VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
+ int* grallocUsage) {
+ return ?
+}
+
+@extension("VK_ANDROID_native_buffer")
cmd VkResult vkAcquireImageANDROID(
VkDevice device,
VkImage image,