Repository navigation
Add optional Tracy zones for conversion, dispatch and compute stages - #537
Merged
Merged
Conversation
Member
|
FYI: change PR base to |
barrulus
marked this pull request as ready for review
October 19, 2026 22:14
Collaborator
Author
100%this was in error |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_TRACYdefaults 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.