Skip to content

Reimpl/viewport render state - #241

Draft
gynt wants to merge 83 commits into
mainfrom
reimpl/ViewportRenderState
Draft

gynt wants to merge 83 commits into
mainfrom
reimpl/ViewportRenderState

Conversation

@gynt

@gynt gynt commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

No description provided.

gynt added 30 commits September 27, 2026 22:11
gynt and others added 27 commits September 28, 2026 01:43
build.bat gives each worktree its own _MSPDBSRV_ENDPOINT_ and kills its own
mspdbsrv.exe before building. build_quiet.py --keep-going calls cmakew directly
and syntax_check.py calls cl.exe directly, so neither inherited that, and a
server already wedged before the build started survived build.bat kill and
still failed with C1090.

common.build_env derives the same endpoint name; common.kill_pdb_server stops
only this worktree instance; build_quiet.py retries the build once after a
C1090/C1033.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NaSkbxngnm28vFqxp3wNZs
(cherry picked from commit ac343b4)
The cherry-picked fix recovers from a wedged mspdbsrv.exe by stopping this
worktree''s instance and building again. C1090 has a second cause that recovery
cannot reach: the endpoint name itself can wedge, outliving every mspdbsrv.exe
that uses it, so retrying into the same name fails forever.

Six consecutive builds failed that way here. Killing the server did not help,
nor did deleting the PCH and both PDBs; the endpoint was correctly unique, not
inherited from the environment, and the toolchain binaries matched a worktree
that was building fine at that moment. The same tree then built first try under
a different endpoint name, which is what identified the cause.

build_quiet.py now takes a second retry on a fresh endpoint, and build_env()
accepts an explicit one so a caller can pin it for a session.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A4PvfebpUzaMXy93EutBjJ
(cherry picked from commit 2826353)
…State

# Conflicts:
#	src/OpenSHC/Rendering/ViewportRenderState/computeTileXOffset.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/createFloatingTextElement.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/focusOnCoordinate.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/resetupViewportThunk.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/restoreFocusTile.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/translateXYToTile.cpp
#	src/OpenSHC/Rendering/ViewportRenderState/xyAreValid.cpp
#	tools/reimplementation-helper/batch/README.md
#	tools/reimplementation-helper/batch/build_quiet.py
#	tools/reimplementation-helper/batch/syntax_check.py
…urrent main

135 commits behind main and uncompilable against its regenerated headers, so
this branch had never been measured. All 32 sources now build, link and score,
with none excluded.

The merge conflicted on seven ViewportRenderState sources that main has since
gained independently and on three batch tools; all took main's side.

452 stale generated field references were rewritten over two passes by the
project's own refactor_struct_fields.py. That tool builds its solution list
eagerly, so a single field name with no offset encoded in it aborts every other
fix in the same log; feeding it only the C2039 lines whose names carry an
offset lets it resolve the rest, and the leftovers get handled by hand:

- ownerFlagFrame -> flagSlot.overlayImage. The field at 0x80 is now a
  BuildingFlagSlot, which is a 4-byte struct wrapping one int, so the member
  access is the same four bytes.
- shouldRenderRoof -> extraOverlayImage2 (0x60), shouldRenderSomeOverlay ->
  extraOverlayImage3 (0x64), both confirmed against this branch's own pre-merge
  Building.hpp.
- tileRef2 -> tileRefs[1]: 0x1CC is one int into tileRefs[36] at 0x1C8.
- renderMap's MiscDisplayLayer walker was ushort*, but the header declares that
  layer short[]. It only bit-tests and widens through that pointer, so short*
  changes no behaviour.
- updateBuildingPreviewPosition built an all-zero TextMessageBLLookupStructUnion
  to pass to setBottomLeftTextDisplayText, whose param_4 is now int; that is 0.

First measurement, reimplemented data and all 32 resolvers enabled: BUILD_OK,
avg 78.33 over 32, 17 functions below 100. No match work is attempted here -
none was possible until it built.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Fzi11pcBU1Y7Y4oanrZQL
@gynt
gynt force-pushed the reimpl/ViewportRenderState branch from 182c3fc to 14128b9 Compare October 23, 2026 09:56
gynt and others added 2 commits October 23, 2026 12:00
…4.2%

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NVYWDtHk2xzvq9hszJRS9r
…llaps

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NVYWDtHk2xzvq9hszJRS9r

This branch has not been deployed

No deployments
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