FSR2: de-jitter scene sampling, fix loading screen progress

FSR2 temporal upscaling:
- De-jitter scene color sampling (outUV - jitterUV) for frame-to-frame
  consistency, eliminating the primary source of temporal jitter
- Remove luminance instability dampening (was causing excessive blur)
- Simplify to uniform 8% blend (de-jittered values are consistent)
- Gamma 2.0 for moderate neighborhood clamping
- Motion vector dead zone: zero sub-0.01px motion from float precision noise

Loading screen:
- Reduce tile load radius from 3 to 2 (25 tiles) for faster loading
- Process one tile per iteration for smooth progress bar updates
This commit is contained in:
Kelsi 2026-03-08 14:50:14 -07:00
parent f74dcc37e0
commit 2003cc8aaa
3 changed files with 29 additions and 45 deletions

View file

@ -4042,7 +4042,7 @@ void Application::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float
// then restore the full radius after entering the game.
// This matches WoW's behavior: load quickly, stream the rest in-game.
const int savedLoadRadius = 4;
terrainMgr->setLoadRadius(1);
terrainMgr->setLoadRadius(2); // 5x5=25 tiles — balance between spawn hitches and load time
terrainMgr->setUnloadRadius(7);
// Trigger tile streaming for surrounding area
@ -4080,11 +4080,9 @@ void Application::loadOnlineWorldTerrain(uint32_t mapId, float x, float y, float
// Trigger new streaming — enqueue tiles for background workers
terrainMgr->update(*camera, 0.016f);
// Process ALL available ready tiles per iteration — batches GPU
// uploads into a single command buffer + fence wait instead of
// one fence per tile. Loading screen still updates between
// iterations while workers parse more tiles.
terrainMgr->processAllReadyTiles();
// Process ONE tile per iteration so the progress bar updates
// smoothly between tiles instead of stalling on large batches.
terrainMgr->processOneReadyTile();
int remaining = terrainMgr->getRemainingTileCount();
int loaded = terrainMgr->getLoadedTileCount();