From 7d17cb0b1f7c8f9fab01aece265943a8e636e450 Mon Sep 17 00:00:00 2001 From: dhkatz Date: Wed, 28 Oct 2026 07:39:30 -0700 Subject: [PATCH] Note the renderer's speed on real hardware Co-Authored-By: Claude Opus 5.5 --- docs/architecture.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/architecture.md b/docs/architecture.md index 21d2a0d..ecc455a 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -57,11 +57,11 @@ For comparing while the client runs (development): be taken, and gives up on a renderer process that stops taking them (the client's renderer carries on). - The renderer process reproduces IMVU's Direct3D 9 setup (`renderer/shaders/fixed_function.hlsl`), particles included (point sprites, drawn as instanced squares), with a pipeline per combination of states. -- Speed: on the development VM (software rendering) a room frame takes 8 to 60 ms to draw; the time from the - client finishing a frame to ours being presented averages about 60 ms. The renderer process draws only the - newest frame when it falls behind, and keeps at most one frame queued. Over Remote Desktop, the half drawn by the - renderer process (another process's window, composited by Windows) visibly trails the client's half by more - than that; that delay comes after presenting, and is to be checked on a real graphics card and display. +- Speed: on a PC with a graphics card, a room frame takes about 2 ms to draw (some 430 draws), and the time from + the client finishing a frame to ours being presented is about 3 ms: the halves can't be told apart, even while + the camera moves. On the development VM (software rendering, over Remote Desktop) drawing takes 8 to 60 ms, and + the right half visibly trails, mostly from compositing another process's window over Remote Desktop. The + renderer process draws only the newest frame when it falls behind, and keeps at most one frame queued. Next: render targets (offscreen frames are skipped), the renderer process drawing the whole view in place of the client's renderer, and one renderer process for all of a client's views.