diff --git a/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc index c03d450daa9a3..c6d0197bac456 100644 --- a/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc +++ b/impeller/renderer/backend/vulkan/android/ahb_texture_source_vk.cc @@ -281,6 +281,9 @@ static TextureDescriptor ToTextureDescriptor( desc.mip_count = (ahb_desc.usage & AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE) ? ahb_size.MipCount() : 1u; + if (ahb_desc.usage & AHARDWAREBUFFER_USAGE_COMPOSER_OVERLAY) { + desc.usage = TextureUsage::kRenderTarget; + } return desc; } diff --git a/impeller/renderer/backend/vulkan/swapchain/ahb/ahb_texture_pool_vk.cc b/impeller/renderer/backend/vulkan/swapchain/ahb/ahb_texture_pool_vk.cc index 31011109dffd0..712af01b98697 100644 --- a/impeller/renderer/backend/vulkan/swapchain/ahb/ahb_texture_pool_vk.cc +++ b/impeller/renderer/backend/vulkan/swapchain/ahb/ahb_texture_pool_vk.cc @@ -16,6 +16,9 @@ AHBTexturePoolVK::AHBTexturePoolVK(std::weak_ptr context, VALIDATION_LOG << "Swapchain image is not allocatable."; return; } + for (auto i = 0u; i < max_entries_; i++) { + pool_.emplace_back(CreateTexture()); + } is_valid_ = true; }