- Makes the assumption (checked) that dimensions are at least 128 in both X and Y.
#rb Krzysztof.Narkowicz,Sebastien.Hillaire,Rune.Stubbe
#preflight 60d059002ab2180001122cef
[CL 16725805 by Ola Olsson in ue5-main branch]
Add ray tracing shader types
Add initial ray tracing pipeline creation
Add acceleration structure descriptor type
Add basic ray tracing pipeline, occlusion support initially
Strip reflection from ray tracing shader spirv to deal with validation warnings
Don't use an array of vk descriptor types directly, this breaks with non-contiguous enum values which are common in extensions. Using a TMap from descriptor type to values instead.
Don't store vk types in the serialized shader header, translate to and from our own internal enum types to avoid similar non-contiguous value issues.
Re-enabled ray tracing compilation on windows desktop, explicitly disable runtime support using GRHISupportsRayTracing
Todo:
We need to deal with the lack of a 1:1 mapping between shader stages and frequencies for ray tracing hit groups. This is a one to many mapping which doesn't work with how most of the Vulkan RHI is authored. For now I'm assuming a hitgroup maps to a CHS.
Ray tracing shader descriptor allocation and pending state support. While we are serializing the descriptors for ray tracing shaders, we're not allocating or updating them yet which is the last large chunk needed to trace rays.
Fix spirv binary version mismatch validation error. This basically needs a local dxc modification which explicitly sets the spirv binary version to work around incorrect assuptions in dxc which is causing validation failures.
Add another local dxc modification to allow for arbirary struct size support using VK_EXT_scalar_block_layout for ray tracing shaders.
#rb jeannoe.morissette, lukas.hermanns
[CL 16711940 by Ryan Vance in ue5-main branch]
FMaterialRenderProxy doesn't appear to know which FScene it belongs to, so I had to go through the global render module and flag all scenes instead
#rb Ben.Ingram, Jason.Nadro
[CL 16704202 by chris kulla in ue5-main branch]
Adding shader symbol export path override cvar. This cvar supports specifying the shader platform name via "{Platform}".
Adding Luke's change for having build machine specific shader configs.
#jira none
#rb rolando.caloca, david.harvey, lukas.hermanns
#preflight 60c243181264df0001a2c283
[CL 16631848 by christopher waters in ue5-main branch]
Adding FRDGUploadData to create upload data directly from the GraphBuilder persistent memory.
#jira none
#rb Zach.Bethel
#preflight 60c0de551264df00015e307a
[CL 16613071 by christopher waters in ue5-main branch]
2. Add a project setting option to avoid generating velocity and TAA shader unexpectly for mobile platform.
#jira none
#rb Dmitriy.Dyomin, Guillaume.Abadie
[CL 16584354 by Wei Liu in ue5-main branch]
This change is another basis for more instance data and GPUScene improvements coming down the pipe.
#rb jason.nadro, krzysztof.narkowicz, zach.bethel, zak.middleton, rune.stubbe, ben.woodhouse
[FYI] brian.karis, ola.olsson
#preflight 60b9608d0249c300016598de
#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16555619
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf
[CL 16555914 by graham wihlidal in ue5-main branch]
--
Repacked prim data (removes 8x float32)
Implemented builder pattern for primitive uniform shader parameters
Various cleanup, optimizations, improvements - all forming a basis for subsequent refactors and optimizations
Derive calculations like lighting channel mask, per object gbuffer data, and determinant sign bit on the GPU now, instead of wasting buffer space on it.
Removed LPV bias (unused)
#rb jason.nadro, kevin.ortegren, zach.bethel, krzysztof.narkowicz
#[fyi] brian.karis
#ushell-cherrypick of 16474697 by graham.wihlidal
#ushell-cherrypick of 16476806 by graham.wihlidal
#ushell-cherrypick of 16477587 by graham.wihlidal
[CL 16477749 by graham wihlidal in ue5-main branch]