To fix vulkan validation warning: Validation Error: [ VUID-vkCmdDrawIndexed-None-02699 ] Object 0: handle = 0xb60d06000004faeb, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xa44449d4 | Descriptor set VkDescriptorSet 0xb60d06000004faeb[] encountered the following validation error at vkCmdDrawIndexed time: Descriptor in binding #11 index 0 requires UINT component type, but bound descriptor format is VK_FORMAT_R32_SINT. The Vulkan spec states: Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-None-02699)
#rb stu.mckenna
#jira none
#preflight 62ba79a7e7734830fa8ed726
[CL 20845687 by Dmitriy Dyomin in ue5-main branch]
Clean obsolete codes in mobile postprocess.
#jira UE-156188
#rb Dmitriy.Dyomin
#preflight 62b274f08e5ee14ea77b8d10
[CL 20769595 by Wei Liu in ue5-main branch]
This resubmits the following original changelists (with fixes).
Original CL Desc for CL20737284 -----------------------------------------------------------------
Add a version of UseVirtualTexturing() that takes a shader platform.
A future goal is to deprecate the version that takes a feature level.
Original CL Desc for CL20738687 -----------------------------------------------------------------
Virtual texturing forces depth pass on.
This fixes bug when using any masked materials that sample VT.
#jira UE-157197
#jira UE-117783
#preflight 62b1cb8ac400b5ee2f517942
[CL 20757215 by jeremy moore in ue5-main branch]
-Allow the frame sync to be kicked from the render thread when using the gtsync==2 (low input latency mode). On some platforms, the RHI thread will block on present. Putting the RHI as the trigger index will block the GameThread until the present is finished (vblank). In low input latency mode, some consoles uses the RHIOffsetThread to kick of the Gamethread, so we dont want it to block on present.
-Use the present mode to submit frame tokens in low input latency mode. Using GT_wait or GT_early introduce stuttering in the frame time since the gamethread will sync on the present when its double buffered. Even if we increase the frame interval (3 or 4), the WaitFrameEventX will eventually block the gamethread when the second display buffer is in used. Note that we delay the barrier transition(RT->Display) until we really use the backbuffer, so we dont technically need to throttle on the frame token, since we are in pseudo triple buffer mode. Issuing GT_Wait/GT_early mode in double buffer mode will always produce bad frame pacing when we use the FRHIFrameOffsetThread approach.
-Set the frame offset interval to zero to sync the os input pooling with the vblank.
[REVIEW] [at]Eric.McDaniel
#ROBOMERGE-OWNER: serge.bernier
#ROBOMERGE-AUTHOR: serge.bernier
#ROBOMERGE-SOURCE: CL 20749857 via CL 20750200 via CL 20750276 via CL 20750599 via CL 20750604
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v970-20704180)
[CL 20751490 by serge bernier in ue5-main branch]
- testing
- compiled and cooked QAGame locally for Win64
#preflight 62b12d784c538079d66599da
#rnx
#fyi Jeremy.Moore
Original CL Desc for CL20737284
-----------------------------------------------------------------
Add a version of UseVirtualTexturing() that takes a shader platform.
A future goal is to deprecate the version that takes a feature level.
#preflight 62b080e1613434b77fa673d0
Original CL Desc for CL20738687
-----------------------------------------------------------------
#jira UE-117783
Virtual texturing forces depth pass on.
This fixes bug when using any masked materials that sample VT.
#preflight 62b08fceef1c984554505316
[CL 20750841 by eric mcdaniel in ue5-main branch]
A future goal is to deprecate the version that takes a feature level.
#preflight 62b080e1613434b77fa673d0
[CL 20737284 by Jeremy Moore in ue5-main branch]
2.Uses the same shading models and dynamic lightings code path on desktop.
3.Remove the division of PI on mobile directional light's color in C++ to line up with desktop in shaders.
#jira UE-114145
#rb Dmitriy.Dyomin, Sebastien.Hillaire
#preflight 62b0411fd8082c5c200fa32a
[CL 20734991 by wei liu in ue5-main branch]
Cvars with this flag will modify the Shader Keystring for All Platforms
ECVF_GeneralShaderChange = 0x200,
Cvars with this flag will modify the Shader Keystring for Mobile Platforms
ECVF_MobileShaderChange = 0x400,
Cvars with this flag will modify the Shader Keystring for Desktop Platforms
ECVF_DesktopShaderChange = 0x800,
r.MobileHDR is using this system now. Others will follow.
#rb Jack.Porter, Mihnea.Balta
#jira UE-120561
#preflight 62aae0aeea213dadf0b36fdd
[CL 20684686 by Florin Pascu in ue5-main branch]
- Refactored relevant FDynamicRHI APIs to take an FRHICommandListBase reference. Platforms which require operations deferred to the RHI thread will enqueue commands into the command list.
- Hardened platform implementations to use locks where needed.
- Added unit tests to stress test creating and locking many buffers in parallel.
#preflight 62a2855c54169bd8aa114d29
#rb christopher.waters, jeannoe.morissette, luke.thatcher, will.damon, kenzo.terelst
[CL 20659113 by zach bethel in ue5-main branch]
- Devices crashing when using Base_Vertex metal shader semantics
- Runtime error when using Virtual Texturing on A8 devices which is unsupported.
#jira UE-131863, UE-132217
#rb Will.Damon
[FYI] Jack.Porter
#preflight 62a75ad63d0a713cf8caf486
#ROBOMERGE-AUTHOR: carl.lloyd
#ROBOMERGE-SOURCE: CL 20631592 in //UE5/Release-5.0/... via CL 20649245
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)
[CL 20656300 by carl lloyd in ue5-main branch]
The shader compiler will enable ISR or Mobile Multi-View in shaders, independent of whether they are actively engaged in stereo rendering.
But we _bind_ the instanced view UB when we think stereo is active. We can bind the instanced view UB even while doing mono rendering.
#jira UE-145187
#rb Arciel.Rekman
#preflight 62a7d16df017fed6d25c6641 62a80b5c67522b9df01e96cc
[CL 20650995 by robert srinivasiah in ue5-main branch]
* Each cube map face gets its own FSceneViewState. The downside is that it potentially could add a lot of extra memory. So some memory optimizations were made to compensate.
* Global distance field data is shared for all cube map faces. This data is only dependent on the view origin, which is invariant for the cube map faces. A mechanism was added to allow cross view state data sharing for shared origin views. This saves 8.5 MB, and improves perf.
* Disabled distance field lighting temporal AO for cube map capture. The AO history texture in the view state is dependent on the Scene texture extents, which is typically the front buffer size, which then gets multiplied by 6. For a 1080p front buffer, this is 24 MB, while for a 4K front buffer, this is 96 MB, regardless of the resolution of the cube map capture itself. A 256x256 cube map capture, including all the auxiliary state, is otherwise only around 9 MB, so this is an order of magnitude increase. A comment in the function "DistanceFieldAOUseHistory" has more details on how this could be fixed, by using the view rect rather than Scene texture extents for the history texture -- for the 256x256 case, it would reduce the incremental memory cost to 768K.
With the memory savings from disabling distance field lighting temporal AO, this change is more or less memory neutral if the Scene texture extent (front buffer) is 1080p. A net increase of 590K. With a higher resolution front buffer, it's a subsantial memory win.
#jira UE-151717
#rnx
#rb tiago.costa daniel.wright
#preflight 629f6a27233ae0a8f8f99932
[CL 20614815 by jason hoerner in ue5-main branch]