Commit bf124ca1 authored by danakj's avatar danakj Committed by Commit Bot

Give ScopedResource a LayerTreeResourceProvider.

ScopedResource is used for making resources that will be shipped out
of the layer tree compositor. Give it a LayerTreeResourceProvider so
that we reduce the API surface needed by the ResourceProvider base
class to not include creating/deleting these resources, and allowing
us to change how software resource are created.

R=piman@chromium.org

Bug: 730660
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ia89068da79c497539f4cbf98f96bba4b9f4d362b
Reviewed-on: https://chromium-review.googlesource.com/848253
Commit-Queue: danakj <danakj@chromium.org>
Reviewed-by: default avatarAntoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527028}
parent e9db9519
...@@ -89,7 +89,7 @@ std::unique_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl( ...@@ -89,7 +89,7 @@ std::unique_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl(
void HeadsUpDisplayLayerImpl::AcquireResource( void HeadsUpDisplayLayerImpl::AcquireResource(
DrawMode draw_mode, DrawMode draw_mode,
ResourceProvider* resource_provider) { LayerTreeResourceProvider* resource_provider) {
for (auto& resource : resources_) { for (auto& resource : resources_) {
if (!resource_provider->InUseByConsumer(resource->id())) { if (!resource_provider->InUseByConsumer(resource->id())) {
resource.swap(resources_.back()); resource.swap(resources_.back());
...@@ -116,7 +116,7 @@ void HeadsUpDisplayLayerImpl::AcquireResource( ...@@ -116,7 +116,7 @@ void HeadsUpDisplayLayerImpl::AcquireResource(
} }
void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources( void HeadsUpDisplayLayerImpl::ReleaseUnmatchedSizeResources(
ResourceProvider* resource_provider) { LayerTreeResourceProvider* resource_provider) {
base::EraseIf(resources_, base::EraseIf(resources_,
[this](const std::unique_ptr<ScopedResource>& resource) { [this](const std::unique_ptr<ScopedResource>& resource) {
return internal_content_bounds_ != resource->size(); return internal_content_bounds_ != resource->size();
...@@ -170,7 +170,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(viz::RenderPass* render_pass, ...@@ -170,7 +170,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(viz::RenderPass* render_pass,
void HeadsUpDisplayLayerImpl::UpdateHudTexture( void HeadsUpDisplayLayerImpl::UpdateHudTexture(
DrawMode draw_mode, DrawMode draw_mode,
ResourceProvider* resource_provider, LayerTreeResourceProvider* resource_provider,
viz::ContextProvider* context_provider, viz::ContextProvider* context_provider,
const viz::RenderPassList& list) { const viz::RenderPassList& list) {
if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE || !resources_.back()->id()) if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE || !resources_.back()->id())
......
...@@ -24,9 +24,13 @@ class SkPaint; ...@@ -24,9 +24,13 @@ class SkPaint;
class SkTypeface; class SkTypeface;
struct SkRect; struct SkRect;
namespace cc { namespace viz {
class ContextProvider;
}
namespace cc {
class FrameRateCounter; class FrameRateCounter;
class LayerTreeResourceProvider;
class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl { class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl {
public: public:
...@@ -44,7 +48,7 @@ class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl { ...@@ -44,7 +48,7 @@ class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl {
void AppendQuads(viz::RenderPass* render_pass, void AppendQuads(viz::RenderPass* render_pass,
AppendQuadsData* append_quads_data) override; AppendQuadsData* append_quads_data) override;
void UpdateHudTexture(DrawMode draw_mode, void UpdateHudTexture(DrawMode draw_mode,
ResourceProvider* resource_provider, LayerTreeResourceProvider* resource_provider,
viz::ContextProvider* context_provider, viz::ContextProvider* context_provider,
const viz::RenderPassList& list); const viz::RenderPassList& list);
...@@ -133,8 +137,10 @@ class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl { ...@@ -133,8 +137,10 @@ class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl {
const std::string& label_text) const; const std::string& label_text) const;
void DrawDebugRects(SkCanvas* canvas, DebugRectHistory* debug_rect_history); void DrawDebugRects(SkCanvas* canvas, DebugRectHistory* debug_rect_history);
void AcquireResource(DrawMode draw_mode, ResourceProvider* resource_provider); void AcquireResource(DrawMode draw_mode,
void ReleaseUnmatchedSizeResources(ResourceProvider* resource_provider); LayerTreeResourceProvider* resource_provider);
void ReleaseUnmatchedSizeResources(
LayerTreeResourceProvider* resource_provider);
std::vector<std::unique_ptr<ScopedResource>> resources_; std::vector<std::unique_ptr<ScopedResource>> resources_;
sk_sp<SkSurface> hud_surface_; sk_sp<SkSurface> hud_surface_;
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "cc/resources/resource.h" #include "cc/resources/resource.h"
#include "components/viz/common/gpu/context_provider.h" #include "components/viz/common/gpu/context_provider.h"
#include "components/viz/common/gpu/raster_context_provider.h" #include "components/viz/common/gpu/raster_context_provider.h"
#include "components/viz/common/resources/resource_format_utils.h"
#include "gpu/command_buffer/client/context_support.h" #include "gpu/command_buffer/client/context_support.h"
#include "gpu/command_buffer/client/gles2_interface.h" #include "gpu/command_buffer/client/gles2_interface.h"
#include "gpu/command_buffer/client/raster_interface.h" #include "gpu/command_buffer/client/raster_interface.h"
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/memory_dump_manager.h"
#include "cc/base/container_util.h" #include "cc/base/container_util.h"
#include "cc/resources/resource_util.h"
#include "cc/resources/scoped_resource.h" #include "cc/resources/scoped_resource.h"
#include "components/viz/common/gpu/raster_context_provider.h" #include "components/viz/common/gpu/raster_context_provider.h"
#include "gpu/command_buffer/client/raster_interface.h" #include "gpu/command_buffer/client/raster_interface.h"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "cc/resources/layer_tree_resource_provider.h" #include "cc/resources/layer_tree_resource_provider.h"
#include "cc/resources/resource.h" #include "cc/resources/resource.h"
#include "components/viz/common/resources/platform_color.h" #include "components/viz/common/resources/platform_color.h"
#include "components/viz/common/resources/resource_format_utils.h"
#include "ui/gfx/buffer_format_util.h" #include "ui/gfx/buffer_format_util.h"
#include "ui/gfx/gpu_memory_buffer.h" #include "ui/gfx/gpu_memory_buffer.h"
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
#ifndef CC_RESOURCES_RESOURCE_H_ #ifndef CC_RESOURCES_RESOURCE_H_
#define CC_RESOURCES_RESOURCE_H_ #define CC_RESOURCES_RESOURCE_H_
#include "base/logging.h"
#include "base/macros.h" #include "base/macros.h"
#include "cc/cc_export.h" #include "cc/cc_export.h"
#include "cc/resources/resource_provider.h" #include "components/viz/common/resources/resource_format.h"
#include "cc/resources/resource_util.h" #include "components/viz/common/resources/resource_id.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
namespace cc { namespace cc {
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include "base/trace_event/memory_dump_manager.h" #include "base/trace_event/memory_dump_manager.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "cc/base/container_util.h" #include "cc/base/container_util.h"
#include "cc/resources/resource_provider.h" #include "cc/resources/layer_tree_resource_provider.h"
#include "cc/resources/resource_util.h" #include "cc/resources/resource_util.h"
#include "cc/resources/scoped_resource.h" #include "cc/resources/scoped_resource.h"
...@@ -42,8 +42,8 @@ bool ResourceMeetsSizeRequirements(const gfx::Size& requested_size, ...@@ -42,8 +42,8 @@ bool ResourceMeetsSizeRequirements(const gfx::Size& requested_size,
return false; return false;
// GetArea will crash on overflow, however all sizes in use are tile sizes. // GetArea will crash on overflow, however all sizes in use are tile sizes.
// These are capped at ResourceProvider::max_texture_size(), and will not // These are capped at LayerTreeResourceProvider::max_texture_size(), and will
// overflow. // not overflow.
float actual_area = actual_size.GetArea(); float actual_area = actual_size.GetArea();
float requested_area = requested_size.GetArea(); float requested_area = requested_size.GetArea();
// Don't use a resource that is more than |kReuseThreshold| times the // Don't use a resource that is more than |kReuseThreshold| times the
...@@ -60,10 +60,10 @@ constexpr base::TimeDelta ResourcePool::kDefaultExpirationDelay; ...@@ -60,10 +60,10 @@ constexpr base::TimeDelta ResourcePool::kDefaultExpirationDelay;
void ResourcePool::PoolResource::OnMemoryDump( void ResourcePool::PoolResource::OnMemoryDump(
base::trace_event::ProcessMemoryDump* pmd, base::trace_event::ProcessMemoryDump* pmd,
const ResourceProvider* resource_provider, const LayerTreeResourceProvider* resource_provider,
bool is_free) const { bool is_free) const {
// Resource IDs are not process-unique, so log with the ResourceProvider's // Resource IDs are not process-unique, so log with the
// unique id. // LayerTreeResourceProvider's unique id.
std::string parent_node = std::string parent_node =
base::StringPrintf("cc/resource_memory/provider_%d/resource_%d", base::StringPrintf("cc/resource_memory/provider_%d/resource_%d",
resource_provider->tracing_id(), id()); resource_provider->tracing_id(), id());
...@@ -84,7 +84,7 @@ void ResourcePool::PoolResource::OnMemoryDump( ...@@ -84,7 +84,7 @@ void ResourcePool::PoolResource::OnMemoryDump(
} }
} }
ResourcePool::ResourcePool(ResourceProvider* resource_provider, ResourcePool::ResourcePool(LayerTreeResourceProvider* resource_provider,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
gfx::BufferUsage usage, gfx::BufferUsage usage,
const base::TimeDelta& expiration_delay, const base::TimeDelta& expiration_delay,
...@@ -109,7 +109,7 @@ ResourcePool::ResourcePool(ResourceProvider* resource_provider, ...@@ -109,7 +109,7 @@ ResourcePool::ResourcePool(ResourceProvider* resource_provider,
base::MemoryCoordinatorClientRegistry::GetInstance()->Register(this); base::MemoryCoordinatorClientRegistry::GetInstance()->Register(this);
} }
ResourcePool::ResourcePool(ResourceProvider* resource_provider, ResourcePool::ResourcePool(LayerTreeResourceProvider* resource_provider,
bool gpu_resources, bool gpu_resources,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
viz::ResourceTextureHint hint, viz::ResourceTextureHint hint,
......
...@@ -15,11 +15,17 @@ ...@@ -15,11 +15,17 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/memory_coordinator_client.h" #include "base/memory/memory_coordinator_client.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/memory/weak_ptr.h"
#include "base/trace_event/memory_dump_provider.h" #include "base/trace_event/memory_dump_provider.h"
#include "cc/cc_export.h" #include "cc/cc_export.h"
#include "cc/resources/resource.h" #include "cc/resources/resource.h"
#include "cc/resources/scoped_resource.h" #include "cc/resources/scoped_resource.h"
#include "components/viz/common/resources/resource_format.h" #include "components/viz/common/resources/resource_format.h"
#include "ui/gfx/geometry/rect.h"
namespace base {
class SingleThreadTaskRunner;
}
namespace cc { namespace cc {
...@@ -31,7 +37,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -31,7 +37,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
base::TimeDelta::FromSeconds(5); base::TimeDelta::FromSeconds(5);
static std::unique_ptr<ResourcePool> CreateForGpuMemoryBufferResources( static std::unique_ptr<ResourcePool> CreateForGpuMemoryBufferResources(
ResourceProvider* resource_provider, LayerTreeResourceProvider* resource_provider,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
gfx::BufferUsage usage, gfx::BufferUsage usage,
const base::TimeDelta& expiration_delay, const base::TimeDelta& expiration_delay,
...@@ -42,7 +48,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -42,7 +48,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
} }
static std::unique_ptr<ResourcePool> Create( static std::unique_ptr<ResourcePool> Create(
ResourceProvider* resource_provider, LayerTreeResourceProvider* resource_provider,
bool gpu_resources, bool gpu_resources,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
viz::ResourceTextureHint hint, viz::ResourceTextureHint hint,
...@@ -108,14 +114,14 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -108,14 +114,14 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
protected: protected:
// Constructor for creating GPU memory buffer resources. // Constructor for creating GPU memory buffer resources.
ResourcePool(ResourceProvider* resource_provider, ResourcePool(LayerTreeResourceProvider* resource_provider,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
gfx::BufferUsage usage, gfx::BufferUsage usage,
const base::TimeDelta& expiration_delay, const base::TimeDelta& expiration_delay,
bool disallow_non_exact_reuse); bool disallow_non_exact_reuse);
// Constructor for creating standard resources. // Constructor for creating standard resources.
ResourcePool(ResourceProvider* resource_provider, ResourcePool(LayerTreeResourceProvider* resource_provider,
bool gpu_resources, bool gpu_resources,
base::SingleThreadTaskRunner* task_runner, base::SingleThreadTaskRunner* task_runner,
viz::ResourceTextureHint hint, viz::ResourceTextureHint hint,
...@@ -128,11 +134,11 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -128,11 +134,11 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
class PoolResource : public ScopedResource { class PoolResource : public ScopedResource {
public: public:
static std::unique_ptr<PoolResource> Create( static std::unique_ptr<PoolResource> Create(
ResourceProvider* resource_provider) { LayerTreeResourceProvider* resource_provider) {
return base::WrapUnique(new PoolResource(resource_provider)); return base::WrapUnique(new PoolResource(resource_provider));
} }
void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd,
const ResourceProvider* resource_provider, const LayerTreeResourceProvider* resource_provider,
bool is_free) const; bool is_free) const;
uint64_t content_id() const { return content_id_; } uint64_t content_id() const { return content_id_; }
...@@ -147,7 +153,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -147,7 +153,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
} }
private: private:
explicit PoolResource(ResourceProvider* resource_provider) explicit PoolResource(LayerTreeResourceProvider* resource_provider)
: ScopedResource(resource_provider), content_id_(0) {} : ScopedResource(resource_provider), content_id_(0) {}
uint64_t content_id_; uint64_t content_id_;
base::TimeTicks last_usage_; base::TimeTicks last_usage_;
...@@ -178,7 +184,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider, ...@@ -178,7 +184,7 @@ class CC_EXPORT ResourcePool : public base::trace_event::MemoryDumpProvider,
bool HasEvictableResources() const; bool HasEvictableResources() const;
base::TimeTicks GetUsageTimeForLRUResource() const; base::TimeTicks GetUsageTimeForLRUResource() const;
ResourceProvider* resource_provider_ = nullptr; LayerTreeResourceProvider* resource_provider_ = nullptr;
bool use_gpu_resources_ = false; bool use_gpu_resources_ = false;
bool use_gpu_memory_buffers_ = false; bool use_gpu_memory_buffers_ = false;
gfx::BufferUsage usage_ = gfx::BufferUsage::GPU_READ_CPU_READ_WRITE; gfx::BufferUsage usage_ = gfx::BufferUsage::GPU_READ_CPU_READ_WRITE;
......
...@@ -22,8 +22,8 @@ class ResourcePoolTest : public testing::Test { ...@@ -22,8 +22,8 @@ class ResourcePoolTest : public testing::Test {
void SetUp() override { void SetUp() override {
context_provider_ = TestContextProvider::Create(); context_provider_ = TestContextProvider::Create();
context_provider_->BindToCurrentThread(); context_provider_->BindToCurrentThread();
resource_provider_ = resource_provider_ = FakeResourceProvider::CreateLayerTreeResourceProvider(
FakeResourceProvider::Create(context_provider_.get(), nullptr); context_provider_.get(), nullptr);
task_runner_ = base::ThreadTaskRunnerHandle::Get(); task_runner_ = base::ThreadTaskRunnerHandle::Get();
resource_pool_ = resource_pool_ =
ResourcePool::Create(resource_provider_.get(), true, task_runner_.get(), ResourcePool::Create(resource_provider_.get(), true, task_runner_.get(),
...@@ -39,7 +39,7 @@ class ResourcePoolTest : public testing::Test { ...@@ -39,7 +39,7 @@ class ResourcePoolTest : public testing::Test {
} }
scoped_refptr<TestContextProvider> context_provider_; scoped_refptr<TestContextProvider> context_provider_;
std::unique_ptr<ResourceProvider> resource_provider_; std::unique_ptr<LayerTreeResourceProvider> resource_provider_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
std::unique_ptr<ResourcePool> resource_pool_; std::unique_ptr<ResourcePool> resource_pool_;
}; };
......
...@@ -4,9 +4,11 @@ ...@@ -4,9 +4,11 @@
#include "cc/resources/scoped_resource.h" #include "cc/resources/scoped_resource.h"
#include "cc/resources/layer_tree_resource_provider.h"
namespace cc { namespace cc {
ScopedResource::ScopedResource(ResourceProvider* resource_provider) ScopedResource::ScopedResource(LayerTreeResourceProvider* resource_provider)
: resource_provider_(resource_provider) { : resource_provider_(resource_provider) {
DCHECK(resource_provider_); DCHECK(resource_provider_);
} }
......
...@@ -12,16 +12,19 @@ ...@@ -12,16 +12,19 @@
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "cc/cc_export.h" #include "cc/cc_export.h"
#include "cc/resources/resource.h" #include "cc/resources/resource.h"
#include "components/viz/common/resources/resource_texture_hint.h"
#include "ui/gfx/buffer_types.h"
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
#include "base/threading/platform_thread.h" #include "base/threading/platform_thread.h"
#endif #endif
namespace cc { namespace cc {
class LayerTreeResourceProvider;
class CC_EXPORT ScopedResource : public Resource { class CC_EXPORT ScopedResource : public Resource {
public: public:
explicit ScopedResource(ResourceProvider* provider); explicit ScopedResource(LayerTreeResourceProvider* provider);
virtual ~ScopedResource(); virtual ~ScopedResource();
void AllocateSoftware(const gfx::Size& size, void AllocateSoftware(const gfx::Size& size,
...@@ -39,7 +42,7 @@ class CC_EXPORT ScopedResource : public Resource { ...@@ -39,7 +42,7 @@ class CC_EXPORT ScopedResource : public Resource {
viz::ResourceTextureHint hint() const { return hint_; } viz::ResourceTextureHint hint() const { return hint_; }
private: private:
ResourceProvider* resource_provider_; LayerTreeResourceProvider* resource_provider_;
viz::ResourceTextureHint hint_ = viz::ResourceTextureHint::kDefault; viz::ResourceTextureHint hint_ = viz::ResourceTextureHint::kDefault;
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
......
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
#include <stddef.h> #include <stddef.h>
#include "cc/resources/resource_util.h"
#include "cc/test/fake_resource_provider.h" #include "cc/test/fake_resource_provider.h"
#include "cc/test/test_context_provider.h" #include "cc/test/test_context_provider.h"
#include "cc/test/test_shared_bitmap_manager.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace cc { namespace cc {
...@@ -20,11 +20,9 @@ TEST(ScopedResourceTest, NewScopedResource) { ...@@ -20,11 +20,9 @@ TEST(ScopedResourceTest, NewScopedResource) {
ASSERT_EQ(context_provider->BindToCurrentThread(), ASSERT_EQ(context_provider->BindToCurrentThread(),
gpu::ContextResult::kSuccess); gpu::ContextResult::kSuccess);
std::unique_ptr<viz::SharedBitmapManager> shared_bitmap_manager( std::unique_ptr<LayerTreeResourceProvider> resource_provider =
new TestSharedBitmapManager()); FakeResourceProvider::CreateLayerTreeResourceProvider(
std::unique_ptr<ResourceProvider> resource_provider = context_provider.get(), nullptr);
FakeResourceProvider::Create(context_provider.get(),
shared_bitmap_manager.get());
auto texture = std::make_unique<ScopedResource>(resource_provider.get()); auto texture = std::make_unique<ScopedResource>(resource_provider.get());
// New scoped textures do not hold a texture yet. // New scoped textures do not hold a texture yet.
...@@ -42,11 +40,9 @@ TEST(ScopedResourceTest, CreateScopedResource) { ...@@ -42,11 +40,9 @@ TEST(ScopedResourceTest, CreateScopedResource) {
ASSERT_EQ(context_provider->BindToCurrentThread(), ASSERT_EQ(context_provider->BindToCurrentThread(),
gpu::ContextResult::kSuccess); gpu::ContextResult::kSuccess);
std::unique_ptr<viz::SharedBitmapManager> shared_bitmap_manager( std::unique_ptr<LayerTreeResourceProvider> resource_provider =
new TestSharedBitmapManager()); FakeResourceProvider::CreateLayerTreeResourceProvider(
std::unique_ptr<ResourceProvider> resource_provider = context_provider.get(), nullptr);
FakeResourceProvider::Create(context_provider.get(),
shared_bitmap_manager.get());
auto texture = std::make_unique<ScopedResource>(resource_provider.get()); auto texture = std::make_unique<ScopedResource>(resource_provider.get());
texture->AllocateGpuTexture(gfx::Size(30, 30), texture->AllocateGpuTexture(gfx::Size(30, 30),
viz::ResourceTextureHint::kDefault, viz::ResourceTextureHint::kDefault,
...@@ -69,11 +65,9 @@ TEST(ScopedResourceTest, ScopedResourceIsDeleted) { ...@@ -69,11 +65,9 @@ TEST(ScopedResourceTest, ScopedResourceIsDeleted) {
ASSERT_EQ(context_provider->BindToCurrentThread(), ASSERT_EQ(context_provider->BindToCurrentThread(),
gpu::ContextResult::kSuccess); gpu::ContextResult::kSuccess);
std::unique_ptr<viz::SharedBitmapManager> shared_bitmap_manager( std::unique_ptr<LayerTreeResourceProvider> resource_provider =
new TestSharedBitmapManager()); FakeResourceProvider::CreateLayerTreeResourceProvider(
std::unique_ptr<ResourceProvider> resource_provider = context_provider.get(), nullptr);
FakeResourceProvider::Create(context_provider.get(),
shared_bitmap_manager.get());
{ {
auto texture = std::make_unique<ScopedResource>(resource_provider.get()); auto texture = std::make_unique<ScopedResource>(resource_provider.get());
......
...@@ -22,7 +22,7 @@ FakePictureLayerTilingClient::FakePictureLayerTilingClient() ...@@ -22,7 +22,7 @@ FakePictureLayerTilingClient::FakePictureLayerTilingClient()
has_valid_tile_priorities_(true) {} has_valid_tile_priorities_(true) {}
FakePictureLayerTilingClient::FakePictureLayerTilingClient( FakePictureLayerTilingClient::FakePictureLayerTilingClient(
ResourceProvider* resource_provider) LayerTreeResourceProvider* resource_provider)
: resource_pool_( : resource_pool_(
ResourcePool::Create(resource_provider, ResourcePool::Create(resource_provider,
true, true,
......
...@@ -13,11 +13,13 @@ ...@@ -13,11 +13,13 @@
#include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect.h"
namespace cc { namespace cc {
class LayerTreeResourceProvider;
class FakePictureLayerTilingClient : public PictureLayerTilingClient { class FakePictureLayerTilingClient : public PictureLayerTilingClient {
public: public:
FakePictureLayerTilingClient(); FakePictureLayerTilingClient();
explicit FakePictureLayerTilingClient(ResourceProvider* resource_provider); explicit FakePictureLayerTilingClient(
LayerTreeResourceProvider* resource_provider);
~FakePictureLayerTilingClient() override; ~FakePictureLayerTilingClient() override;
// PictureLayerTilingClient implementation. // PictureLayerTilingClient implementation.
......
...@@ -250,7 +250,7 @@ class PictureLayerTilingSetTestWithResources : public testing::Test { ...@@ -250,7 +250,7 @@ class PictureLayerTilingSetTestWithResources : public testing::Test {
ASSERT_EQ(context_provider->BindToCurrentThread(), ASSERT_EQ(context_provider->BindToCurrentThread(),
gpu::ContextResult::kSuccess); gpu::ContextResult::kSuccess);
auto shared_bitmap_manager = std::make_unique<TestSharedBitmapManager>(); auto shared_bitmap_manager = std::make_unique<TestSharedBitmapManager>();
std::unique_ptr<ResourceProvider> resource_provider = std::unique_ptr<LayerTreeResourceProvider> resource_provider =
FakeResourceProvider::CreateLayerTreeResourceProvider( FakeResourceProvider::CreateLayerTreeResourceProvider(
context_provider.get(), shared_bitmap_manager.get()); context_provider.get(), shared_bitmap_manager.get());
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "base/trace_event/trace_event_argument.h" #include "base/trace_event/trace_event_argument.h"
#include "cc/base/math_util.h" #include "cc/base/math_util.h"
#include "cc/resources/resource_util.h"
#include "cc/tiles/tile_manager.h" #include "cc/tiles/tile_manager.h"
#include "components/viz/common/traced_value.h" #include "components/viz/common/traced_value.h"
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "cc/resources/resource_provider.h" #include "cc/resources/resource_provider.h"
#include "cc/resources/scoped_resource.h" #include "cc/resources/scoped_resource.h"
#include "components/viz/common/resources/platform_color.h" #include "components/viz/common/resources/platform_color.h"
#include "components/viz/common/resources/resource_format_utils.h"
namespace cc { namespace cc {
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "cc/raster/playback_image_provider.h" #include "cc/raster/playback_image_provider.h"
#include "cc/raster/raster_buffer.h" #include "cc/raster/raster_buffer.h"
#include "cc/raster/task_category.h" #include "cc/raster/task_category.h"
#include "cc/resources/resource_util.h"
#include "cc/tiles/frame_viewer_instrumentation.h" #include "cc/tiles/frame_viewer_instrumentation.h"
#include "cc/tiles/tile.h" #include "cc/tiles/tile.h"
#include "ui/gfx/geometry/axis_transform2d.h" #include "ui/gfx/geometry/axis_transform2d.h"
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "cc/raster/raster_source.h" #include "cc/raster/raster_source.h"
#include "cc/raster/synchronous_task_graph_runner.h" #include "cc/raster/synchronous_task_graph_runner.h"
#include "cc/resources/resource_pool.h" #include "cc/resources/resource_pool.h"
#include "cc/resources/resource_util.h"
#include "cc/test/fake_impl_task_runner_provider.h" #include "cc/test/fake_impl_task_runner_provider.h"
#include "cc/test/fake_layer_tree_frame_sink.h" #include "cc/test/fake_layer_tree_frame_sink.h"
#include "cc/test/fake_layer_tree_frame_sink_client.h" #include "cc/test/fake_layer_tree_frame_sink_client.h"
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#include "components/viz/common/resources/platform_color.h" #include "components/viz/common/resources/platform_color.h"
#include "components/viz/common/resources/resource.h" #include "components/viz/common/resources/resource.h"
#include "components/viz/common/resources/resource_fence.h" #include "components/viz/common/resources/resource_fence.h"
#include "components/viz/common/resources/resource_format_utils.h"
#include "components/viz/service/display/draw_polygon.h" #include "components/viz/service/display/draw_polygon.h"
#include "components/viz/service/display/dynamic_geometry_binding.h" #include "components/viz/service/display/dynamic_geometry_binding.h"
#include "components/viz/service/display/layer_quad.h" #include "components/viz/service/display/layer_quad.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment