Login: progress bar fills but reaching in-world takes 30-60 s #213

Closed
opened 2026-09-30 21:27:31 +00:00 by sky_line · 2 comments
Owner

After login the progress bar reaches full, but the viewer takes another 30-60 seconds to actually get in-world. This could be the server (region handshake, inventory or appearance fetch), but it needs tracking and attributing.

To investigate

  • Startup-state timing: log timestamps per LLStartUp state transition, especially the states after the bar fills: STATE_WORLD_WAIT, STATE_AGENT_SEND / AGENT_WAIT, STATE_INVENTORY_SEND, STATE_MISC, STATE_PRECACHE, STATE_WEARABLES_WAIT, STATE_CLEANUP. Find which one the time goes to.
  • Server or client: is the wait on a server reply (RegionHandshake, AgentMovementComplete, inventory skeleton / AIS, appearance / bake requests)? Or is it client work, such as Vulkan pipeline or shader compiles, texture/ingest startup, or the world sweep before first frame?
  • Comparison: check against Firestorm / LL viewer on the same account and region to see if it's server-side.
  • Precache: check whether STATE_PRECACHE / wearables wait is timing out (LL waits up to a fixed timeout for outfit/COF) rather than completing.
  • Progress bar: the bar filling long before the viewer is in-world is misleading on its own. Make its progress reflect the real remaining states.

Info

  • Reported on current main (post Beta 10).
  • Attach a Slipstream.log from a slow login for the state timeline.
After login the progress bar reaches full, but the viewer takes another 30-60 seconds to actually get in-world. This could be the server (region handshake, inventory or appearance fetch), but it needs tracking and attributing. ## To investigate - **Startup-state timing:** log timestamps per `LLStartUp` state transition, especially the states after the bar fills: STATE_WORLD_WAIT, STATE_AGENT_SEND / AGENT_WAIT, STATE_INVENTORY_SEND, STATE_MISC, STATE_PRECACHE, STATE_WEARABLES_WAIT, STATE_CLEANUP. Find which one the time goes to. - **Server or client:** is the wait on a server reply (RegionHandshake, AgentMovementComplete, inventory skeleton / AIS, appearance / bake requests)? Or is it client work, such as Vulkan pipeline or shader compiles, texture/ingest startup, or the world sweep before first frame? - **Comparison:** check against Firestorm / LL viewer on the same account and region to see if it's server-side. - **Precache:** check whether STATE_PRECACHE / wearables wait is timing out (LL waits up to a fixed timeout for outfit/COF) rather than completing. - **Progress bar:** the bar filling long before the viewer is in-world is misleading on its own. Make its progress reflect the real remaining states. ## Info - Reported on current main (post Beta 10). - Attach a Slipstream.log from a slow login for the state timeline.
Author
Owner

Root cause found and mostly fixed in 4d377811f1: the bar-full wait was the Vulkan renderer compiling ~97 graphics pipelines serially on the main thread after login; on a cold driver cache (every new release) that was 25-40 s here and longer on fewer cores. Now: pipelines compile in parallel on background threads, the renderer is created at the LOGIN SCREEN so the compile overlaps login, and dynamic cull/depth state lets 40 of the 97 come from a pipeline cache (57 real compiles). Cold-cache test: renderer ready 2 s before login completed. Leaving open to confirm with testers on lower-core machines (an 8-thread CPU may still wait briefly if the user logs in very fast).

Root cause found and mostly fixed in 4d377811f1: the bar-full wait was the Vulkan renderer compiling ~97 graphics pipelines serially on the main thread after login; on a cold driver cache (every new release) that was 25-40 s here and longer on fewer cores. Now: pipelines compile in parallel on background threads, the renderer is created at the LOGIN SCREEN so the compile overlaps login, and dynamic cull/depth state lets 40 of the 97 come from a pipeline cache (57 real compiles). Cold-cache test: renderer ready 2 s before login completed. Leaving open to confirm with testers on lower-core machines (an 8-thread CPU may still wait briefly if the user logs in very fast).
Author
Owner

Closing: not seen since world pipelines started compiling (and being cached on disk) while the login screen is up, so the post-login wait for pipeline compiles is gone. Commit 0ae81a7445 (persistent pipeline cache + progress-screen hold), shipped in v1.0.0-beta.1. Reopen if the 30-60 s post-login wait comes back.

Closing: not seen since world pipelines started compiling (and being cached on disk) while the login screen is up, so the post-login wait for pipeline compiles is gone. Commit 0ae81a7445 (persistent pipeline cache + progress-screen hold), shipped in v1.0.0-beta.1. Reopen if the 30-60 s post-login wait comes back.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#213
No description provided.