#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "gpu/command_buffer/service/shared_image/external_vk_image_backing_factory.h"
#include <memory>
#include <utility>
#include "base/functional/callback_helpers.h"
#include "base/ranges/algorithm.h"
#include "build/build_config.h"
#include "components/viz/common/gpu/vulkan_in_process_context_provider.h"
#include "components/viz/common/resources/shared_image_format.h"
#include "gpu/command_buffer/service/service_utils.h"
#include "gpu/command_buffer/service/shared_context_state.h"
#include "gpu/command_buffer/service/shared_image/external_vk_image_dawn_representation.h"
#include "gpu/command_buffer/service/shared_image/external_vk_image_skia_representation.h"
#include "gpu/command_buffer/service/shared_image/shared_image_factory.h"
#include "gpu/command_buffer/service/shared_image/shared_image_manager.h"
#include "gpu/command_buffer/service/shared_image/shared_image_representation.h"
#include "gpu/command_buffer/service/shared_image/shared_image_test_base.h"
#include "gpu/command_buffer/service/skia_utils.h"
#include "gpu/config/gpu_test_config.h"
#include "gpu/vulkan/vulkan_implementation.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkColorSpace.h"
#include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "third_party/skia/include/gpu/GrBackendSemaphore.h"
#include "third_party/skia/include/gpu/ganesh/SkImageGanesh.h"
#include "third_party/skia/include/private/chromium/GrPromiseImageTexture.h"
#include "ui/gl/buildflags.h"
#if BUILDFLAG(USE_DAWN)
#include <dawn/dawn_proc.h>
#include <dawn/native/DawnNative.h>
#include <dawn/webgpu_cpp.h>
#endif
namespace gpu {
namespace {
class ExternalVkImageBackingFactoryTest : public SharedImageTestBase { … };
#if BUILDFLAG(USE_DAWN)
class ExternalVkImageBackingFactoryDawnTest
: public ExternalVkImageBackingFactoryTest { … };
TEST_F(ExternalVkImageBackingFactoryDawnTest, DawnWrite_SkiaVulkanRead) { … }
TEST_F(ExternalVkImageBackingFactoryDawnTest, SkiaVulkanWrite_DawnRead) { … }
#endif
class ExternalVkImageBackingFactoryWithFormatTest
: public ExternalVkImageBackingFactoryTest,
public testing::WithParamInterface<viz::SharedImageFormat> { … };
TEST_P(ExternalVkImageBackingFactoryWithFormatTest, Basic) { … }
TEST_P(ExternalVkImageBackingFactoryWithFormatTest, Upload) { … }
std::string TestParamToString(
const testing::TestParamInfo<viz::SharedImageFormat>& param_info) { … }
const auto kSharedImageFormats = …;
INSTANTIATE_TEST_SUITE_P(…);
}
}