You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
e8705a4d7a
* GetLowestLevelContext returns the first physical context, rather than the multi-GPU context. The one place this function is used in practice, we are initializing the first copy of a multi-GPU resource, so we always want the first GPU. If the caller wants a more specific context, they can use other functions. * Repeatedly loop when flushing pending deletes on shutdown, until nothing gets deleted. Sometimes a pending delete will release a reference on something else, triggered a chained delete. Without MGPU, this just leaked resources, but with MGPU, this was actually crashing, because we call the device cleanup once per device, and some of the leftover deletes are shared across devices, which crashes because the first device has already been destroyed. * Pool allocated resources were asserting in FD3D12ResourceLocation::ReferenceNode, because there wasn't a proper implementation to add these nodes to linked lists for tracking. A comment suggested threading matters -- the code isn't called in multiple threads, but it did corrupt the linked lists if you skip the assert, crashing things later, which my fix solves. * Ray tracing acceleration structure GPU updates were asserting due to a call to GetGPUMask().ToIndex() on a mask with multiple bits set. We need to update the structure on the GPU where the buffer in question is located. #jira UE-126107 #rb kenzo.tereist mihnea.balta #rnx #preflight 619d7704cb49ea9493501d1a #ROBOMERGE-AUTHOR: jason.hoerner #ROBOMERGE-SOURCE: CL 18278431 in //UE5/Release-5.0/... via CL 18278471 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469) [CL 18278485 by jason hoerner in ue5-release-engine-test branch]