Commit Graph

2433 Commits

Author SHA1 Message Date
dmitriy dyomin
1c99a294d8 Make sure memoryless textures are discarded by RDG at the end of the pass
#rb mihnea.balta, zach.bethel

[CL 30257193 by dmitriy dyomin in ue5-main branch]
2023-12-11 23:34:38 -05:00
dmitriy dyomin
22bc049db0 Skip RDG tracking for a baked skylight textures
#rb zach.bethel

[CL 30257159 by dmitriy dyomin in ue5-main branch]
2023-12-11 23:32:36 -05:00
christopher waters
e9661bc768 Preparing for dependency cleanup.
[CL 30244022 by christopher waters in ue5-main branch]
2023-12-11 13:55:22 -05:00
charles derousiers
821a52514b Add IES Atlas support for translucent surface.
#rb charles.derousiers
[FYI] sebastien.hillaire

[CL 30207129 by charles derousiers in ue5-main branch]
2023-12-08 03:03:42 -05:00
tiago costa
0ad2a6fef1 Moved calling GRayTracingGeometry->Tick() to FRendererModule::PostRenderAllViewports()
#rb aleksander.netzel

[CL 30183688 by tiago costa in ue5-main branch]
2023-12-07 12:29:53 -05:00
dan elksnitis
c1f33c7a82 [shaders] debug usf/direct compile cleanup
- never append the environment defines as commented code to the source used for further preprocessing/compilation; instead only append it to the debug USF
- strip comments after loading the debug usf in direct compile mode as some backends expect comments to have already been removed and the extra ones we add to the debug dump cause them to barf
- change all #if 0s in the debug usf to block comments instead so the above can strip them (said backends also don't like preprocessor directives left in the file)

#rb Jason.Nadro, rob.krajcarski

[CL 30161438 by dan elksnitis in ue5-main branch]
2023-12-06 13:32:32 -05:00
kenzo terelst
e704efdd1c Remove IsInParallelRenderingThread when creating RHI shaders because this call can happen during PSO precaching as well from worker threads - check was only around stat tracking updates
#rb Arciel.Rekman, mihnea.balta

[CL 30150119 by kenzo terelst in ue5-main branch]
2023-12-06 04:37:17 -05:00
christopher waters
86af3ce99d Fixing various header only compile errors.
[CL 30138626 by christopher waters in ue5-main branch]
2023-12-05 17:55:30 -05:00
jamie hayes
08f564e582 Add some Nanite read-only CVars to the shader map DDC key to prevent caching issues.
#rb dan.elksnitis

[CL 30131788 by jamie hayes in ue5-main branch]
2023-12-05 15:29:09 -05:00
dan elksnitis
61712d4b35 [shaders] fix verbose logging of shader hashes to be deterministic - parts of the FSHA1 struct are seemingly intentionally uninitialized, but further hashing this struct itself doesn't really make sense. instead copy the incremental state and generate a "final" hash after each file; this isn't the hash of just that file but rather the hash of all files up to the point of that file, which is not perfect but good enough to track down real nondeterminism issues.
#rb massimo.tristano

[CL 30130576 by dan elksnitis in ue5-main branch]
2023-12-05 15:02:52 -05:00
dmitriy dyomin
f605f4e425 Fixed linking error in a debug configurations
[CL 30109071 by dmitriy dyomin in ue5-main branch]
2023-12-05 01:47:22 -05:00
dmitriy dyomin
3fd043a9d9 Added ability to turn some of FReadOnlyCVARCache properties into compile time constants
#rb Jack.Porter

[CL 30108937 by dmitriy dyomin in ue5-main branch]
2023-12-05 01:26:12 -05:00
graham wihlidal
277cc33ae3 Fix crash on startup on low-end DX11 GPUs due to TexCreate_UAV being enabled on gbuffer targets.
This flag was turned on if r.Nanite.AllowComputeMaterials was 1, without checking if Nanite is supported on the current platform. Old GPUs can't make UAVs for BGRA targets, so GBuffer creation failed.

[REVIEW] [at]yuriy.odonnell
#rnx
#rb yuriy.odonnell, derek.ehrman, mihnea.balta

#ushell-cherrypick of 30070638 by swarm
#localization none
#tests boot
#preferred_allowlister derek.ehrman
[FYI] juan.canada

[CL 30099997 by graham wihlidal in ue5-main branch]
2023-12-04 18:20:10 -05:00
zach bethel
f228ba6065 Added lock to render target pool to protect FindFreeElement.
#jira UE-201344

[CL 30095679 by zach bethel in ue5-main branch]
2023-12-04 16:40:25 -05:00
tim doerries
e2a32e0268 Replaced FComputeShaderUtils::ClearUAV with AddClearUAVPass.
#rb Krzysztof.Narkowicz
#rnx

[CL 30091811 by tim doerries in ue5-main branch]
2023-12-04 14:58:42 -05:00
tiago costa
dbb3368ae7 Deprecated IPersistentViewUniformBufferExtension
- removed calling IPersistentViewUniformBufferExtension::BeginRenderView() from GatherRayTracingWorldInstancesForView()

#rb Jeremy.Moore, Sebastien.Hillaire

