Debugging

  • log crate

GPU Debugging

  • For WebGL there is SpectorJS is enabled by default right now. For debugging on a desktop environment you can use RenderDoc.

Frame Profiling

maplibre-rs is set up to use the Tracy profiler (https://github.com/wolfpld/tracy). It's mainly designed for C++ but has some Rust support.

The connection to Rust uses a project that connects to the tracing crate (https://github.com/nagisa/rust_tracy_client). This uses a set of three crates (tracing-tracy, tracy-client, tracy-client-sys).

Unfortunately, the Tracy project does not use semantic versioning, whereas tracing-tracy, tracy-client, tracy-client sys do.

The current version of the Rust client is at v0.8.1 of Tracy. See the correlating versions in the table below (original at https://github.com/nagisa/rust_tracy_client#version-support-table):

Tracytracy-client-systracy-clienttracing-tracy
0.7.10.9.00.8.00.2.0
0.7.30.10.00.9.00.3.0
0.7.40.11.00.10.00.4.0
0.7.50.12.00.11.00.5.0
0.7.60.13.0, 0.14.00.12.*0.6.*
v0.7.70.15.00.12.*0.6.*
v0.7.80.16.00.12.*0.6.*
v0.7.80.16.00.12.*0.7.*
v0.7.80.16.00.12.*0.8.*
v0.8.10.17.*0.13.*0.9.*
v0.8.10.17.*0.14.*0.10.*