Force release of pages from the LRU virtual texture page pool if we are requesting a locked page.
This reduces case where new virtual texture producer can't map the root page.
Also only update adaptive VT indirection texture when the allocated VT root page is mapped.
#preflight 6266cb475037f70ba0ec6ffe
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 19905455 in //UE5/Release-5.0/... via CL 19910219
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19911479 by jeremy moore in ue5-main branch]
Check that producer is still valid before submitting a tile.
A producer will be invalid if it was freed while a deferred tile was waiting.
#preflight 62321c315932902f93555b22
#rb ben.ingram
#rnx
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 19408321 in //UE5/Release-5.0/... via CL 19409242
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19410445 by jeremy moore in ue5-main branch]
Fix invalidation of Adaptive Virtual Textures.
We need to gather all of the Allocated VTs in the AVT and invalidate the pagaes associated with their individual producers.
#preflight 61f9aaa64404d5fadefdd8d4
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18816214 in //UE5/Release-5.0/... via CL 18816220 via CL 18822814
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18824368 by jeremy moore in ue5-main branch]
Flush virtual textures pending delete before allocating new virtual textures if we are about to exceed virtual texture space limit.
Avoids hitting space limit in some cases where pending queue is otherwise slow to flush (such as during cook).
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18272825 via CL 18373227 via CL 18373285
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18373440 by jeremy moore in ue5-release-engine-test branch]
#rb jeanfrancois.dube
#preflight 6179b6d14c74960001ea6bca
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17962483 via CL 18008157 via CL 18370534 via CL 18370611
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18370672 by jeremy moore in ue5-release-engine-test branch]
Will help determine future VT pool size changes.
#rb andrew.firth
#preflight 616f0c8e6e12ff0001305f52
#lockdown Michal.Valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17865095 via CL 18004160 via CL 18370046 via CL 18370143
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18370163 by jeremy moore in ue5-release-engine-test branch]
* Enable warmup feature - No impact on memory (validated on XSS with 5 different runs with/without the feature)
* Fixed VT warmup - must perform the tile requests every frame so that it is effective
* Added scale factor & clamping (as cVars) for the VT requests
* Added debugging tools
* Fixed issue in FVirtualTextureSystem::RequestTilesInternal() where the same mip could be requested twice
* Fixed non-unity build
#preflight 61690678c46ae60001e4ebfc
#rb jeanfrancois.dube, rune.stubbe, jeremy.moore
#lockdown jeanfrancois.dube
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 17828400 via CL 18002889 via CL 18368839 via CL 18368865
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368877 by sebastien lussier in ue5-release-engine-test branch]
* Warmup will trigger resource prefetching and delay unloading of cells for a number of frames
* Enable HLOD assets warmup: wp.Runtime.HLOD.WarmupEnabled 0|1
* Number of warmup frames: wp.Runtime.HLOD.WarmupNumFrames n
* Currently only prefetching VT, Nanite prefetching to be added in another CL
Currently disabled (see "wp.Runtime.HLOD.WarmupNumFrames=0" in the device profiles ini)
#rb jeanfrancois.dube, jeremy.moore, andrew.firth
[FYI] chance.ivey, rune.stubbe
#lockdown andrew.firth
#preflight 6165d2b3e296ed0001f9a53e
#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 17789214 via CL 17986920 via CL 18368433 via CL 18368532
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368579 by sebastien lussier in ue5-release-engine-test branch]
This waits correctly for DDC.
Fixes nightly render issues.
#rb jason.nadro
#preflight 61609ba898f25900019360d2
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17762847 via CL 17985640 via CL 18368077 via CL 18368129
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368150 by jeremy moore in ue5-release-engine-test branch]
#rb ben.ingram
#preflight 615f6d0451b6340001dfb866
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17757034 via CL 17985565 via CL 18368058 via CL 18368117
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368144 by jeremy moore in ue5-release-engine-test branch]
Was setting original LevelPlusOne instead of modified LevelPlusOne in the page id.
#rb ben.ingram
#preflight 615f29b0cec44a0001399a7b
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17752201 via CL 17985202 via CL 18368044 via CL 18368103
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18368139 by jeremy moore in ue5-release-engine-test branch]
This must be happening after the change to defer producing locked tiles.
Needs some further investigation to understand why it is happening, but this quick fix should unblock.
#rb ben.ingram
#preflight trivial to unblock
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17736595 via CL 17982017 via CL 18367163 via CL 18367181
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18367188 by jeremy moore in ue5-release-engine-test branch]
This includes a fixed per platform component and a dynamic component that takes into account the current pool residency mip bias.
#rb ben.ingram
#preflight 615c8efd184ecf0001211c86
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17725859 via CL 17979595 via CL 18366901 via CL 18366958
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18366976 by jeremy moore in ue5-release-engine-test branch]
#rb ben.ingram
#preflight 615c476d8c8edf00011b2a2a
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17720292 via CL 17979487 via CL 18366651 via CL 18366733
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18366795 by jeremy moore in ue5-release-engine-test branch]
#rb ben.ingram
#preflight 61563a656ed55a0001763a45
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17684931 via CL 17967447 via CL 18366105 via CL 18366199
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18366306 by jeremy moore in ue5-release-engine-test branch]
Use this as id for recording and playback of virtual texture feedback.
Flesh out API for recording and playback of collected ids.
#preflight 61530aa080eba00001a511b6
#rb ben.ingram
#lockdown michal.valient
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17653384 via CL 17965453 via CL 18365635 via CL 18365739
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18365816 by jeremy moore in ue5-release-engine-test branch]
Producers will be randomly distributed between physical pools.
The maximum physical pool tile size is set by r.VT.SplitPhysicalPoolSize.
Setting a size of 64 will force all pools to be divided so that their page tables fit in 16 bits.
This makes it possible to use large physical pools without doubling the cost of page table memory.
#rb none
[FYI] ben.ingram
#preflight 611a616a8ff5540001cf6575
#ROBOMERGE-SOURCE: CL 17175504 via CL 17175510
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17175517 by jeremy moore in ue5-release-engine-test branch]
Enable with r.VT.Residency.Notify
Default VT residency mip map on for default pools.
This is overridable per project and per pool.
#rb none
#preflight 61128bb272fe2c00013a846c
#ROBOMERGE-SOURCE: CL 17116695 via CL 17116736
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17116751 by jeremy moore in ue5-release-engine-test branch]
This outputs the physical tile footprint of each VT producer.
Useful for finding producers that are using up most of the physical cache.
#rb none
#preflight 6108b0b72b00280001195a54
#ROBOMERGE-SOURCE: CL 17025048 via CL 17025049
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17025051 by jeremy moore in ue5-release-engine-test branch]
#rb none
#preflight 61083a1e4cd793000148efcb
#ROBOMERGE-SOURCE: CL 17019668 via CL 17019684
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17019696 by jeremy moore in ue5-release-engine-test branch]