Open devshgraphicsprogramming opened 5 years ago
The heuristics of this thing https://github.com/buildaworldnet/IrrlichtBAW/blob/master/source/Irrlicht/CFPSCounter.cpp are abysmal
Also make it possible to collect other statistics within the time period, such as:
_IRR_MALLOC_ALIGNED
in the time period (only if compiled with correct flag, dont want to add that overhead to release configs)IDriver::createBuffer
* and Driver Memory Object AllocationsShould probably integrate Tracy or some other CPU and GPU profiler
Provide this via an
irr::ext::perf_counter
, get the times via GPU time elapsed query ( actually have two modes to measure elapsed time queries betweenstart_lap
/stop_lap
, one for CPU and one for GPU time taken) .Keep the last N frametimes (in uint32_t microseconds) in a pre-allocated uint32_t* buffer (use %N addressing). Doesn't matter if measuring GPU or CPU timestamp.
Provide an
irr::ext::perf_graph
extension to visualize graphs on screen (with anti-aliased lines with blending), with a user specified sample delay (show data from K frames behind).Preferrrably
irr::ext::perf_counter
would output into a persistenly mapped IGPUBuffer which would be used byirr::ext::perf_graph
as an UBO for the pixel shader that would draw the graph.We want to measure multiple things and have multiple graphs.
Also
irr::ext:perf_counter
should have an option to serialize to a std::string .csv style.