80TEST(AndroidVulkanTest, CanImportWithYUB) {
82 GTEST_SKIP() <<
"Hardware buffers are not supported on this platform.";
85 AHardwareBuffer_Desc desc;
88 desc.format = AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420;
93 desc.usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE |
94 AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK |
95 AHARDWAREBUFFER_USAGE_CPU_READ_MASK;
97 EXPECT_EQ(AHardwareBuffer_isSupported(&desc), 1);
100 ASSERT_TRUE(buffer.is_valid());
103 ASSERT_TRUE(context_vk);
110 context_vk->Shutdown();
113TEST(AndroidVulkanTest, CreateImageViewForOpaqueAlpha) {
115 GTEST_SKIP() <<
"Hardware buffers are not supported on this platform.";
118 AHardwareBuffer_Desc desc;
121 desc.format = AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM;
126 desc.usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE |
127 AHARDWAREBUFFER_USAGE_CPU_WRITE_MASK |
128 AHARDWAREBUFFER_USAGE_CPU_READ_MASK;
130 EXPECT_EQ(AHardwareBuffer_isSupported(&desc), 1);
133 ASSERT_TRUE(buffer.is_valid());
136 ASSERT_TRUE(context_vk);
139 ASSERT_EQ(context_vk->GetDevice().getAndroidHardwareBufferPropertiesANDROID(
140 buffer.get(), &ahb_props.get()),
141 vk::Result::eSuccess);
144 context_vk->GetDevice(), ahb_props, desc);
148 image.get(),
nullptr, ahb_props, desc);
150 EXPECT_EQ(image_info.get().components.a, vk::ComponentSwizzle::eOne);
152 context_vk->Shutdown();
A texture source that wraps an instance of AHardwareBuffer.
static vk::UniqueImage CreateVKImageWrapperForAndroidHarwareBuffer(const vk::Device &device, const AHBProperties &ahb_props, const AHardwareBuffer_Desc &ahb_desc)
Create a VkImage that wraps an Android hardware buffer.
std::shared_ptr< YUVConversionVK > GetYUVConversion() const override
When sampling from textures whose formats are not known to Vulkan, a custom conversion is necessary t...
vk::StructureChain< vk::AndroidHardwareBufferPropertiesANDROID, vk::AndroidHardwareBufferFormatPropertiesANDROID > AHBProperties
static ImageViewInfo CreateImageViewInfo(const vk::Image &image, const std::shared_ptr< YUVConversionVK > &yuv_conversion_wrapper, const AHBProperties &ahb_props, const AHardwareBuffer_Desc &ahb_desc)
static std::shared_ptr< ContextVK > Create(Settings settings)
bool enable_surface_control
std::vector< std::shared_ptr< fml::Mapping > > shader_libraries_data
PFN_vkGetInstanceProcAddr proc_address_callback