Files
metabuilder/gameengine/packages/bootstrap_windows/workflows/boot.json
T
git 6835084939 feat(gameengine): FPS overlay, adaptive vsync, stair tuning, smart GUI launcher
- overlay.fps: SDL software renderer → GPU texture quad, top-right corner,
  yellow EMA-smoothed FPS counter; LOADOP_LOAD preserves scene beneath it
- debug.screenshot: one-shot step that writes status txt + BMP then pushes
  SDL_EVENT_QUIT for automated visual feedback loop
- Adaptive vsync: graphics.gpu.init "auto" present_mode queries actual monitor
  refresh rate via SDL_GetCurrentDisplayMode; ≥120 Hz → VSYNC, <120 Hz → MAILBOX
  Fixes vsync cap on 165/170 Hz monitors reporting as 240 Hz in settings
- Fixed present_mode wiring: q3_game.json gpu_init_viewport node now passes
  present_mode as a direct parameter (workflow variables are not seeded into
  context by the executor, so the variable section was dead data)
- Stair climbing: probeReach 0.45→0.70 for earlier detection, jam detection
  nudges player up after 100 ms of horizontal blockage, step_height tuned to 0.6
- Physics dt: real wall-clock delta clamped to [1/600, 1/30] so 240 Hz displays
  don't run physics 4× faster than intended
- GUI smart search paths: _candidate_build_dirs() scans all generator dirs ×
  build types × flat and Conan-nested layouts, sorted by CMakeCache.txt mtime;
  _find_binary() picks freshest sdl3_app.exe; packages loaded relative to
  __file__ so gui works from any working directory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 20:29:37 +01:00

67 lines
1.4 KiB
JSON

{
"name": "Windows Boot",
"variables": {
"graphicsRenderer": {
"name": "graphicsRenderer",
"type": "string",
"description": "Graphics renderer to use (d3d12, vulkan, auto)",
"defaultValue": "d3d12",
"required": true
}
},
"nodes": [
{
"id": "init_gpu_viewport",
"name": "Initialize GPU Viewport",
"type": "graphics.gpu.init_viewport",
"typeVersion": 1,
"position": [-390, 0],
"parameters": {
"present_mode": "auto"
}
},
{
"id": "init_gpu_renderer",
"name": "Select GPU Renderer",
"type": "graphics.gpu.init_renderer",
"typeVersion": 1,
"position": [-130, 0],
"parameters": {
"renderer": "{{ $workflow.variables.graphicsRenderer }}"
}
},
{
"id": "init_gpu_device",
"name": "Initialize GPU Device",
"type": "graphics.gpu.init",
"typeVersion": 1,
"position": [130, 0],
"parameters": {}
}
],
"connections": {
"init_gpu_viewport": {
"main": {
"0": [
{
"node": "init_gpu_renderer",
"type": "main",
"index": 0
}
]
}
},
"init_gpu_renderer": {
"main": {
"0": [
{
"node": "init_gpu_device",
"type": "main",
"index": 0
}
]
}
}
}
}