Reland vulkan-198[G1]: Support building on old version of vulkan-headers.
Currently Android still uses Vulkan 1.2.183 headers; in
order to support the new vulkan-cereal encoder built
against Vulkan 1.2.198 registry, we need to manually add
support for extensions that are modified between the two
versions in goldfish_vk_private_defs.h.
TEST: build
Bug: 187216205
Change-Id: I4443acebb08f46c245052169ea73b6498e3dcfae
diff --git a/system/vulkan_enc/goldfish_vk_private_defs.h b/system/vulkan_enc/goldfish_vk_private_defs.h
index 822464d..9d5cd99 100644
--- a/system/vulkan_enc/goldfish_vk_private_defs.h
+++ b/system/vulkan_enc/goldfish_vk_private_defs.h
@@ -643,6 +643,75 @@
typedef void (VKAPI_PTR *PFN_vkCollectDescriptorPoolIdsGOOGLE)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t* pPoolIdCount, uint64_t* pPoolIds);
typedef void (VKAPI_PTR *PFN_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image);
+// TODO(liyl): Remove once Android vulkan-headers is updated
+// to 1.2.184 or higher.
+
+#if VK_HEADER_VERSION < 184
+
+typedef struct VkPipelineCacheHeaderVersionOne {
+ uint32_t headerSize;
+ VkPipelineCacheHeaderVersion headerVersion;
+ uint32_t vendorID;
+ uint32_t deviceID;
+ uint8_t pipelineCacheUUID[VK_UUID_SIZE];
+} VkPipelineCacheHeaderVersionOne;
+
+#endif // VK_HEADER_VERSION < 184
+
+// TODO(liyl): Remove once Android vulkan-headers is updated
+// to 1.2.195 or higher.
+
+#ifdef VK_EXT_image_drm_format_modifier
+
+#if VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION < 2
+
+#ifndef VK_KHR_format_feature_flags2
+typedef uint64_t VkFormatFeatureFlags2KHR;
+#endif // VK_KHR_format_feature_flags2
+
+#define VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT ((VkStructureType)1000158006)
+typedef struct VkDrmFormatModifierProperties2EXT {
+ uint64_t drmFormatModifier;
+ uint32_t drmFormatModifierPlaneCount;
+ VkFormatFeatureFlags2KHR drmFormatModifierTilingFeatures;
+} VkDrmFormatModifierProperties2EXT;
+
+typedef struct VkDrmFormatModifierPropertiesList2EXT {
+ VkStructureType sType;
+ void* pNext;
+ uint32_t drmFormatModifierCount;
+ VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
+} VkDrmFormatModifierPropertiesList2EXT;
+
+#endif // VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION < 2
+
+#endif // VK_EXT_image_drm_format_modifier
+
+// TODO(liyl): Remove once Android vulkan-headers is updated
+// to 1.2.195 or higher.
+
+#ifdef VK_ANDROID_external_memory_android_hardware_buffer
+
+#if VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION < 4
+
+#define VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID ((VkStructureType)1000129006)
+typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID {
+ VkStructureType sType;
+ void* pNext;
+ VkFormat format;
+ uint64_t externalFormat;
+ VkFormatFeatureFlags2KHR formatFeatures;
+ VkComponentMapping samplerYcbcrConversionComponents;
+ VkSamplerYcbcrModelConversion suggestedYcbcrModel;
+ VkSamplerYcbcrRange suggestedYcbcrRange;
+ VkChromaLocation suggestedXChromaOffset;
+ VkChromaLocation suggestedYChromaOffset;
+} VkAndroidHardwareBufferFormatProperties2ANDROID;
+
+#endif // VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION < 4
+
+#endif // VK_ANDROID_external_memory_android_hardware_buffer
+
#ifdef __cplusplus
} // extern "C"
#endif