From eaf310e1ce16ddee996bd13af648021865ddeff7 Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Mon, 28 Jan 2019 16:10:32 -0500 Subject: [PATCH] Update Vulkan skia creation to use apiVersion instead of instanceVersion This updates to use Skia's new api which takes the vulkan apiVersion instead of the instance version. This is technically more correct since the application apiVersion is really the only client modifiable version value in vulkan. This change also updates the webview structs to use the apiVersion as well. Test: manual build and testing. Change-Id: I6ce7c20949eb7242f7bbe69955b54c0785696891 --- libs/hwui/private/hwui/DrawVkInfo.h | 2 +- libs/hwui/renderthread/VulkanManager.cpp | 12 ++++++------ libs/hwui/renderthread/VulkanManager.h | 2 +- native/webview/plat_support/draw_fn.h | 2 +- native/webview/plat_support/draw_functor.cpp | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libs/hwui/private/hwui/DrawVkInfo.h b/libs/hwui/private/hwui/DrawVkInfo.h index abc4dbf9fa1c1..fb55f5ca4c935 100644 --- a/libs/hwui/private/hwui/DrawVkInfo.h +++ b/libs/hwui/private/hwui/DrawVkInfo.h @@ -29,7 +29,7 @@ struct VkFunctorInitParams { VkDevice device; VkQueue queue; uint32_t graphics_queue_index; - uint32_t instance_version; + uint32_t api_version; const char* const* enabled_instance_extension_names; uint32_t enabled_instance_extension_names_length; const char* const* enabled_device_extension_names; diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp index 1e7520216d664..582d51e6af944 100644 --- a/libs/hwui/renderthread/VulkanManager.cpp +++ b/libs/hwui/renderthread/VulkanManager.cpp @@ -83,7 +83,6 @@ void VulkanManager::destroy() { mDevice = VK_NULL_HANDLE; mPhysicalDevice = VK_NULL_HANDLE; mInstance = VK_NULL_HANDLE; - mInstanceVersion = 0u; mInstanceExtensions.clear(); mDeviceExtensions.clear(); free_features_extensions_structs(mPhysicalDeviceFeatures2); @@ -100,7 +99,7 @@ bool VulkanManager::setupDevice(GrVkExtensions& grExtensions, VkPhysicalDeviceFe 0, // applicationVersion "android framework", // pEngineName 0, // engineVerison - VK_MAKE_VERSION(1, 1, 0), // apiVersion + mAPIVersion, // apiVersion }; { @@ -377,8 +376,9 @@ void VulkanManager::initialize() { } GET_PROC(EnumerateInstanceVersion); - LOG_ALWAYS_FATAL_IF(mEnumerateInstanceVersion(&mInstanceVersion)); - LOG_ALWAYS_FATAL_IF(mInstanceVersion < VK_MAKE_VERSION(1, 1, 0)); + uint32_t instanceVersion; + LOG_ALWAYS_FATAL_IF(mEnumerateInstanceVersion(&instanceVersion)); + LOG_ALWAYS_FATAL_IF(instanceVersion < VK_MAKE_VERSION(1, 1, 0)); GrVkExtensions extensions; LOG_ALWAYS_FATAL_IF(!this->setupDevice(extensions, mPhysicalDeviceFeatures2)); @@ -398,7 +398,7 @@ void VulkanManager::initialize() { backendContext.fDevice = mDevice; backendContext.fQueue = mGraphicsQueue; backendContext.fGraphicsQueueIndex = mGraphicsQueueIndex; - backendContext.fInstanceVersion = mInstanceVersion; + backendContext.fMaxAPIVersion = mAPIVersion; backendContext.fVkExtensions = &extensions; backendContext.fDeviceFeatures2 = &mPhysicalDeviceFeatures2; backendContext.fGetProc = std::move(getProc); @@ -446,7 +446,7 @@ VkFunctorInitParams VulkanManager::getVkFunctorInitParams() const { .device = mDevice, .queue = mGraphicsQueue, .graphics_queue_index = mGraphicsQueueIndex, - .instance_version = mInstanceVersion, + .api_version = mAPIVersion, .enabled_instance_extension_names = mInstanceExtensions.data(), .enabled_instance_extension_names_length = static_cast(mInstanceExtensions.size()), diff --git a/libs/hwui/renderthread/VulkanManager.h b/libs/hwui/renderthread/VulkanManager.h index abe78efc91740..6426fe2808b7d 100644 --- a/libs/hwui/renderthread/VulkanManager.h +++ b/libs/hwui/renderthread/VulkanManager.h @@ -246,7 +246,7 @@ private: VkCommandBuffer mDummyCB = VK_NULL_HANDLE; // Variables saved to populate VkFunctorInitParams. - uint32_t mInstanceVersion = 0u; + static const uint32_t mAPIVersion = VK_MAKE_VERSION(1, 1, 0); std::vector mInstanceExtensions; std::vector mDeviceExtensions; VkPhysicalDeviceFeatures2 mPhysicalDeviceFeatures2{}; diff --git a/native/webview/plat_support/draw_fn.h b/native/webview/plat_support/draw_fn.h index e31ce195214f8..5b3e496be81a6 100644 --- a/native/webview/plat_support/draw_fn.h +++ b/native/webview/plat_support/draw_fn.h @@ -84,7 +84,7 @@ struct AwDrawFn_InitVkParams { VkDevice device; VkQueue queue; uint32_t graphics_queue_index; - uint32_t instance_version; + uint32_t api_version; const char* const* enabled_instance_extension_names; uint32_t enabled_instance_extension_names_length; const char* const* enabled_device_extension_names; diff --git a/native/webview/plat_support/draw_functor.cpp b/native/webview/plat_support/draw_functor.cpp index afe103a25043a..6deb47f09347c 100644 --- a/native/webview/plat_support/draw_functor.cpp +++ b/native/webview/plat_support/draw_functor.cpp @@ -102,7 +102,7 @@ void initializeVk(int functor, void* data, .device = init_vk_params.device, .queue = init_vk_params.queue, .graphics_queue_index = init_vk_params.graphics_queue_index, - .instance_version = init_vk_params.instance_version, + .api_version = init_vk_params.api_version, .enabled_instance_extension_names = init_vk_params.enabled_instance_extension_names, .enabled_instance_extension_names_length =