Files
UnrealEngineUWP/Engine/Source/Runtime/RenderCore/Public
tiago costa 6d5fd35573 Resubmit CL 30935187 with following changes:
- Issue 1 - UStaticMesh can be released before the proxy is destroyed:
    - delay release of FRayTracingGeometryGroup until all proxies are unregistered.
    - keep copy of RayTracingGeometryGroupHandle in render proxy

- Issue 2 - FRayTracingGeometryManager::RequestUpdateCachedRenderState(...) called when running !IsRayTracingAllowed()
    - initialize RayTracingGeometryGroupHandle to INDEX_NONE
    - only call FRayTracingGeometryManager::RequestUpdateCachedRenderState(...) if IsRayTracingAllowed()

[Original CL Desc]

Improvements to tracking of proxies requiring invalidation when raytracing geometry is streamed/built/made resident.

Context:
- The existing CachedRayTracingStateProxiesMap mapped [UStaticMesh -> Array of Proxies that need to be invalidated], however there was no way to map [FRayTracingGeometry -> Array of Proxies that need to be invalidated] since FRayTracingGeometry doesn't have a pointer to which UStaticMesh owns it. On top of that, not every FRayTracingGeometry is associated with a UStaticMesh.
- An alternative approach could be having a map [FRayTracingGeometry -> Array of Proxies that need to be invalidated] however that would require significantly more memory - O(#proxies x #LODs) instead of O(#proxies).

Change:
- Modified CachedRayTracingStateProxiesMap to use a more generic RayTracing::GeometryGroupHandle (int32) as key.
- Store RayTracing::GeometryGroupHandle in FRayTracingGeometry.

[FYI] aleksander.netzel

[CL 31210259 by tiago costa in ue5-main branch]
2024-02-06 06:58:03 -05:00
..
2024-01-29 23:48:09 -05:00
2024-01-29 21:37:12 -05:00
2024-02-02 12:15:46 -05:00
2024-01-29 23:48:09 -05:00
2023-12-15 15:28:27 -05:00
2024-01-29 23:48:09 -05:00
2024-01-29 23:48:09 -05:00