[CL 30077068 by tiago costa in ue5-main branch]
2023-12-04 07:32:23 -05:00
sebastien hillaire
732dded085 LFAtlas - added support for forward translucent and SLW light function sampling from atlas.
LFA parameter can are bound to base pass data. Project settings Cvars controls how to enable those settings.

[CL 30073379 by sebastien hillaire in ue5-main branch]
2023-12-04 03:09:15 -05:00
dmitriy dyomin
20fb751098 Fixed case where FReadOnlyCVARCache was used too early before RHI init
[FYI] christopher.waters

[CL 30072783 by dmitriy dyomin in ue5-main branch]
2023-12-03 22:43:47 -05:00
sebastien hillaire
06a770f20b LFAtlas - added color atlas mode. As a project setting requiring shader compilation.
#rb charles.derousiers

[CL 30034199 by sebastien hillaire in ue5-main branch]
2023-12-01 05:15:26 -05:00
dan elksnitis
cc7c2c54f4 [shaders] shader format preprocessing cleanup & refactoring
- move uniform buffer cleanup and dead stripping into ShaderPreprocessor module's PreprocessShader function
- add "required symbols" to compiler input struct to specify additional symbols to keep during minification aside from those specified by the entrypoint; modify API such that both an entry point string and additional symbols can be specified (to avoid each backend needing to manually parse the compound RT entry point string)
- make use of ModifyShaderCompilerInput in all backends to set additional defines and required symbols on input struct up front; only use the AdditionalDefines map in cases where it's actually necessary
- remove the various per-platform defines for enabling minifier, no longer required now that this has been rolled out for all backends
- fix SCW directcompile mode; this had rotted due to pieces of the FShaderCompilerEnvironment having been added that weren't explicitly serialized to either cmdline or in the shader source. this now serializes as a base64 string written inside the USF containing all portions of the environment required for compilation (using the same serialization function as is used to write/read the SCW input file)
- use a debug flag for indicating we're in "direct compile" mode and should load the debug USF off disk, rather than the poorly named "bSkipPreprocessedCache" (this name is both inaccurate and also confusing due to the addition of the preprocessed job cache)
- modify platform "force wave32" mechanism to use a pragma directive to set a compiler define, instead of doing string replacement in the preprocessed source
- add a view version of the RT entrypoint parsing to use in preprocessing, note that other paths still need to construct fstrings due to further manipulation so keeping the FString path around too
- clean up backends manually checking the "directcompile" cmdline arg

#rb christopher.waters, Yuriy.ODonnell
#rb Chris.Waters
#rb Laura.Hermanns

[CL 30023082 by dan elksnitis in ue5-main branch]
2023-11-30 15:56:34 -05:00
jamie hayes
c32ed4d53e Introducing Scene Extensions, which provide a means of adding optional, persistent data for features that live alongside the scene without coupling the scene and feature code. Extending this interface also provides a means of hooking the various stages of scene updates, as well as hooks into scene rendering without requiring any change to the core infrastructure.
As a proof of concept, spline mesh scene resources have been adapted to use this new interface.

Also, as a bit of code clean-up, RVT rendering has been updated to use the renderer module's scene primitive rendering interface, and this interface updated to optionally not be tied to a single view family to accommodate RVT. This should help reduce the risk of breakage of RVT due to unifying the interface it employs with that of other such sources of rendering required that lie outside of standard scene rendering.

#rb Ola.Olsson

[CL 30018426 by jamie hayes in ue5-main branch]
2023-11-30 12:42:02 -05:00
yuriy odonnell
a71c2180fb Remove BUF_ImmediateCommit in favor of only having an explicit buffer commit operation
#rb zach.bethel

[CL 30001552 by yuriy odonnell in ue5-main branch]
2023-11-29 18:00:06 -05:00
tiago costa
4a64faf8a2 Removed FRHICommandList parameter from FRayTracingGeometryManager::RequestBuildAccelerationStructure()
- Also made it possible to update some other functions to only require FRHICommandListBase.

#rb Yuriy.ODonnell

[CL 29999933 by tiago costa in ue5-main branch]
2023-11-29 17:09:38 -05:00
ola olsson
4d0aaef578 Added TPersistentByteAddressBuffer and TByteAddressBufferScatterUploader alongside the structured buffer support.
#rb jamie.hayes

[CL 29982531 by ola olsson in ue5-main branch]
2023-11-29 03:26:16 -05:00
benjamin rouveyrol
46a8fa88f8 remove device id check for HDR on windows:
* d3d12 / d3d11-editor are already using DXGI to check whether HDR is supported on the display.
* d3d11-cooked still relies on vendor extensions, but we propagate the information from FD3D11DynamicRHI::SetupDisplayHDRMetaData to GRHISupportsHDROutput. Because of that, we don't even call ChooseHDRDeviceAndColorGamut on vendors we do not support
Remove unnecessary check in EnsureColorSpace: it's valid to call CheckColorSpaceSupport with SDR
fix d3d11-cooked backbuffer format: both vendor extensions expect FP16 ScRGB, not HDR10 format

#rb eric.renaudhoude, mihnea.balta
#jira UE-200383 UE-168203

[CL 29955969 by benjamin rouveyrol in ue5-main branch]
2023-11-28 03:39:43 -05:00