Skip to content

Add optional Tracy zones for conversion, dispatch and compute stages - #537

Merged
otto-link merged 3 commits into
ottolink-dev:devfrom
barrulus:perf/tracy-compute-stages
Oct 20, 2026
Merged

otto-link merged 3 commits into
ottolink-dev:devfrom
barrulus:perf/tracy-compute-stages

Conversation

@barrulus

Copy link
Copy Markdown
Collaborator

HighMap work currently appears as one large call inside Hesiod's node profiles. This adds optional CPU zones to distinguish array conversion and tile dispatch from algorithm callbacks, plus finer HydraulicBlur and asset-export stages selected from the Day 1 findings in ottolink-dev/Hesiod#783.

HIGHMAP_ENABLE_TRACY defaults to OFF. Enabled builds use an installed Tracy client and propagate its target and the instrumentation definition publicly, since consumers instantiate the dispatcher templates. Disabled hooks discard metadata expressions and require no Tracy dependency. Algorithms, parameters and storage policy are unchanged.

Zones cover VirtualArray gather/write-back/overlap synchronization, VirtualTexture conversion, tile acquire/callback/release, full-array gather/callback/scatter, HydraulicBlur clamp/smooth/combine, and mesh generation/triangulation/Assimp export. Distributed workers emit their own thread zones. These are CPU timings, not GPU kernel timings or allocation totals. The new profiling guide documents boundaries and capture overhead considerations.

Validation in the Hesiod integration branch:

  • Full Tracy-enabled application/workload build and graph-editor CTest passed.

  • All four dispatch modes passed numerical checks, including stride-2 and downscaled reconstruction; a real capture verified eight workload phases, stage zones and worker-thread events.

  • Modified implementation files compiled with hooks disabled and no Tracy symbols.

  • Five 64² node captures passed: GaussianPulse, Abs, DistanceTransform, HydraulicBlur and ExportAsset. Expected HydraulicBlur stages, texture conversions, masked mesh and write zones were verified in CSV exports.

  • Additional unmasked regular/optimized triangle exports passed; the optimized capture includes the triangulation zone.

Integration: ottolink-dev/Hesiod#849. These are smoke checks; the historical Day 1 node baseline is unchanged.

@otto-link

Copy link
Copy Markdown
Member

FYI: change PR base to dev branch instead of main (I assumed it was not intentional)

@barrulus
barrulus marked this pull request as ready for review October 19, 2026 22:14
@barrulus
barrulus requested a review from otto-link as a code owner October 19, 2026 22:14
@barrulus

Copy link
Copy Markdown
Collaborator Author

FYI: change PR base to dev branch instead of main (I assumed it was not intentional)

100%this was in error

@otto-link
otto-link merged commit 53bbcdc into ottolink-dev:dev Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants