Consumers outside the renderer

Renderer changes affect engine services and tools that do not draw the main scene. This page identifies representative contracts to preserve; the generated indexes enumerate source search leads.

Core loading and pacing

ResourceLoader::_ensure_load_progress() calls renderer sync() when the engine uses single-thread rendering. The loader can need queued renderer work to complete before a resource load progresses. A source TODO proposes a more general server-progress mechanism. Replacing the queue without preserving progress can affect threaded loading even if scene drawing still works.

Engine::set_max_fps() obtains the main RD and forwards the limit. This makes frame-limit configuration depend on a graphics-device implementation from core code. A future pacing interface must preserve what RD does with that limit, including the absence of RD on the Compatibility path.

GPU tools and import

LightmapperRD creates a local device, creates its own resources, and submits and synchronizes baking work. It also uses scene geometry inputs and module raycasting/denoising infrastructure. Changing RD compilation, formats, or local-device availability can break baking independently of realtime rendering.

BetsyCompressor first requests a local RD through the rendering server. If that fails and the build supports the route, it can construct a Metal or Vulkan context and RD directly. It has its own worker/queue lifecycle and compression shaders. The header includes the private default-server header, although the implementation's server calls use the public API.

Editor previews, image import, shader editors, and visual shader tools consume resources, rendering metadata, offscreen viewports, or GPU operations. Editor operation with a Compatibility scene renderer does not imply that every auxiliary GPU tool uses only GL.

XR and camera

XR interface calls occur around the server frame and viewport draw. The runtime supplies view count, output size, color/depth/velocity textures, and frame timing. OpenXR platform extensions also hook native Vulkan/D3D12/Metal setup and graphics bindings. These are both high-level and native dependencies.

Camera feeds own server textures, update them from incoming images/native sources, and defer appropriate scene-facing signals. GLES3 environment code also consumes camera feed data. Texture ownership and external-thread updates must be preserved across camera integrations.

Geometry and output consumers

Physics soft bodies update renderer mesh data through a rendering-server handler. Navigation, physics debug views, CSG, GridMap, and terrain modules produce or update resources consumed by rendering. Their dependencies are not limited to editor-only visualization.

Text servers create/update font atlas textures that canvas rendering samples. Movie capture reads a viewport texture through the server, handles format/HDR requirements, and collects render timing. A readback or render-target change can therefore affect text or capture without touching scene draw code.

Mode7 constructs shader/material and scanline-texture resources. WorldScape creates and updates terrain meshes, material/shader parameters, generated textures, and instances through resource/server APIs. They are source-backed Redot consumers to include in change review.

Sources: services and modules, Redot scene/module resources, and the dependency map.

Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.