- Hair visualization mode context needs a mutex to initialize. Hair also currently requires deterministic ordering of dynamic meshes to avoid artifacts, so disabling parallel support for now.
- Fixed race in allocating particle order buffer.
- Fixed Geometry Collection UpdateFrame to support a command list.
#jira UE-199472, UE-199456, UE-199463
[CL 29329272 by zach bethel in ue5-main branch]
* Fixed geometry cache material mapping when visibility animation is used. Now, the materials won't shift around when a mesh section is hidden.
* Import can now be interrupted.
#jira UE-192005
#rb Anousack.Kitisa
[CL 28204095 by MaximeRobinot in ue5-main branch]
- Without this duplicated a system for validation can crash as we access a subobject which has not been PostLoaded yet
#rb rob.krajcarski
[CL 27694844 by stu mckenna in ue5-main branch]
* Fixed USD geometry cache streams not being unregistered when the stage is unloaded.
* Fixed geometry cache assets being evicted from the asset cache due to their size varying with the streamer settings.
#jira UE-193306
#rb Daniel.Coelho
[CL 27460465 by Anousack Kitisa 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]
I've reviewed all code using async requests and we had multiple places incorrectly handling the stat: some placed failed to decrease the counter, while others would decrease it when they shouldn't. The main cause was the fact that when we create an async request and pass nullptr as the target memory, the request allocates the memory itself and increases the STAT_AsyncFileMemory. However, when we call GetReadResults() on such requests, the responsibility is on the caller to balance the calls and decrease the stat, which is not very obvious and leads to the mentioned bugs. On top of that, when we call GetReadResults() we may not have the knowledge as to whether the returned memory was allocated by the request or not (which may affect whether we should touch the stat at all).
Resolved by adding IAsyncReadRequest::ReleaseMemoryOwnershipImpl member, which may be used by request implementations to do the proper clean up (balance the stat). This way requests take the full responsibility for their changes and users of the requests don't need to know their implementation details.
#preflight none
#rb Patrick.Laflamme
#jira UE-185064
[CL 25664733 by Wojciech Krywult in ue5-main branch]