Aggregate encoded-geometry work retained by one renderer frame.
More...
#include "donner/svg/renderer/geode/GeodeResourceBudget.h"
|
| struct | Limits |
| | Caller-selected frame limits for draws, items, and retained bytes. More...
|
|
|
void | reset () |
| | Begin a new frame with zero charges and no latched rejection.
|
| bool | reserve (std::size_t draws, std::size_t items, std::uint64_t retainedBytes) |
| | Charge draw, item, and retained-byte work to the current frame.
|
| void | release (std::size_t draws, std::size_t items, std::uint64_t retainedBytes) |
| | Subtract charges when frame geometry is discarded, saturating each counter at zero.
|
|
void | reject () |
| | Latch the current frame as rejected after an external geometry failure.
|
| void | setLimitsForTesting (Limits limits) |
| | Tighten frame limits for a test; this never raises a production limit.
|
|
std::size_t | draws () const |
| | Draw calls charged to the current frame.
|
|
std::size_t | items () const |
| | Encoded geometry items charged to the current frame.
|
|
std::uint64_t | retainedBytes () const |
| | Geometry bytes charged to the current frame.
|
|
bool | rejected () const |
| | Whether frame geometry admission has been rejected.
|
|
|
static constexpr std::size_t | kMaximumDraws = 64u * 1024u |
| | Maximum encoded geometry draw calls admitted in one frame.
|
|
static constexpr std::size_t | kMaximumItems = 4u << 20 |
| | Sized with the text budget for about ten dense pages of instanced glyphs per frame.
|
|
static constexpr std::uint64_t | kMaximumRetainedBytes = 256u << 20 |
| | Maximum encoded geometry bytes retained for one frame.
|
Aggregate encoded-geometry work retained by one renderer frame.
◆ donner::geode::GeodeFrameGeometryBudget::Limits
| struct donner::geode::GeodeFrameGeometryBudget::Limits |
Caller-selected frame limits for draws, items, and retained bytes.
◆ release()
| void donner::geode::GeodeFrameGeometryBudget::release |
( |
std::size_t | draws, |
|
|
std::size_t | items, |
|
|
std::uint64_t | retainedBytes ) |
|
inline |
Subtract charges when frame geometry is discarded, saturating each counter at zero.
- Parameters
-
| draws | Draw calls to release. |
| items | Encoded items to release. |
| retainedBytes | Geometry bytes to release. |
◆ reserve()
| bool donner::geode::GeodeFrameGeometryBudget::reserve |
( |
std::size_t | draws, |
|
|
std::size_t | items, |
|
|
std::uint64_t | retainedBytes ) |
|
inlinenodiscard |
Charge draw, item, and retained-byte work to the current frame.
- Parameters
-
| draws | Additional draw calls. |
| items | Additional encoded geometry items. |
| retainedBytes | Additional retained geometry bytes. |
- Returns
- False if any limit is exceeded or the frame was already rejected.
◆ setLimitsForTesting()
| void donner::geode::GeodeFrameGeometryBudget::setLimitsForTesting |
( |
Limits | limits | ) |
|
|
inline |
Tighten frame limits for a test; this never raises a production limit.
- Parameters
-
| limits | Requested upper bounds for each frame charge. |
The documentation for this class was generated from the following file: