ryan vance
2263d0caa5
VKRT:
...
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
#ROBOMERGE-SOURCE: CL 16711940 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)
[CL 16711955 by ryan vance in ue5-release-engine-test branch]
2021-06-17 17:15:40 -04:00
lukas hermanns
9028640c86
Unify compiler info and source info in CCHeader meta data.
...
#rb Will.Damon, Ryan.Vance
[FYI] Carl.Lloyd
#jira none
#rnx
#ROBOMERGE-SOURCE: CL 16687864 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)
[CL 16687921 by lukas hermanns in ue5-release-engine-test branch]
2021-06-16 10:16:50 -04:00
Rolando Caloca
3475ca5434
UE5 - Fix Vulkan missing dual blending annotation; move it to be platform agnostic
...
#fyi Brian.White, Dmitriy.Dyomin
#rb Will.Damon
#jira UE-117253
#rnx
[CL 16574688 by Rolando Caloca in ue5-main branch]
2021-06-07 14:30:42 -04:00
carl lloyd
9b6d231e68
Enabling DXC on Vulkan Mobile
...
#rb Lukas.Hermanns
[CL 16346836 by carl lloyd in ue5-main branch]
2021-05-17 05:59:00 -04:00
Lukas Hermanns
c2eda93a8d
Refactor SPIR-V patching and strip debug instructions for Vulkan mobile except OpName instructions in --strip-reflect pass as UE always needs this reflection information.
...
Rebuild ShaderConductor for Win64, Mac, Linux.
#rb Carl.Lloyd, Rolando.Caloca, Ryan.Vance
#fyi Mihnea.Balta, Will.Damon, Dmitriy.Dyomin, Michael.Sartain, Brandon.Schaefer
#jira none
#rnx
[CL 16186169 by Lukas Hermanns in ue5-main branch]
2021-05-03 15:22:38 -04:00
Ryan Vance
aacfa50a0d
Initial shader compilation changes to support VKRT.
...
#rb Lukas.Hermanns, Rolando.Caloca
[CL 16098805 by Ryan Vance in ue5-main branch]
2021-04-22 17:38:43 -04:00
christopher waters
83f70197d3
Tessellation Removal: Removing RHI Hull/Domain shader types and enums.
...
#rb lukas.hermanns
#jira UE-94564
#preflight 607f2e11eb4f050001d4655e
[CL 16066223 by christopher waters in ue5-main branch]
2021-04-20 17:00:25 -04:00
Lukas Hermanns
603d5cd805
Fix Vulkan backend: SPIRV module was duplicated in output archive.
...
#rb Carl.Lloyd.
#fyi Ryan.Vance, Rolando.Caloca, Mihnea.Balta
#jira none
#rnx
[CL 16037693 by Lukas Hermanns in ue5-main branch]
2021-04-16 14:43:18 -04:00
Lukas Hermanns
677f2f50f1
Fix binding reflection for Metal backend: only Vulkan needs storage buffers to always occupy a UAV binding slot.
...
#rb Will.Damon
#jira none
#rnx
[CL 15979593 by Lukas Hermanns in ue5-main branch]
2021-04-12 13:16:00 -04:00
Lukas Hermanns
dc07d3f58e
Add "Disassemble" function to public interface of ShaderConductor.
...
Move ShaderConductor utility to disassemble SPIR-V into ShaderCompilerCommon module.
Fix --strip-reflect pass in SPIRV-Tools to remove all SPV_GOOGLE* reflection extensions.
Rebuild ShaderConductor for Win64, Linux, and Mac.
#rb Carl.Lloyd, Ryan.Vance
#fyi Mihnea.Balta, Rolando.Caloca, Will.Damon, Dmitriy.Dyomin
#jira none
#rnx
[CL 15978123 by Lukas Hermanns in ue5-main branch]
2021-04-12 11:25:06 -04:00
Lukas Hermanns
c75e86cf40
Move SPIR-V utility functions for reflection and binding information into SpirvCommon.h/.cpp source files.
...
#rb Will.Damon, Carl.Lloyd
#fyi Ryan.Vance, Mihnea.Balta, Rolando.Caloca, Dmitriy.Dyomin
#jira none
#rnx
[CL 15954206 by Lukas Hermanns in ue5-main branch]
2021-04-08 10:09:56 -04:00
Lukas Hermanns
6c9b164f8b
Added secondary "WritePackedGlobal" function to FHlslccHeaderWriter.
...
#rb Carl.Lloyd
#jira none
#rnx
[CL 15875032 by Lukas Hermanns in ue5-main branch]
2021-03-31 10:19:01 -04:00
christopher waters
1d0b1d44eb
Initial support for Mesh and Amplification Shaders. These new shader types are an optional feature of the RHIs and are only enabled on PC D3D12 with Feature Level SM6.
...
#jira none
#rb emil.persson, graham.wihlidal, lukas.hermanns
[CL 15742432 by christopher waters in ue5-main branch]
2021-03-18 18:42:49 -04:00
Lukas Hermanns
c147f01b29
Extend input/output bitmask in shader binding descriptors from 16 to 32 bits; in Metal, GLSL, ESSL, and SPIR-V backends.
...
#rb Will.Damon, Brian.White, Dmitriy.Dyomin
[FYI] Mihnea.Balta, Rolando.Caloca, Ola.Olsson, Carl.Lloyd
#jira UE-108926
#rnx
#ROBOMERGE-OWNER: Lukas.Hermanns
#ROBOMERGE-AUTHOR: lukas.hermanns
#ROBOMERGE-SOURCE: CL 15642763 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)
#ROBOMERGE-CONFLICT from-shelf
[CL 15642935 by Lukas Hermanns in ue5-main branch]
2021-03-08 13:24:59 -04:00
Florin Pascu
77051879b6
DistanceField Shadow Mobile(disabled by default for the moment)
...
#rb Dmitriy.Dyomin,Zach.Bethel, Jack.Porter
#jira UE-103864
[CL 15471024 by Florin Pascu in ue5-main branch]
2021-02-19 07:49:57 -04:00
Marc Audy
9753392e2b
Merge UE5/RES CL# 15462083 to UE5/Main
...
This represents UE4/Main @ 15414221
[CL 15463811 by Marc Audy in ue5-main branch]
2021-02-18 18:13:28 -04:00
Marc Audy
cac1fe0019
Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
...
This represents UE4/Main @ CL# 15277572
[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
Lukas Hermanns
829eddd5cf
Added HlslccHeaderWriter to unify writing of shader meta data.
...
#rb Mihnea.Balta, Will.Damon, Dmitriy.Dyomin
#fyi Rolando.Caloca, Brian.White
#jira none
#rnx
[CL 15225002 by Lukas Hermanns in ue5-main branch]
2021-01-27 17:53:40 -04:00
Lukas Hermanns
18e54e9b2a
Remove unused function StringToFile in VulkanShaderCompiler.cpp
...
#rb none
#jira none
#rnx
[CL 15163794 by Lukas Hermanns in ue5-main branch]
2021-01-22 11:07:52 -04:00
zach bethel
0d7dc4d4ed
Refactor of uniform buffer binding to allow for runtime selection of static or per-shader binding. This is a necessary precursor to moving the View uniform buffer to use static bindings on mesh passes; it is used in so many places that both binding models are required to preserve compatibility. Added validation to catch when a uniform buffer is bound using both methods at the same time. Added CVar to RHI transition validation to control whether to break in the debugger on a transition failure.
...
#rb christopher.waters
[CL 14873973 by zach bethel in ue5-main branch]
2020-12-07 17:42:32 -04:00
Lukas Hermanns
5acb4c83b6
DXC Update: SCW backends.
...
#rb none
#fyi Mihnea.Balta, Rolando.Caloca, Will.Damon, Jonas.Meyer, Michael.Sartain
#jira none
#rnx
[CL 14832278 by Lukas Hermanns in ue5-main branch]
2020-12-01 19:33:51 -04:00
Rolando Caloca
8c5dda23da
UE5 - Proper fix for r.Shaders.KeepDebugInfo passing in the FRHIShader::ShaderName correctly
...
Initial fixes and tested on D3D11, D3D12 and Vulkan
Changed 'n' to FShaderCodeName::Key
Also added checks if trying to add optional shader data out of order
#rb Jonas.Meyer, Kenzo.Terelst, Mihnea.Balta
[CL 14816162 by Rolando Caloca in ue5-main branch]
2020-11-26 13:34:15 -04:00
Lukas Hermanns
9e7053fd6c
Fix Vulkan tessellation in DXC: use shader output slots to commuincate patch constant data in Hull shaders (Merged from CL 14680863).
...
#rb Rolando.Caloca, Will.Damon
#fyi Jonas.Meyer, Mihnea.Balta, Graham.Wihlidal
#rnx
[CL 14714790 by Lukas Hermanns in ue5-main branch]
2020-11-10 18:35:10 -04:00
Marc Audy
68150e0be7
Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
...
This represents UE4/Main @ 14594913
[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
Marc Audy
50a3d7d368
Merge Release-Engine-Staging to Main @ CL# 14467590
...
This represents UE4/Main @ 14432125 + some cherrypick fixes
[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00