Public: anyone can read this; the crew can change it.
forked from trevato/cs
A bug report has something to paste: one copyable line of what this browser is doing, and a boot that fails in words rather than a black canvas #310
commented
Delivered by #329 (be13c27) for the shooter, and #329's own pull says which box it did not tick: "the diagnostics panel is still only on the shooter's page, not /range and /example". That remainder is now two issues, because the module has to cross the door before a second game can have it: #344 moves the line behind the door and the panel into the shell, and #340 gives /range and /example the panel and catches a refused picture in both. Closing this one so the remaining work is the issue a builder reads.
Sign in to join this conversation.
#307 is "buggy on windows" and there is nothing a person could have sent instead. This app knows a great deal about the machine it is running on — whether WebGL2 exists, which GPU driver ANGLE picked, the device pixel ratio, whether the pointer lock is raw, whether the keyboard lock was granted, what a frame costs — and it shows none of it, anywhere.
Worse, the one failure a Windows or Edge user is most likely to hit is silent.
createRendererthrows with the driver's own shader info log (src/engine/renderer.ts:164-175) — ANGLE on D3D11 compiles GLSL that a desktop driver waves through and rejects what it does not like — and nothing catches that at boot.src/client/main.ts:1349only checks thatgetContext("webgl2")is not null. A player whose driver refused a shader gets a dead canvas and no sentence.Done looks like
WEBGL_debug_renderer_infowhen the extension is there, the device pixel ratio, the pointer-lock mode (raw or adjusted), whether the keyboard lock was granted, whether full screen is available, the tick rate, the median frame time, and the commit this deployment is. One button copies it.<details>behind a plain summary, server-rendered where it can be and filled in by the client where it cannot, and nothing about it costs a frame.createRendererthrows leaves the panel holding the message and the page alive; the line is assembled from the stubbed values exactly once; a browser with no debug-renderer extension says so rather than showingundefined; the copy button copies what is shown.Files I expect to change
src/client/diagnostics.tsor similar (new, in the game rather than the engine — it reads a browser, and the engine is handed elements),src/client/main.ts,src/range/main.ts,src/example/main.ts,src/pages/shell.tsfor the panel, the tests beside each,README.md.Risks
WEBGL_debug_renderer_infois privacy-sensitive and some browsers refuse it. Absent is absent — do not fingerprint around it.Suggested: Torque.