54 gpu_render_time_valid_ =
false;
60 passes_.push_back({type, 0, 0});
64 void end_pass(
float time_ms = 0,
int draw_calls = 0) {
65 if (!passes_.empty()) {
66 passes_.back().time_ms = time_ms;
67 passes_.back().draw_calls = draw_calls;
68 total_time_ms_ += time_ms;
75 over_budget_ = (budget_ms_ > 0 && total_time_ms_ > budget_ms_);
90 if (valid && ms >= 0.0f) {
91 gpu_render_time_ms_ = ms;
92 gpu_render_time_valid_ =
true;
94 gpu_render_time_valid_ =
false;
111 float budget()
const {
return budget_ms_; }
120 const std::vector<PassStats>&
passes()
const {
return passes_; }
129 std::vector<PassStats> passes_;
131 float budget_ms_ = 16.67f;
132 float total_time_ms_ = 0;
133 bool over_budget_ =
false;
134 uint64_t frame_count_ = 0;
138 float gpu_render_time_ms_ = 0.0f;
139 bool gpu_render_time_valid_ =
false;
Frame-level render pass manager.
Definition render_pass.hpp:41
uint64_t frame_count() const
Frame counter.
Definition render_pass.hpp:123
void end_frame()
End the frame.
Definition render_pass.hpp:73
void end_pass(float time_ms=0, int draw_calls=0)
End the current render pass.
Definition render_pass.hpp:64
void set_gpu_render_time_ms(float ms, bool valid)
Feed the whole-recording GPU render time for this frame.
Definition render_pass.hpp:89
float gpu_render_time_ms() const
Whole-recording GPU render time (ms) for the most recent frame that fed a valid sample.
Definition render_pass.hpp:101
bool gpu_render_timing_available() const
Whether the frame-level whole-recording GPU render time holds a real, current sample.
Definition render_pass.hpp:106
void set_budget(float ms)
Set the per-frame time budget in milliseconds (0 = no budget).
Definition render_pass.hpp:110
void begin_frame()
Begin a new frame. Resets all pass statistics.
Definition render_pass.hpp:44
float budget() const
Definition render_pass.hpp:111
void begin_pass(RenderPassType type)
Begin a render pass of the given type.
Definition render_pass.hpp:58
float total_time_ms() const
Total time for the last frame.
Definition render_pass.hpp:117
bool over_budget() const
Whether the last frame exceeded its time budget.
Definition render_pass.hpp:114
RenderPassType current_pass() const
Current pass type.
Definition render_pass.hpp:126
const std::vector< PassStats > & passes() const
Get statistics for all passes in the last frame.
Definition render_pass.hpp:120
Definition gpu_fwd.hpp:31
RenderPassType
Defines the ordering of render passes in a frame.
Definition render_pass.hpp:12
@ effects
Per-layer effects (blur, bloom).
Definition render_pass.hpp:15
@ overlay
Tooltips, dropdowns, modals (always on top).
Definition render_pass.hpp:16
@ post_effects
Full-frame post-processing (vignette, color grading).
Definition render_pass.hpp:17
@ content
Main widget content (knobs, faders, meters).
Definition render_pass.hpp:14
@ background
Static backgrounds, panel fills.
Definition render_pass.hpp:13
Statistics for a single render pass.
Definition render_pass.hpp:28
RenderPassType type
Definition render_pass.hpp:29
float cpu_time_ms() const
Explicit alias for the CPU number.
Definition render_pass.hpp:36
float time_ms
CPU wall-time around draw submission (ms).
Definition render_pass.hpp:31
int draw_calls
Definition render_pass.hpp:30