GPU workaround to simulate Out of Memory errors with large textures
[chromium-blink-merge.git] / cc / output / managed_memory_policy.h
blobad0224b6c42ca4f55dba72e9b2ea166fb767162b
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CC_OUTPUT_MANAGED_MEMORY_POLICY_H_
6 #define CC_OUTPUT_MANAGED_MEMORY_POLICY_H_
8 #include "base/basictypes.h"
9 #include "cc/base/cc_export.h"
10 #include "cc/resources/tile_priority.h"
11 #include "gpu/command_buffer/common/gpu_memory_allocation.h"
13 namespace cc {
15 struct CC_EXPORT ManagedMemoryPolicy {
16 static const size_t kDefaultNumResourcesLimit;
18 explicit ManagedMemoryPolicy(size_t bytes_limit_when_visible);
19 explicit ManagedMemoryPolicy(
20 const gpu::MemoryAllocation& allocation);
21 ManagedMemoryPolicy(
22 size_t bytes_limit_when_visible,
23 gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible,
24 size_t num_resources_limit);
25 bool operator==(const ManagedMemoryPolicy&) const;
26 bool operator!=(const ManagedMemoryPolicy&) const;
28 size_t bytes_limit_when_visible;
29 gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible;
30 size_t num_resources_limit;
32 static int PriorityCutoffToValue(
33 gpu::MemoryAllocation::PriorityCutoff priority_cutoff);
34 static TileMemoryLimitPolicy PriorityCutoffToTileMemoryLimitPolicy(
35 gpu::MemoryAllocation::PriorityCutoff priority_cutoff);
38 } // namespace cc
40 #endif // CC_OUTPUT_MANAGED_MEMORY_POLICY_H_