Sleeping Dogs Cutscene Stutter May 2026

Notably, the same textures were already loaded during gameplay 10 seconds prior. Why reload? Sleeping Dogs uses a fixed-size streaming ring buffer (default 256 MB). During open-world gameplay, the streaming system prioritizes persistence: assets near the player remain resident across multiple frames. However, the cutscene system bypasses this logic.

| Metric | Stock Game | Proxied DLL | |--------|-----------|-------------| | Cutscene stutter events (>50ms spike) | 23 | 2 | | Max frame time (ms) | 218 | 34 | | 99th percentile frame time (ms) | 67 | 16.5 | | Disk reads during cutscene | 89 | 7 | sleeping dogs cutscene stutter

void CutsceneManager::StartScene(CutsceneData* scene) Streaming::FlushRingBuffer(); // <-- Key culprit Streaming::SetPriorityMode(PRIORITY_CUTSCENE); for (auto& actor : scene->actors) Streaming::ForceLoad(actor.highResMesh); Streaming::ForceLoad(actor.highResTexture); // ... play cutscene Notably, the same textures were already loaded during

Reverse engineering the cutscene director ( CutsceneManager::StartScene ) reveals: play cutscene Reverse engineering the cutscene director (