fix(streaming): prepare quiesced destination entities

Separate loaded spatial residency from the world presentation gate so destination live objects acquire mesh owners behind portal space while drawing and simulation stay quiesced. Prevent unowned CPU-cache hits from recreating stale GPU staging work.

Co-authored-by: Erik Nilsson <erikn@users.noreply.github.com>
This commit is contained in:
Erik 2026-07-24 20:21:57 +02:00
parent e991eeca34
commit 91e82c3c68
6 changed files with 142 additions and 23 deletions

View file

@ -876,9 +876,10 @@ namespace AcDream.App.Rendering.Wb
}
ObjectMeshData? deferredCachedData = null;
if (_cpuMeshCache.TryGetAndStage(
if (_cpuMeshCache.TryGetAndStageOwned(
geomId,
_stagedMeshData,
_ownership,
out ObjectMeshData? cachedData,
out MeshStageResult cacheStage))
{
@ -936,9 +937,10 @@ namespace AcDream.App.Rendering.Wb
_terminalPreparationFailures.Remove(id);
ObjectMeshData? deferredCachedData = null;
if (_cpuMeshCache.TryGetAndStage(
if (_cpuMeshCache.TryGetAndStageOwned(
id,
_stagedMeshData,
_ownership,
out ObjectMeshData? cachedData,
out MeshStageResult cacheStage))
{