THREE.JS / FOUNDATIONS 119

Time the shadow pass.

Renderer.info counts describe submitted work; timestamp queries measure completed GPU work when the backend exposes them. Compare both while a LightShadow updates every frame or only once.

Initializing -

Preparing shadow timing and timestamp-query support.

topology
-
backend
-
updates
-
shadow views
-
map
-
query support
-
query pool
-
shadow target
-
Shadow timing matrixpreparing

Structural controls reload the renderer so timing comparisons keep one topology and backend at a time.

Measured render workwaiting
CPU frames
-
CPU avg
-
CPU p95
-
GPU samples
-
GPU avg
-
GPU p95
-
draw calls
-
triangles
-

Run the fixed sample after the first shadow map is ready. GPU values arrive asynchronously and may be unavailable on WebGL2.

What this teachessubmission x execution

Dynamic LightShadow updates add shadow-view work to each frame. Static shadows can cache that work, but moving casters then leave the map stale until Refresh shadow map sets needsUpdate for one new pass.

CPU is host-side render submission time. GPU is the latest completed renderer timestamp-query result, not a promise that every browser exposes device timing.

Tune shadow quality next ->
LAB 119 / SHADOW TIMING