* Add QueueCommitReservedBuffer() to FRDGBuilder
* Add GetCommittedSize() to FRDGPooledBuffer, to query the physical size of the buffer
* Change ResizeBufferIfNeeded() to issue a commit operation instead of copying when possible
* Add r.Nanite.Streaming.ReservedResources CVar (default: false) to allocate Nanite ClusterPageData.DataBuffer as a reserved resource of maximum size, which is committed in ResizeBufferIfNeeded()
Based on implementation by Zach Bethel.
#rb Zach.Bethel
[CL 29626308 by yuriy odonnell in ue5-main branch]
Platforms that do support uniform buffer objects can now provide batched primitive data through UBO. There is a limit UBO range that can be accessed in shaders, so we group instances into batches that fit into this limit. Switch uses 64KB views, other platfroms16KB views. For each primitive we allocate 512Bytes and 256Bytes for instance. Mobile platforms that do not support UBO will use a desktop version of GPUScene.
There are a few things that still missing: Dynamic mesh passes, static lighting
#rb ola.olsson, benjamin.rouveyrol
[CL 26354848 by marc audy in ue5-main branch]
- RHICreate{Vertex, Index, Structured}Buffer
- RHICreate{ShaderResource, UnorderedAccess}View
- RHIUpdateUniformBuffer
- Various initialization / locking methods for helper buffer types in RHIUtilities.h
The goal is to continue to force resource creation through command lists to avoid surprises with moving things off the render thread.
#rb christopher.waters
[CL 26183242 by zach bethel in ue5-main branch]
- Previously there was a callback associated with r.RDG.Debug.FlushGPU that tried to disable AsyncCompute however it didn't work because it got reenabled by CVarRDGAsyncComputeSink.
#rb zach.bethel
#preflight 6465eb87317ee2d9d1e25325
[CL 25522735 by tiago costa in ue5-main branch]
#ushell-cherrypick of 24664569 by zach.bethel
#lockdown michal.valient
#rb graham.wihlidal, yuriy.odonnell
#preflight skip
[CL 24701530 by graham wihlidal in ue5-main branch]
- MorphVertexBuffer was not in UAV state before being cleared with RHIClearUAVUint.
Fix RDGImmediate not uploading buffers if no render passes were enqueued.
- Also remove stray debug string compare / debug break
#rb Zach.Bethel
#jira MH-8828
#preflight 64023e2aa726961ed9d598fe
[CL 24507908 by luke thatcher in ue5-main branch]