Commit Graph

231 Commits

Author SHA1 Message Date
Charles deRousiers
2dd761fc54 Change Subsutrate sRGB encoding.
* Default now uses accurate sRGB value encoding.
* Lower platforms using lower shading quality (i.e., r.Substrate.ShadingQuality > 1), will continue to use the cheap sqrt/square encoding/decoding

Using proper sRGB encoding increases occupangy by 8 vgpr on ps4 and a fullscreen quad during the base pass by 0.2ms due to lower occupancy. So keep it disabled on lower platforms.

#rb none
#jira none
#preflight 642ad0058f078cc7031c1ae2
#fyi sebastien.hillaire

[CL 24891794 by Charles deRousiers in ue5-main branch]
2023-04-03 09:35:50 -04:00
Wei Liu
01a415b564 Sampling SceneDepth instead of fetching SceneDepthAux when full depth prepass is enabled.
#jira none

#rb Dmitriy.Dyomin
#preflight 64267ed89621ba9cb48c0edf

[CL 24868190 by Wei Liu in ue5-main branch]
2023-03-31 03:12:41 -04:00
dan elksnitis
49d7985a85 [shaders] Add "compile argument" functionality for generic parameters consumed by compile backends, along with helper to set both a compile arg AND define for cases which require both. The purpose of this is to move towards enforcing that preprocessor defines should _only_ be used during the preprocessing phase itself; the subset of defines that are currently used only as arguments to the compile backends (or used as both actual preprocessor defines and backend arguments) should use this mechanism instead. This allows us to explicitly identify and hash such parameters to be included in a stable key based primarily on a hash of preprocessed/deadstripped source; without it we would need to hash all defines which will defeat most of the deduplication benefit of doing this. A subsequent change will deprecate the GetDefinitions function on the shader compilation environment to enforce that defines cannot be read by anything outside of core shader system functionality.
#rb Massimo.Tristano
#rb Laura.Hermanns
#preflight 64258c2e5e52099fe3d03625

[CL 24854110 by dan elksnitis in ue5-main branch]
2023-03-30 10:47:09 -04:00
Sebastien Hillaire
88900c95e5 Compilation error fix for 24853509
#rb none
#preflight none

[CL 24853689 by Sebastien Hillaire in ue5-main branch]
2023-03-30 10:16:51 -04:00
Sebastien Hillaire
7e4d413b5f Substrate - always precompile with DXC when substrate is enabled and if DXC is supported. No need for any ForceDXC cvar anymore.
#rb Laura.hermanns
#preflight https://horde.devtools.epicgames.com/job/64253dafe11ce5214fec8ddd
#fyi charles.derousiers

[CL 24853509 by Sebastien Hillaire in ue5-main branch]
2023-03-30 10:01:27 -04:00
Sebastien Hillaire
de532bf488 Substrate - GPULightmass support
#rb none
#preflight https://horde.devtools.epicgames.com/job/64241210e11ce5214f740ebd
#fyi charles.derousiers

[CL 24833842 by Sebastien Hillaire in ue5-main branch]
2023-03-29 07:24:23 -04:00
Sebastien Hillaire
1491943760 Substrata - ray tracing material shaders uses fully simplified material for smaller payload.
Next would be to have the fully simplified mode disable anisotropy to have an even lower payload size.

#rb charles.derousiers
#preflight https://horde.devtools.epicgames.com/job/6422ad44973e609670e855c8

[CL 24815921 by Sebastien Hillaire in ue5-main branch]
2023-03-28 05:25:01 -04:00
Dmitriy Dyomin
1221e5705d Added support for ASTC Luminace+Alpha encoded normal maps
#jira none
#preflight 6404782e1d304a5471847436

[CL 24518576 by Dmitriy Dyomin in ue5-main branch]
2023-03-05 21:08:09 -05:00
charles derousiers
a6b3723b28 Add VSM high quality shadow filtering for translucent surface for Substrate and legacy path.
This is a global opt-in feature.

#rb ola.olsson, andrew.lauritzen
#jira none
#lockdown juan.canada
#preflight 63fe7e1bf43e53f681c31d03

[CL 24462071 by charles derousiers in ue5-main branch]
2023-03-01 10:01:35 -05:00
carl lloyd
ce3e8fe3fe Move Fortnite to OpenGL DXC
Fixed bug in Shader Key with OpenGL

#rb Allan.Bentham
[FYI] Pete.Sauerbrei

[CL 24312254 by carl lloyd in ue5-main branch]
2023-02-20 07:25:20 -05:00
wouter dek
3ae5c6c895 Convert shader type and parameter struct metadata from global variables to static locals to defer initialization. This allows us to create these types dynamically at startup, while keeping the rest of the infrastructure as is.
#rb jason.nadro
#preflight 63f352130803c73accb744f1

[CL 24311526 by wouter dek in ue5-main branch]
2023-02-20 06:10:39 -05:00
christopher waters
87014d9ccf Allow configuration of Bindless on a per-format basis in configs.
- The config section is the DDSPI ShaderFormat of the shader platform
- BindlessResources and BindlessSamplers can be set independently
- The cvars still exist and will take precedence over the config settings.
- Renamed RHIGetBindlessResourcesConfiguration/RHIGetBindlessSamplersConfiguration to have the word "Runtime" in them to reflect that they should only be used at runtime and not when deciding if it's enabled for a shader.

