Some P4V problem with backing out large changelist missed some files.
#codereview Robert.Manuszewski
[CL 2481366 by Jaroslaw Palczynski in Main branch]
It would be nice if we just made all these two-version functions templated based on which thread they're for.
#code_review: Rolando.Caloca, Nick.Penwarden
[CL 2407163 by Jack Porter in Main branch]
- Store global bitfield of active feature levels
- Generate shaders for all active feature levels
- Add option to experimental settings to enable dynamic feature level
- Redirect GRHIFeatureLevel to GMaxRHIFeatureLevel - Effectively const now, ready to be removed
[CL 2296373 by Graeme Thornton in Main branch]
* Both paths still exist in code during this transition. The GetDynamicMeshElements path is currently disabled, enable with 'r.UseGetDynamicMeshElements 1'.
* DrawDynamicElements was called once per pass, all sorts of pass-specific cruft had leaked in along with short-term modifications of shared structures (vertex factories and material proxies). DrawDynamicElements was not const, so a bunch of 'update' type work had leaked in. Various PreRenderView implementations relied on the view being in the view family.
* GetDynamicMeshElements is called once in InitViews, and the resulting meshes are used in various passes. GetDynamicMeshElements is const and must not modify the proxy, update work should be pushed to the proxy from the game thread. GetDynamicMeshElements can be called on views that are not in the view family, which allows a proper view for shadow depth passes.
* View mode override functionality moved out of the individual proxies into a centralized place, ApplyViewModeOverrides
* GPU particles not working yet, FRecastRenderingSceneProxy not implemented
[CL 2253795 by Daniel Wright in Main branch]