Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: cc/output/output_surface.cc

Issue 22900018: cc: Set the mapped memory reclaim limit for the renderer compositor on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move max_transfer_buffer_usage_bytes to OutputSurface::Capabilities Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/output/output_surface.h" 5 #include "cc/output/output_surface.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "ui/gfx/rect.h" 24 #include "ui/gfx/rect.h"
25 #include "ui/gfx/size.h" 25 #include "ui/gfx/size.h"
26 26
27 using std::set; 27 using std::set;
28 using std::string; 28 using std::string;
29 using std::vector; 29 using std::vector;
30 30
31 namespace cc { 31 namespace cc {
32 32
33 OutputSurface::OutputSurface( 33 OutputSurface::OutputSurface(
34 scoped_refptr<ContextProvider> context_provider) 34 scoped_refptr<ContextProvider> context_provider,
35 size_t max_transfer_buffer_usage_bytes)
35 : context_provider_(context_provider), 36 : context_provider_(context_provider),
36 has_gl_discard_backbuffer_(false), 37 has_gl_discard_backbuffer_(false),
37 has_swap_buffers_complete_callback_(false), 38 has_swap_buffers_complete_callback_(false),
38 device_scale_factor_(-1), 39 device_scale_factor_(-1),
39 weak_ptr_factory_(this), 40 weak_ptr_factory_(this),
40 max_frames_pending_(0), 41 max_frames_pending_(0),
41 pending_swap_buffers_(0), 42 pending_swap_buffers_(0),
42 needs_begin_frame_(false), 43 needs_begin_frame_(false),
43 begin_frame_pending_(false), 44 begin_frame_pending_(false),
44 client_(NULL), 45 client_(NULL),
45 check_for_retroactive_begin_frame_pending_(false) { 46 check_for_retroactive_begin_frame_pending_(false) {
47 capabilities_.max_transfer_buffer_usage_bytes =
48 max_transfer_buffer_usage_bytes;
46 } 49 }
47 50
48 OutputSurface::OutputSurface( 51 OutputSurface::OutputSurface(
49 scoped_ptr<cc::SoftwareOutputDevice> software_device) 52 scoped_ptr<cc::SoftwareOutputDevice> software_device,
53 size_t max_transfer_buffer_usage_bytes)
50 : software_device_(software_device.Pass()), 54 : software_device_(software_device.Pass()),
51 has_gl_discard_backbuffer_(false), 55 has_gl_discard_backbuffer_(false),
52 has_swap_buffers_complete_callback_(false), 56 has_swap_buffers_complete_callback_(false),
53 device_scale_factor_(-1), 57 device_scale_factor_(-1),
54 weak_ptr_factory_(this), 58 weak_ptr_factory_(this),
55 max_frames_pending_(0), 59 max_frames_pending_(0),
56 pending_swap_buffers_(0), 60 pending_swap_buffers_(0),
57 needs_begin_frame_(false), 61 needs_begin_frame_(false),
58 begin_frame_pending_(false), 62 begin_frame_pending_(false),
59 client_(NULL), 63 client_(NULL),
60 check_for_retroactive_begin_frame_pending_(false) { 64 check_for_retroactive_begin_frame_pending_(false) {
65 capabilities_.max_transfer_buffer_usage_bytes =
66 max_transfer_buffer_usage_bytes;
61 } 67 }
62 68
63 OutputSurface::OutputSurface( 69 OutputSurface::OutputSurface(
64 scoped_refptr<ContextProvider> context_provider, 70 scoped_refptr<ContextProvider> context_provider,
65 scoped_ptr<cc::SoftwareOutputDevice> software_device) 71 scoped_ptr<cc::SoftwareOutputDevice> software_device,
72 size_t max_transfer_buffer_usage_bytes)
66 : context_provider_(context_provider), 73 : context_provider_(context_provider),
67 software_device_(software_device.Pass()), 74 software_device_(software_device.Pass()),
68 has_gl_discard_backbuffer_(false), 75 has_gl_discard_backbuffer_(false),
69 has_swap_buffers_complete_callback_(false), 76 has_swap_buffers_complete_callback_(false),
70 device_scale_factor_(-1), 77 device_scale_factor_(-1),
71 weak_ptr_factory_(this), 78 weak_ptr_factory_(this),
72 max_frames_pending_(0), 79 max_frames_pending_(0),
73 pending_swap_buffers_(0), 80 pending_swap_buffers_(0),
74 needs_begin_frame_(false), 81 needs_begin_frame_(false),
75 begin_frame_pending_(false), 82 begin_frame_pending_(false),
76 client_(NULL), 83 client_(NULL),
77 check_for_retroactive_begin_frame_pending_(false) { 84 check_for_retroactive_begin_frame_pending_(false) {
85 capabilities_.max_transfer_buffer_usage_bytes =
86 max_transfer_buffer_usage_bytes;
78 } 87 }
79 88
80 void OutputSurface::InitializeBeginFrameEmulation( 89 void OutputSurface::InitializeBeginFrameEmulation(
81 base::SingleThreadTaskRunner* task_runner, 90 base::SingleThreadTaskRunner* task_runner,
82 bool throttle_frame_production, 91 bool throttle_frame_production,
83 base::TimeDelta interval) { 92 base::TimeDelta interval) {
84 if (throttle_frame_production) { 93 if (throttle_frame_production) {
85 frame_rate_controller_.reset( 94 frame_rate_controller_.reset(
86 new FrameRateController( 95 new FrameRateController(
87 DelayBasedTimeSource::Create(interval, task_runner))); 96 DelayBasedTimeSource::Create(interval, task_runner)));
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 "bytes_limit_when_visible", policy.bytes_limit_when_visible, 409 "bytes_limit_when_visible", policy.bytes_limit_when_visible,
401 "discard_backbuffer", discard_backbuffer); 410 "discard_backbuffer", discard_backbuffer);
402 // Just ignore the memory manager when it says to set the limit to zero 411 // Just ignore the memory manager when it says to set the limit to zero
403 // bytes. This will happen when the memory manager thinks that the renderer 412 // bytes. This will happen when the memory manager thinks that the renderer
404 // is not visible (which the renderer knows better). 413 // is not visible (which the renderer knows better).
405 if (policy.bytes_limit_when_visible) 414 if (policy.bytes_limit_when_visible)
406 client_->SetMemoryPolicy(policy); 415 client_->SetMemoryPolicy(policy);
407 client_->SetDiscardBackBufferWhenNotVisible(discard_backbuffer); 416 client_->SetDiscardBackBufferWhenNotVisible(discard_backbuffer);
408 } 417 }
409 418
419 const size_t OutputSurface::kDefaultMaxTransferBufferUsageBytes =
420 std::numeric_limits<size_t>::max();
421
410 } // namespace cc 422 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698