Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::render::RenderPassManager Class Reference

Frame-level render pass manager. More...

#include <render_pass.hpp>

Public Member Functions

void begin_frame ()
 Begin a new frame. Resets all pass statistics.
void begin_pass (RenderPassType type)
 Begin a render pass of the given type.
void end_pass (float time_ms=0, int draw_calls=0)
 End the current render pass.
void end_frame ()
 End the frame.
void set_gpu_render_time_ms (float ms, bool valid)
 Feed the whole-recording GPU render time for this frame.
float gpu_render_time_ms () const
 Whole-recording GPU render time (ms) for the most recent frame that fed a valid sample.
bool gpu_render_timing_available () const
 Whether the frame-level whole-recording GPU render time holds a real, current sample.
void set_budget (float ms)
 Set the per-frame time budget in milliseconds (0 = no budget).
float budget () const
bool over_budget () const
 Whether the last frame exceeded its time budget.
float total_time_ms () const
 Total time for the last frame.
const std::vector< PassStats > & passes () const
 Get statistics for all passes in the last frame.
uint64_t frame_count () const
 Frame counter.
RenderPassType current_pass () const
 Current pass type.

Detailed Description

Frame-level render pass manager.

Tracks pass ordering, budgeting, and statistics.

Member Function Documentation

◆ begin_frame()

void pulp::render::RenderPassManager::begin_frame ( )
inline

Begin a new frame. Resets all pass statistics.

◆ begin_pass()

void pulp::render::RenderPassManager::begin_pass ( RenderPassType type)
inline

Begin a render pass of the given type.

◆ budget()

float pulp::render::RenderPassManager::budget ( ) const
inline

◆ current_pass()

RenderPassType pulp::render::RenderPassManager::current_pass ( ) const
inline

Current pass type.

◆ end_frame()

void pulp::render::RenderPassManager::end_frame ( )
inline

End the frame.

◆ end_pass()

void pulp::render::RenderPassManager::end_pass ( float time_ms = 0,
int draw_calls = 0 )
inline

End the current render pass.

◆ frame_count()

uint64_t pulp::render::RenderPassManager::frame_count ( ) const
inline

Frame counter.

◆ gpu_render_time_ms()

float pulp::render::RenderPassManager::gpu_render_time_ms ( ) const
inline

Whole-recording GPU render time (ms) for the most recent frame that fed a valid sample.

Only meaningful when gpu_render_timing_available() is true. Frame-level, NOT per-pass — see set_gpu_render_time_ms().

◆ gpu_render_timing_available()

bool pulp::render::RenderPassManager::gpu_render_timing_available ( ) const
inline

Whether the frame-level whole-recording GPU render time holds a real, current sample.

The inspector uses this to decide between showing the GPU render number and showing "GPU render timing unavailable".

◆ over_budget()

bool pulp::render::RenderPassManager::over_budget ( ) const
inline

Whether the last frame exceeded its time budget.

◆ passes()

const std::vector< PassStats > & pulp::render::RenderPassManager::passes ( ) const
inline

Get statistics for all passes in the last frame.

◆ set_budget()

void pulp::render::RenderPassManager::set_budget ( float ms)
inline

Set the per-frame time budget in milliseconds (0 = no budget).

At 60fps, budget should be ~16ms. At 120fps, ~8ms.

◆ set_gpu_render_time_ms()

void pulp::render::RenderPassManager::set_gpu_render_time_ms ( float ms,
bool valid )
inline

Feed the whole-recording GPU render time for this frame.

This is FRAME-LEVEL — the entire render recording's GPU-side elapsed time (Skia Graphite GpuStats(kElapsedTime), surfaced by SkiaSurface::gpu_render_time_ms() / WindowHost::gpu_render_time_ms()). It is the ONLY GPU-clock granularity Pulp exposes: per-pass GPU timing is structurally unavailable under Graphite (Graphite owns the command encoders), so the whole-recording number is the honest place to record the GPU clock. valid should reflect WindowHost::gpu_render_timing_available(). Negative durations are clamped to "invalid".

◆ total_time_ms()

float pulp::render::RenderPassManager::total_time_ms ( ) const
inline

Total time for the last frame.


The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/render/include/pulp/render/render_pass.hpp