Using geometry streaming
START WITH THE BIG PICTURE
What does this part of Epok do?
Geometry streaming moves selected EditableMesh pages outside the executable and loads them from CD or PCDrv into a fixed RAM pool. It is optional and deliberately narrow.
- 01Enable streaming and choose a pool
- 02Build 64 KiB geometry pages
- 03Prefetch/warm or load required pages
What is happening under the hood?
- Only EditableMesh geometry uses this archive; maps, textures and audio do not.
- Pages are hashed, reserved, pinned and released through a bounded pool.
- Required synchronous reads may stall rendering and CD access can interact with XA music.
Field note: Streaming saves resident memory, not time. Measure both sides of that trade.
Experimental: geometry streaming and preloading may lower FPS or stall frames. Geometry Streaming is disabled by default.
Open Project Settings > Engine > Streaming, enable Geometry Streaming,
apply the change, choose CD on demand or PC on demand in the Play profile,
and rebuild. CD launches the disc image. PC reads GEOMETRY.BIN from the build
directory through PCDrv, in PCSX-Redux or NOTPSXSerial. The executable alone
cannot supply that external geometry. See Play.
| Control | Default | Effect |
|---|---|---|
| Geometry Streaming | Off | Store editable-mesh geometry in external pages |
| Streaming Pool Pages | 4 | Reserve 2–8 pages of 64 KiB each in RAM |
| Per-frame Triangle Budget | 4096 | Reserve capacity for 512–8192 triangles; excess triangles are omitted and counted |
| Preload Nearby Geometry | On when streaming is enabled | Request nearby geometry when a free slot and the CD controller are available |
Visibility is configured independently under Engine > Rendering. See Project Settings for saved fields and reset behavior.
Streaming applies to editable-mesh render geometry. Textures, collision, scripts, audio and skeletal meshes keep their existing storage paths. Geometry can move with its entity. Retained packets remain available within the configured budget.
Startup loads active geometry before gameplay when its pages fit the pool. Later required reads can pause rendering. XA music pauses during required reads and restarts from the beginning of the track; leave geometry resident when uninterrupted XA playback is required. A read failure prevents affected geometry from drawing and appears in the runtime error counters.
Use matching scenes and build settings when comparing performance. Monitor frame times, dropped steps, dropped triangles and CD stalls; reducing executable size does not imply faster rendering.