1.9 KiB
Integrated-server graphics context
Client rendering competes with the integrated server for CPU time. Version 0.21
copies GPU, backend and driver into the tick report when F8 or /horizon bench
starts a single-player recording. The values come from the client/render thread
and are copied into immutable metadata; server ticks never access GPU APIs.
Reports identify server_runtime_kind as integrated, dedicated or unknown.
client_graphics_capture_status is captured_at_recording_start only when all
three graphics fields are supplied for an integrated server. The server-only
command does not inspect client graphics. Old callers retain their compatible
four-argument recording entrypoint and report unknown runtime context.
The offline viewer and CLI flag differing runtime kinds, graphics backends and drivers. Legacy reports remain readable, with unknown-context warnings. A matched start snapshot does not establish unchanged graphics throughout the recording, equivalent client quality, world work or scheduling. Rendering changes still require paired frame reports and an explicitly controlled experiment. This metadata change makes no FPS, TPS or RAM improvement claim.
python3 tools/build_mod.py
python3 tools/test_server_graphics.py --native-display --backend opengl
# Separate fresh private instance; Linux software renderer research only:
python3 tools/test_server_graphics.py --native-display --backend vulkan
The private fixture starts a normal 10-second frame/tick recording through the
client recorder, checks both reports against the actual device, saves the demo
world and exits. It does not change simulation rate or gameplay rules. Windows
compiles the fixture; Linux and hosted macOS check the actual game-selected backend. An explicit
--backend experiment still rejects fallback; the default metadata check does
not require a particular renderer. Full logs,
worlds and fixture JARs remain private and outside playable downloads.