Skip to content

perf(A1): add world, presentation and DS audio frame sections - #272

Closed
Roxas2712 wants to merge 1 commit into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-perf-a1
Closed

Roxas2712 wants to merge 1 commit into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-perf-a1

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 25, 2026 •

Copy link
Copy Markdown

F11 currently cannot separate tile-window maintenance, native world phases, zone composition, voxel passes and DS audio mixing. Add nested FrameProfile sections at those native work sites, preserving drawing order, callback arguments and error cleanup. Disabled profiling uses the existing shared no-op closer.

Independent patch against main 13af468; no pending feature stack is included. Main sites: src/world/OverworldController.lua:16682, src/render/TileRenderer.lua:1797, src/render/Renderer.lua:690 and :1400, src/audio/NitroAudio.lua:198, mods/DRAMATIC_SHAPE/lib/VoxelScene.lua:2673, :2684, :2777 and :2876. docs/frame-profile-sections.md explains scope and nesting.

Validation:

  • Fork before/after: 380/380 engine suites and 3/3 SDK suites pass.
  • Exact standalone upstream baseline and candidate: 64/74 engine suites each; the same 27 FAIL lines across ten inherited failing suites, with no additions or removals. SDK 3/3 on each.
  • CPU probes execute real zone blits, cached/missing-art/GB/GBA tile-window paths and Nitro mixing. Disabled/enabled profiling retains draw operations, window fills, all 1,024 PCM samples and mixer state. New section labels appear when enabled; disabled instrumentation does not read the clock.
  • All five Lua files compile in LuaJIT; whitespace check passes.

FrameProfile desktop before/after: not measured. ARM/device timings: not measured. This adds observability and makes no performance claim. Disable with F11 / FrameProfile.setEnabled(false).

The acceptance repairs are offered separately in #102 and the named import diagnostics in #274. Integrated fork main 61f1d5d passes 416/416 engine suites, 3/3 SDK suites, the 253-check gallery, and 200 contract comparisons / 400 isolated loader runs against pinned 535a5ec088c1ae1bf4d91dd3e35a56f64cf46d91. Authenticated external fixtures load 13/14 entrypoints; the allowed M1–M4 intermediate gate records the remaining exact named sprite-module gap. Complete follower acceptance is still open. These composed results do not imply that this standalone patch contains the acceptance prerequisites.

Original additions by Roxas2712 are offered to Cedric / UNDERdecoded under the specific PR permission in https://github.com/Roxas2712/Gen2Recomped/blob/4fb81fbf/LICENSE-ROXAS2712.md, with visible contributor credit. Existing rights, notices and credits remain effective.

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.

1 participant