This does not truly change HDR since these platforms do not support toggling this at runtime. Instead we change the swapchain to be in SDR, and we end up in SDR mode with HDR output mode.
SDR in HDR mode is slightly darker on the TV, more than when comparing the screenshots of the swapchain. This is most likely due to the TV response, which needs to be investigated later on to see if we can somehow match the 2 properly.
In addition to the 2 CLs from main, this CL allows BP to change the CVar r.HDR.EnableHDROutput . On these platforms, the CVar is set with ECVF_SetByCode as soon as HDR was supported and calling EnableHDRDisplayOutput with ECVF_SetByGameSetting would get ignored
#jira UE-148923
#preflight 628fbfbd4f63120d8ee7af3d
Original CLs:
19334984
fix for r.setres on d3d12: the backbuffers were still referenced by the present queue, preventing their proper destruction
19609874
support for HDR change on process resume
#ROBOMERGE-OWNER: benjamin.rouveyrol
#ROBOMERGE-AUTHOR: benjamin.rouveyrol
#ROBOMERGE-SOURCE: CL 20439865 in //UE5/Release-5.0/... via CL 20440669
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20449414 by benjamin rouveyrol in ue5-main branch]
This improves how the editor deals with displays that have different capabilities (some with HDR, others without).
Centralize where the CVars are accessed
Have the swapchain created in SDR when shown on a SDR display
Make sure color gamut matches the one supported by the platform/swapchain.
Allow Movie scene capture to override the gamut/output format to keep existing behaviour (MovieSceneCapture relies on swapchain data)
#preflight 628baef5183c1e13462a504d
#jira UE-150952
#rb luke.thatcher
[CL 20347067 by benjamin rouveyrol in ue5-main branch]
-FPostProcessRectParams was still using the old FTexture2DRHIRef/GetTexture2D pattern rather than using FTextureRHIRef directly. This meant that it did not support 2DArray textures, like the VR swapchain, and caused an assert during a post-process blur on Lyra.
#review-20297934
#rb Arciel.Reckman
#preflight 6287e5ff9b764703c31a4077
[CL 20300846 by Jeff Fisher in ue5-main branch]
conversion to scRGB was happening twice in CompositeUIPixelShader: once during the LUT, and once during ST2084ToScRGB. We now rely only on the LUT to put us to the correct color space, just like we do during tonemapping
Make sure to use rec709 instead of rec2020 in editor, since this is the color space that is used by scRGB (PF_FloatRGBA backbuffer format)
Fixed UI composition to properly composite HDR elements (like the viewport) with the rest of the UI: we draw a black, 0-alpha rectangle as a proxy in the SDR pass for HDR elements, and we draw the HDR elements in their own rendertargets
#preflight 6266e5285037f70ba0f3939b
#jira UE-148996
#rb eric.renaudhoude Rod.Bogart vincent.gauthier
[CL 19918995 by benjamin rouveyrol in ue5-main branch]
RHICreateTargetableShaderResource2D changes will come in a later CL.
#jira none
#rb luke.thatcher
#preflight 6242188fc61d8a458f1ea406
[CL 19533075 by christopher waters in ue5-main branch]
#rb matt.kuhlenschmidt
#ROBOMERGE-AUTHOR: andrew.ladenberger
#ROBOMERGE-SOURCE: CL 19375756 via CL 19375763 via CL 19377309 via CL 19392399 via CL 19392529
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19402293 by andrew ladenberger in ue5-main branch]
This is causing an ensure to hit in Slate applications.
[FYI] Patrick.Boutot, Matt.Kuhlenschmidt
Original CL Desc
-----------------------------------------------------------------
Slate: Clear the uncached draw elements once they are batches and clear the batches elements once they are rendered. We do this to remove hard references to the Glyph Sequence from the previous frame. Cached draw elements are still cached. An old Glyph Sequence may still be a reference in a cached element but it is the responsibility of the SWidget to do the proper invalidation.
#rb matt.kuhlenschmidt
#preflight 62066e4554003c49ad37c3e6
#ROBOMERGE-AUTHOR: vincent.gauthier
#ROBOMERGE-SOURCE: CL 18997554 via CL 18997606 via CL 18998070 via CL 18998217 via CL 18998286 via CL 19002213 via CL 19004425
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 19004631 by vincent gauthier in ue5-main branch]
#rb matt.kuhlenschmidt
#preflight 62066e4554003c49ad37c3e6
#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 18952424 via CL 18952442 via CL 18953137 via CL 18953283 via CL 18955233 via CL 18956023
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18958325 by patrick boutot in ue5-main branch]
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build
#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18824721 by fred kimberley in ue5-main branch]
Submitted on behalf of fred.kimberley
#rb andy.davidson
#preflight 61f8729a5a026d2d19bb9ca6
#preflight 61f87a025a026d2d19be76ed
#ROBOMERGE-OWNER: andrew.davidson
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18802361 in //UE5/Release-5.0/... via CL 18802891 via CL 18821557
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)
[CL 18821641 by andrew davidson in ue5-main branch]