From 2101addfa0c359a3cd9473334af15757d44c6468 Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Fri, 8 Mar 2024 14:19:40 -0800 Subject: [PATCH] [Impeller] Use the AHB prefix for utils that work with Android Hardware Buffers. Also doesn't compile the TU on non-Android platforms. Part of https://github.com/flutter/engine/pull/51213 being chopped up. No change in functionality. Just renames and moves stuff around. --- ci/licenses_golden/licenses_flutter | 8 ++--- impeller/renderer/backend/vulkan/BUILD.gn | 9 ++++-- .../ahb_texture_source_vk.cc} | 27 ++++++----------- .../ahb_texture_source_vk.h} | 30 +++++++------------ .../android/image_external_texture_vk.cc | 7 ++--- .../android/image_external_texture_vk.h | 2 +- 6 files changed, 34 insertions(+), 49 deletions(-) rename impeller/renderer/backend/vulkan/{android_hardware_buffer_texture_source_vk.cc => android/ahb_texture_source_vk.cc} (94%) rename impeller/renderer/backend/vulkan/{android_hardware_buffer_texture_source_vk.h => android/ahb_texture_source_vk.h} (68%) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 9b4b8c839a7e9..b5b2cd9c85f7e 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -38073,8 +38073,8 @@ ORIGIN: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.h ORIGIN: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc + ../../../flutter/LICENSE +ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/barrier_vk.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/barrier_vk.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/vulkan/blit_command_vk.cc + ../../../flutter/LICENSE @@ -40924,8 +40924,8 @@ FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.h FILE: ../../../flutter/impeller/renderer/backend/metal/vertex_descriptor_mtl.mm FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/allocator_vk.h -FILE: ../../../flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.cc -FILE: ../../../flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h +FILE: ../../../flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc +FILE: ../../../flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/barrier_vk.cc FILE: ../../../flutter/impeller/renderer/backend/vulkan/barrier_vk.h FILE: ../../../flutter/impeller/renderer/backend/vulkan/blit_command_vk.cc diff --git a/impeller/renderer/backend/vulkan/BUILD.gn b/impeller/renderer/backend/vulkan/BUILD.gn index ec5a835230d06..37d6df2ea605b 100644 --- a/impeller/renderer/backend/vulkan/BUILD.gn +++ b/impeller/renderer/backend/vulkan/BUILD.gn @@ -34,8 +34,6 @@ impeller_component("vulkan") { sources = [ "allocator_vk.cc", "allocator_vk.h", - "android_hardware_buffer_texture_source_vk.cc", - "android_hardware_buffer_texture_source_vk.h", "barrier_vk.cc", "barrier_vk.h", "blit_command_vk.cc", @@ -122,6 +120,13 @@ impeller_component("vulkan") { "yuv_conversion_vk.h", ] + if (is_android) { + sources += [ + "android/ahb_texture_source_vk.cc", + "android/ahb_texture_source_vk.h", + ] + } + public_deps = [ "../../:renderer", "../../../shader_archive", diff --git a/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.cc b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc similarity index 94% rename from impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.cc rename to impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc index 0ec9e2725ff02..bea9958bd2b50 100644 --- a/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.cc +++ b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc @@ -2,16 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h" - -#include +#include "impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h" #include "impeller/renderer/backend/vulkan/context_vk.h" #include "impeller/renderer/backend/vulkan/texture_source_vk.h" #include "impeller/renderer/backend/vulkan/yuv_conversion_library_vk.h" -#ifdef FML_OS_ANDROID - namespace impeller { using AHBProperties = vk::StructureChain< @@ -293,7 +289,7 @@ static TextureDescriptor ToTextureDescriptor( return desc; } -AndroidHardwareBufferTextureSourceVK::AndroidHardwareBufferTextureSourceVK( +AHBTextureSourceVK::AHBTextureSourceVK( const std::shared_ptr& context, struct AHardwareBuffer* ahb, const AHardwareBuffer_Desc& ahb_desc) @@ -373,40 +369,35 @@ AndroidHardwareBufferTextureSourceVK::AndroidHardwareBufferTextureSourceVK( } // |TextureSourceVK| -AndroidHardwareBufferTextureSourceVK::~AndroidHardwareBufferTextureSourceVK() = - default; +AHBTextureSourceVK::~AHBTextureSourceVK() = default; -bool AndroidHardwareBufferTextureSourceVK::IsValid() const { +bool AHBTextureSourceVK::IsValid() const { return is_valid_; } // |TextureSourceVK| -vk::Image AndroidHardwareBufferTextureSourceVK::GetImage() const { +vk::Image AHBTextureSourceVK::GetImage() const { return image_.get(); } // |TextureSourceVK| -vk::ImageView AndroidHardwareBufferTextureSourceVK::GetImageView() const { +vk::ImageView AHBTextureSourceVK::GetImageView() const { return image_view_.get(); } // |TextureSourceVK| -vk::ImageView AndroidHardwareBufferTextureSourceVK::GetRenderTargetView() - const { +vk::ImageView AHBTextureSourceVK::GetRenderTargetView() const { return image_view_.get(); } // |TextureSourceVK| -bool AndroidHardwareBufferTextureSourceVK::IsSwapchainImage() const { +bool AHBTextureSourceVK::IsSwapchainImage() const { return false; } // |TextureSourceVK| -std::shared_ptr -AndroidHardwareBufferTextureSourceVK::GetYUVConversion() const { +std::shared_ptr AHBTextureSourceVK::GetYUVConversion() const { return needs_yuv_conversion_ ? yuv_conversion_ : nullptr; } } // namespace impeller - -#endif diff --git a/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h similarity index 68% rename from impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h rename to impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h index 724308cb2b6fb..14c027b901d89 100644 --- a/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h +++ b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h @@ -2,13 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_ -#define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_ - -#include "flutter/fml/build_config.h" -#include "vulkan/vulkan_core.h" - -#ifdef FML_OS_ANDROID +#ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_AHB_TEXTURE_SOURCE_VK_H_ +#define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_AHB_TEXTURE_SOURCE_VK_H_ #include "flutter/fml/macros.h" #include "impeller/geometry/size.h" @@ -36,15 +31,14 @@ class ContextVK; /// descriptors. The objects are meant to be used directly (either /// as render targets or sources for sampling), not copied. /// -class AndroidHardwareBufferTextureSourceVK final : public TextureSourceVK { +class AHBTextureSourceVK final : public TextureSourceVK { public: - AndroidHardwareBufferTextureSourceVK( - const std::shared_ptr& context, - struct AHardwareBuffer* hardware_buffer, - const AHardwareBuffer_Desc& hardware_buffer_desc); + AHBTextureSourceVK(const std::shared_ptr& context, + struct AHardwareBuffer* hardware_buffer, + const AHardwareBuffer_Desc& hardware_buffer_desc); // |TextureSourceVK| - ~AndroidHardwareBufferTextureSourceVK() override; + ~AHBTextureSourceVK() override; // |TextureSourceVK| vk::Image GetImage() const override; @@ -71,15 +65,11 @@ class AndroidHardwareBufferTextureSourceVK final : public TextureSourceVK { bool needs_yuv_conversion_ = false; bool is_valid_ = false; - AndroidHardwareBufferTextureSourceVK( - const AndroidHardwareBufferTextureSourceVK&) = delete; + AHBTextureSourceVK(const AHBTextureSourceVK&) = delete; - AndroidHardwareBufferTextureSourceVK& operator=( - const AndroidHardwareBufferTextureSourceVK&) = delete; + AHBTextureSourceVK& operator=(const AHBTextureSourceVK&) = delete; }; } // namespace impeller -#endif - -#endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_HARDWARE_BUFFER_TEXTURE_SOURCE_VK_H_ +#endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_ANDROID_AHB_TEXTURE_SOURCE_VK_H_ diff --git a/shell/platform/android/image_external_texture_vk.cc b/shell/platform/android/image_external_texture_vk.cc index 906f4a5ee0561..c8b94fb72d37b 100644 --- a/shell/platform/android/image_external_texture_vk.cc +++ b/shell/platform/android/image_external_texture_vk.cc @@ -6,7 +6,7 @@ #include "flutter/impeller/core/formats.h" #include "flutter/impeller/core/texture_descriptor.h" #include "flutter/impeller/display_list/dl_image_impeller.h" -#include "flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h" +#include "flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h" #include "flutter/impeller/renderer/backend/vulkan/command_buffer_vk.h" #include "flutter/impeller/renderer/backend/vulkan/command_encoder_vk.h" #include "flutter/impeller/renderer/backend/vulkan/texture_vk.h" @@ -54,9 +54,8 @@ void ImageExternalTextureVK::ProcessFrame(PaintContext& context, return; } - auto texture_source = - std::make_shared( - impeller_context_, latest_hardware_buffer, hb_desc); + auto texture_source = std::make_shared( + impeller_context_, latest_hardware_buffer, hb_desc); auto texture = std::make_shared(impeller_context_, texture_source); diff --git a/shell/platform/android/image_external_texture_vk.h b/shell/platform/android/image_external_texture_vk.h index e3d240145aacc..e702671fe84b3 100644 --- a/shell/platform/android/image_external_texture_vk.h +++ b/shell/platform/android/image_external_texture_vk.h @@ -9,7 +9,7 @@ #include #include "flutter/shell/platform/android/image_external_texture.h" -#include "flutter/impeller/renderer/backend/vulkan/android_hardware_buffer_texture_source_vk.h" +#include "flutter/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.h" #include "flutter/impeller/renderer/backend/vulkan/context_vk.h" #include "flutter/impeller/renderer/backend/vulkan/vk.h" #include "flutter/shell/platform/android/android_context_vulkan_impeller.h"