The JS/Emscripten client (static/arena/engine.js) renders only a few metres of the arena on every map, with the sky visible beyond. Some players are affected and others are not.
A/B evidence that isolates it to Chromium:
- Same JS build in Firefox: renders correctly.
- The published corresponding-source tree built natively (
-DBUILD_CLIENT=ON) on the same machine, same map pack, same GL2 renderer: renders correctly. CL_InitCGame 0.39s native vs 1.18-1.26s in the browser.
patch.mjs touches no renderer code: nothing in renderergl2, the visible set, the projection or the far clip.
R_SetFarClip() (code/renderergl2/tr_main.c) sets zFar to the distance to the farthest corner of tr.viewParms.visBounds, with no floor and no ceiling. A collapsed visible set therefore clips the world at a few metres with the sky beyond — exactly the symptom. That makes the JS-compiled numerics under V8, or the ANGLE/GPU path, the likely culprits.
Environment:
- Affected: Chromium 152.0.7977.82 on Linux (Arch), AMD Radeon 780M via ANGLE, WebGL2.
- Unaffected: Firefox 155.0.1, same machine, same map (
oa_dm7), same build.
- Native reference: same tree built with
-DBUILD_CLIENT=ON, renderer_opengl2.so.
Repro: enter any arena on quake.lnbits.com in Chromium and look past a few metres.
The JS/Emscripten client (
static/arena/engine.js) renders only a few metres of the arena on every map, with the sky visible beyond. Some players are affected and others are not.A/B evidence that isolates it to Chromium:
-DBUILD_CLIENT=ON) on the same machine, same map pack, same GL2 renderer: renders correctly.CL_InitCGame0.39s native vs 1.18-1.26s in the browser.patch.mjstouches no renderer code: nothing inrenderergl2, the visible set, the projection or the far clip.R_SetFarClip()(code/renderergl2/tr_main.c) setszFarto the distance to the farthest corner oftr.viewParms.visBounds, with no floor and no ceiling. A collapsed visible set therefore clips the world at a few metres with the sky beyond — exactly the symptom. That makes the JS-compiled numerics under V8, or the ANGLE/GPU path, the likely culprits.Environment:
oa_dm7), same build.-DBUILD_CLIENT=ON,renderer_opengl2.so.Repro: enter any arena on quake.lnbits.com in Chromium and look past a few metres.