#jira UE-171919
#rb jason.nadro, yuriy.odonnell, jeannoe.morissette
#preflight 63edaabd0a06073fef07655f

[CL 24282763 by christopher waters in ue5-main branch]
2023-02-17 11:01:24 -05:00
Arciel Rekman
84d3f99470 [Backout] - CL24227640
#fyi wouter.dek

The problem with this change is that late-created shader types will not be in the shadertype list and as such will not be included in the shader map even if their ShouldCompilePermutation() would return true.

Original CL Desc
-----------------------------------------------------------------
Convert shader type and parameter struct metadata from global variables to static locals to defer initialization. This allows us to create these types dynamically at startup, while keeping the rest of the infrastructure as is.

#preflight 63eca58e7d2ec3d2fd286d9a
#rb zach.bethel

[CL 24240825 by Arciel Rekman in ue5-main branch]
2023-02-15 15:57:24 -05:00
wouter dek
7a70fa6a8f Convert shader type and parameter struct metadata from global variables to static locals to defer initialization. This allows us to create these types dynamically at startup, while keeping the rest of the infrastructure as is.
#preflight 63eca58e7d2ec3d2fd286d9a
#rb zach.bethel

[CL 24227640 by wouter dek in ue5-main branch]
2023-02-15 05:55:29 -05:00
charles derousiers
2e825249bd Add optional accurate sRGB encoding for Strata pixel payload.
#rb sebastien.hillaire
#jira none
#preflight 63e40213244dc45a2026160c
#lockdown juan.canada

[CL 24085322 by charles derousiers in ue5-main branch]
2023-02-08 18:00:32 -05:00
eric renaudhoude
4c7052d24b ColorManagement: Working color space support in volumetric cloud rendering.
#jira UE-170709
#rb sebastien.hillaire
#preflight 63e19ebbb923ed4bdd00b15d

[CL 24043003 by eric renaudhoude in ue5-main branch]
2023-02-06 19:59:13 -05:00
dmitriy dyomin
b447633a62 Fixed: Virtual texture shimmering on mobile platforms
Added manual VT filtering for mobile platforms that do not use TAA (contributed by albin.bernhardsson at ARM)
#jira UE-175862
#rb jeremy.moore
#preflight 63db903bba4fadeef046dc56

[CL 23967866 by dmitriy dyomin in ue5-main branch]
2023-02-02 09:58:44 -05:00
charles derousiers
5229394cfe Fix incorrect material appearance on raytracing material with Strata enabled
* Add adaptive RT material payload for Strata.
* Centralize all Strata settings in RenderCore/RenderUtils.h to ensure consistency

#rb chris.kulla
#jira none
#preflight 63d43bcff626715201a0ed1d
[FYI] sebastien.hillaire

[CL 23923301 by charles derousiers in ue5-main branch]
2023-01-31 01:12:18 -05:00
Dmitriy Dyomin
61048a527c Added manual VT filtering for mobile platforms that do not use TAA (contributed by albin.bernhardsson at ARM)
#jira UE-121358
#rb jeremy.moore
#preflight 63d39b78d21dbe1d290c49b4

[CL 23902542 by Dmitriy Dyomin in ue5-main branch]
2023-01-29 23:03:58 -05:00
christopher waters
1f21b73b25 Ran IWYU on RHI and RenderCore, private only.
#preflight 63d358c85c69f453c1f79c37

[CL 23889591 by christopher waters in ue5-main branch]
2023-01-27 14:54:10 -05:00
Sebastien Hillaire
8eddb7a7a9 Made DBuffer pass only usable when high quality normal is not used on non console.
This is because this pass writes highquality normal though UAV uint2 which is not supported by all graphics card on PC.

#rb charles.derousiers.
#preflight https://horde.devtools.epicgames.com/job/63c57fae2e714f64ade48477

[CL 23735443 by Sebastien Hillaire in ue5-main branch]
2023-01-17 02:37:24 -05:00
bob tellez
971983eb65 [Backout] - CL23624045
[FYI] christopher.waters
Original CL Desc
-----------------------------------------------------------------
RHI header dependency cleanup
- Reducing other header dependencies from RHIDefinitions.h
- Moved a few functions to the new RHIStrings.h
- Uniform buffer layout initializer moved to its own file to reduce RHI dependency on MemoryLayout.

#preflight 63bca752577437afe604b097

[CL 23631957 by bob tellez in ue5-main branch]
2023-01-10 15:28:15 -05:00
christopher waters
3df5dae685 RHI header dependency cleanup
- Reducing other header dependencies from RHIDefinitions.h
- Moved a few functions to the new RHIStrings.h
- Uniform buffer layout initializer moved to its own file to reduce RHI dependency on MemoryLayout.

#preflight 63bca752577437afe604b097

[CL 23631946 by christopher waters in ue5-main branch]
2023-01-10 15:27:33 -05:00
christopher waters
b646d3c719 Moving FShaderPlatformCachedIniValue into its own file.
Preparing RenderUtils for include removal.

#preflight 638f63a09549ddaa2869ddf0

[CL 23422383 by christopher waters in ue5-main branch]
2022-12-06 20:00:07 -05:00
christopher waters
aebe064d06 Moving some shader system methods into cpp files to remove header file dependencies on FDataDrivenShaderPlatformInfo.
#rb jeremy.moore
#preflight 6389397c303395f6c955ab10

[CL 23376303 by christopher waters in ue5-main branch]
2022-12-02 13:38:49 -05:00