17 #ifndef EFFECT_BENCHMARK_H
18 #define EFFECT_BENCHMARK_H
26 #define BENCH_MEASURE_FRAMES 120
29 #define BENCH_WARMUP_FRAMES 30
32 #define BENCH_MAX_EFFECTS 16
35 #define BENCH_TIMEOUT_MS 2000.0F
void effect_benchmark_log_results(const EffectBenchmark *bench)
Logs all results to the console via LOG_INFO.
Definition: effect_benchmark.c:312
bool effect_benchmark_is_running(const EffectBenchmark *bench)
Returns true if a benchmark is currently running.
Definition: effect_benchmark.c:183
#define BENCH_MAX_EFFECTS
Maximum number of effects that can be benchmarked.
Definition: effect_benchmark.h:32
bool effect_benchmark_start(EffectBenchmark *bench)
Starts a new benchmark sweep.
Definition: effect_benchmark.c:147
void effect_benchmark_init(EffectBenchmark *bench, PostProcess *postprocess, GPUProfiler *profiler)
Initializes the benchmark (call once at startup).
Definition: effect_benchmark.c:128
bool effect_benchmark_update(EffectBenchmark *bench)
Per-frame update. Call after gpu_profiler_begin_frame().
Definition: effect_benchmark.c:190
BenchPhase
State machine phases for the benchmark sweep.
Definition: effect_benchmark.h:41
@ BENCH_DONE
Definition: effect_benchmark.h:46
@ BENCH_BASELINE
Definition: effect_benchmark.h:43
@ BENCH_STABILIZE
Definition: effect_benchmark.h:44
@ BENCH_IDLE
Definition: effect_benchmark.h:42
@ BENCH_EFFECT_TEST
Definition: effect_benchmark.h:45
Timing result for a single effect.
Definition: effect_benchmark.h:53
float mean_ms
Definition: effect_benchmark.h:56
unsigned int effect_bit
Definition: effect_benchmark.h:55
const char * name
Definition: effect_benchmark.h:54
float stddev_ms
Definition: effect_benchmark.h:57
float cost_ms
Definition: effect_benchmark.h:58
State for the automated benchmark sweep.
Definition: effect_benchmark.h:65
double sum_sq_ms
Definition: effect_benchmark.h:91
EffectBenchResult results[16]
Definition: effect_benchmark.h:97
PostProcess * postprocess
Definition: effect_benchmark.h:67
unsigned int bit
Definition: effect_benchmark.h:79
unsigned int benchmark_effects
Definition: effect_benchmark.h:74
int result_count
Definition: effect_benchmark.h:98
int frame_counter
Definition: effect_benchmark.h:86
float baseline_stddev_ms
Definition: effect_benchmark.h:96
const char * name
Definition: effect_benchmark.h:78
struct EffectBenchmark::@10 effects[16]
double sum_ms
Definition: effect_benchmark.h:90
int current_effect_idx
Definition: effect_benchmark.h:85
unsigned int saved_effects
Definition: effect_benchmark.h:71
BenchPhase phase
Definition: effect_benchmark.h:66
float baseline_mean_ms
Definition: effect_benchmark.h:95
GPUProfiler * profiler
Definition: effect_benchmark.h:68
int sample_count
Definition: effect_benchmark.h:92
int effect_count
Definition: effect_benchmark.h:82
float timeout_timer
Definition: effect_benchmark.h:87
Manages GPU timing using double-buffered queries to avoid stalls.
Definition: gpu_profiler.h:86
Main pipeline state for post-processing.
Definition: postprocess_internal.h:46