diff options
author | kaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 00:51:01 +0000 |
---|---|---|
committer | kaanb@chromium.org <kaanb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-10 00:51:01 +0000 |
commit | b6eb8e33fe3016bfe3de118e4d7c2cad0aa4621b (patch) | |
tree | b0933c62e22bb7992c663cff38491e62c5877c1b /cc/debug | |
parent | b203d39dc0c292f09e6c359a8b3831bceb0941b6 (diff) | |
download | chromium_src-b6eb8e33fe3016bfe3de118e4d7c2cad0aa4621b.zip chromium_src-b6eb8e33fe3016bfe3de118e4d7c2cad0aa4621b.tar.gz chromium_src-b6eb8e33fe3016bfe3de118e4d7c2cad0aa4621b.tar.bz2 |
Sets the mapped memory reclaim limit for the renderer compositor on Android. Also moves the max_bytes_pending_upload limit of the PixelBufferRasterWorkerPool to the RenderWidgetCompositor since the mapped memory reclaim limit depends on it.
BUG=272591
Review URL: https://chromiumcodereview.appspot.com/22900018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222158 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug')
-rw-r--r-- | cc/debug/test_context_provider.cc | 5 | ||||
-rw-r--r-- | cc/debug/test_context_provider.h | 2 | ||||
-rw-r--r-- | cc/debug/test_web_graphics_context_3d.cc | 29 | ||||
-rw-r--r-- | cc/debug/test_web_graphics_context_3d.h | 4 |
4 files changed, 36 insertions, 4 deletions
diff --git a/cc/debug/test_context_provider.cc b/cc/debug/test_context_provider.cc index 0d6fc01..d09ecd86 100644 --- a/cc/debug/test_context_provider.cc +++ b/cc/debug/test_context_provider.cc @@ -232,4 +232,9 @@ void TestContextProvider::SetMemoryPolicyChangedCallback( memory_policy_changed_callback_ = cb; } +void TestContextProvider::SetMaxTransferBufferUsageBytes( + size_t max_transfer_buffer_usage_bytes) { + context3d_->SetMaxTransferBufferUsageBytes(max_transfer_buffer_usage_bytes); +} + } // namespace cc diff --git a/cc/debug/test_context_provider.h b/cc/debug/test_context_provider.h index 0be90af..0401fcf 100644 --- a/cc/debug/test_context_provider.h +++ b/cc/debug/test_context_provider.h @@ -52,6 +52,8 @@ class CC_EXPORT TestContextProvider void SetMemoryAllocation(const ManagedMemoryPolicy& policy, bool discard_backbuffer_when_not_visible); + void SetMaxTransferBufferUsageBytes(size_t max_transfer_buffer_usage_bytes); + protected: TestContextProvider(); virtual ~TestContextProvider(); diff --git a/cc/debug/test_web_graphics_context_3d.cc b/cc/debug/test_web_graphics_context_3d.cc index 04027ae..634778f 100644 --- a/cc/debug/test_web_graphics_context_3d.cc +++ b/cc/debug/test_web_graphics_context_3d.cc @@ -481,13 +481,16 @@ void TestWebGraphicsContext3D::bufferData(WebKit::WGC3Denum target, base::ScopedPtrHashMap<unsigned, Buffer>& buffers = namespace_->buffers; DCHECK_GT(buffers.count(bound_buffer_), 0u); DCHECK_EQ(target, buffers.get(bound_buffer_)->target); + Buffer* buffer = buffers.get(bound_buffer_); if (context_lost_) { - buffers.get(bound_buffer_)->pixels.reset(); + buffer->pixels.reset(); return; } - buffers.get(bound_buffer_)->pixels.reset(new uint8[size]); + + buffer->pixels.reset(new uint8[size]); + buffer->size = size; if (data != NULL) - memcpy(buffers.get(bound_buffer_)->pixels.get(), data, size); + memcpy(buffer->pixels.get(), data, size); } void* TestWebGraphicsContext3D::mapBufferCHROMIUM(WebKit::WGC3Denum target, @@ -600,7 +603,25 @@ WebKit::WGC3Duint TestWebGraphicsContext3D::NextImageId() { return image_id; } -TestWebGraphicsContext3D::Buffer::Buffer() : target(0) {} +size_t TestWebGraphicsContext3D::GetTransferBufferMemoryUsedBytes() const { + size_t total_bytes = 0; + base::ScopedPtrHashMap<unsigned, Buffer>& buffers = namespace_->buffers; + base::ScopedPtrHashMap<unsigned, Buffer>::iterator it = buffers.begin(); + for (; it != buffers.end(); ++it) { + Buffer* buffer = it->second; + if (buffer->target == GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM) + total_bytes += buffer->size; + } + return total_bytes; +} + +void TestWebGraphicsContext3D::SetMaxTransferBufferUsageBytes( + size_t max_transfer_buffer_usage_bytes) { + test_capabilities_.max_transfer_buffer_usage_bytes = + max_transfer_buffer_usage_bytes; +} + +TestWebGraphicsContext3D::Buffer::Buffer() : target(0), size(0) {} TestWebGraphicsContext3D::Buffer::~Buffer() {} diff --git a/cc/debug/test_web_graphics_context_3d.h b/cc/debug/test_web_graphics_context_3d.h index 3dfc7ed..3cc7073 100644 --- a/cc/debug/test_web_graphics_context_3d.h +++ b/cc/debug/test_web_graphics_context_3d.h @@ -205,6 +205,9 @@ class CC_EXPORT TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { virtual WebKit::WebGLId NextImageId(); + size_t GetTransferBufferMemoryUsedBytes() const; + void SetMaxTransferBufferUsageBytes(size_t max_transfer_buffer_usage_bytes); + protected: struct Buffer { Buffer(); @@ -212,6 +215,7 @@ class CC_EXPORT TestWebGraphicsContext3D : public FakeWebGraphicsContext3D { WebKit::WGC3Denum target; scoped_ptr<uint8[]> pixels; + size_t size; private: DISALLOW_COPY_AND_ASSIGN(Buffer); |