Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1d4e5540 authored by Chris Forbes's avatar Chris Forbes
Browse files

vulkan: Rev 7 of ANDROID_native_buffer

Adds a new structure to be chained to GetPhysicalDeviceProperties2KHR in
order to determine whether the loader should be exposing
KHR_shared_presentable_image (and if so, which present modes can be
supported).

V3: Replace separate enables with combined 'sharedImage'

Test: build
Change-Id: I32a8b1f09f413aa4ea2a37ea0d50914a20967865
parent 889cd9aa
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ define NULL_HANDLE 0
@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME             "VK_KHR_win32_surface"

// 11
@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION     6
@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION     7
@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME             "VK_ANDROID_native_buffer"

// 12
@@ -785,6 +785,7 @@ enum VkStructureType {
    //@extension("VK_ANDROID_native_buffer")
    VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID                     = 1000010000,
    VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID       = 1000010001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,

    //@extension("VK_GOOGLE_display_timing")
    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                 = 1000092000,
@@ -2914,6 +2915,13 @@ class VkSwapchainImageCreateInfoANDROID {
    VkSwapchainImageUsageFlagsANDROID           flags
}

@extension("VK_ANDROID_native_buffer")
class VkPhysicalDevicePresentationPropertiesANDROID {
    VkStructureType                             sType
    void*                                       pNext
    VkBool32                                    sharedImage
}

@extension("VK_GOOGLE_display_timing")
class VkRefreshCycleDurationGOOGLE {
    u64                                         minRefreshDuration
+9 −1
Original line number Diff line number Diff line
@@ -37,12 +37,13 @@ extern "C" {
 * backwards-compatibility support is temporary, and will likely be removed in
 * (along with all gralloc0 support) in a future release.
 */
#define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION     6
#define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION     7
#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME   "VK_ANDROID_native_buffer"

#define VK_ANDROID_NATIVE_BUFFER_ENUM(type,id)    ((type)(1000000000 + (1000 * (VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER - 1)) + (id)))
#define VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID   VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 0)
#define VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 1)
#define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 2)

typedef enum VkSwapchainImageUsageFlagBitsANDROID {
    VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0x00000001,
@@ -75,6 +76,13 @@ typedef struct {
    VkSwapchainImageUsageFlagsANDROID      usage;
} VkSwapchainImageCreateInfoANDROID;

typedef struct {
    VkStructureType                        sType; // must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID
    const void*                            pNext;

    VkBool32                               sharedImage;
} VkPhysicalDevicePresentationPropertiesANDROID;

// -- DEPRECATED in SPEC_VERSION 6 --
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageANDROID)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, int* grallocUsage);
// -- ADDED in SPEC_VERSION 6 --