-Fixed a bug where virtual textures were having their comparison key compared against the DDC2 expected comparison key even though they're still built with the legacy path.
-Fixed a bug with the cleanup of slow tasks when instigating blocking texture builds on the game thread.
-Fixed a bugs caused by late construction of comparison keys for texture derived data. Comparison keys have been changed and will now always be computed serially at the time a task is constructed.
#rb devin.doucette
#preflight 61413573568b3a0001c3ad72
[CL 17519512 by Zousar Shaker in ue5-main branch]
Unfortunately the state cache can contain dangling pointers to buffers which have been freed or renamed mid-frame, because nothing clears slots in the vertex buffer cache until the end of the frame. This was "fine" before, since we only touch the views in SetVertexBuffers, and as long as the shader doesn't use the bogus slots, nothing bad happens. However, the change made that function touch CurrentVertexBufferResources, which can contain pointers to freed memory.
This brings back the problem that the code can miss transitions. We'll have to revisit this and properly clear the cache when resources are deleted or renamed.
#rb trivial
#rnx
#jira UE-126601
[CL 17519494 by mihnea balta in ue5-main branch]
* Add voxel size feedback rounding to act as hystersis control.
This allows to have determinitistic hair shadow for rendering tests.
#rb none
#jira UE-125234
#preflight 6141d6c33c7c6700018a72c7
[CL 17518018 by Charles deRousiers in ue5-main branch]
The constant in the D3D spec is D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP , which has a value of 27, so the value is 1 << 27, not 2 << 27.
#rnx
#jira none
#rb Christopher.Waters, Kenzo.Terelst
[CL 17516607 by mihnea balta in ue5-main branch]
Added comment clarifying intent in EditConditionContext.
#rb paul.chipchase
#preflight 61406534b5a4fa0001f2e4ff
[CL 17516578 by sebastian nordgren in ue5-main branch]
Move private core header files to internal to allow engine platform implementations in modules outside of core.
Add -forcegenericio command line option to disable platform specific implementations and fall back to the generic platform implementation that works on all platforms.
#rb carlmagnus.nordin
#rnx
#preflight 6140a7aaeb6e63000189fdf4
[CL 17516499 by PJ Kack in ue5-main branch]
The cache is transactional, and is designed not to lose data if the process is terminated. The cache index and bulk store are kept separate, and blocks in the bulk store are not overwritten until the index has been flushed.
The age of items is tracked via "generations". An 8-bit generation counter is incremented once a certain size of items has been added to the cache, and older entries in the cache can be trimmed periodically by calling TrimAsync().
Since blocks of memory are allocated via memory mapped files and references are not visible to the garbage collector, clients can create locks over the cache which prevents trim operations from running.
[CL 17515095 by Ben Marsh in ue5-main branch]
#rb phil.popp
#ROBOMERGE-AUTHOR: jimmy.smith
#ROBOMERGE-SOURCE: CL 17513538 via CL 17514443 via CL 17514552 via CL 17514569 via CL 17514572
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v870-17433530)
[CL 17514580 by jimmy smith in ue5-main branch]