#include <memory>
#include <vector>
#include "base/timer/lap_timer.h"
#include "cc/paint/draw_image.h"
#include "cc/paint/paint_image_builder.h"
#include "cc/raster/tile_task.h"
#include "cc/tiles/gpu_image_decode_cache.h"
#include "components/viz/test/test_in_process_context_provider.h"
#include "gpu/command_buffer/client/raster_interface.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/perf/perf_result_reporter.h"
#include "third_party/skia/include/core/SkAlphaType.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkImageInfo.h"
#include "third_party/skia/include/core/SkM44.h"
#include "third_party/skia/include/core/SkSize.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "third_party/skia/include/gpu/GpuTypes.h"
#include "third_party/skia/include/gpu/GrDirectContext.h"
#include "third_party/skia/include/gpu/ganesh/SkSurfaceGanesh.h"
namespace cc {
namespace {
static const int kTimeLimitMillis = …;
static const int kWarmupRuns = …;
static const int kTimeCheckInterval = …;
static const int kCacheSize = …;
sk_sp<SkImage> CreateImage(int width, int height) { … }
SkM44 CreateMatrix(const SkSize& scale) { … }
enum class TestMode { … };
class GpuImageDecodeCachePerfTest
: public testing::Test,
public testing::WithParamInterface<TestMode> { … };
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(GpuImageDecodeCachePerfTest, DecodeWithColorConversion) { … }
GpuImageDecodeCachePerfTestNoSw;
INSTANTIATE_TEST_SUITE_P(…);
TEST_P(GpuImageDecodeCachePerfTestNoSw, DecodeWithMips) { … }
TEST_P(GpuImageDecodeCachePerfTest, AcquireExistingImages) { … }
}
}