Commit Graph

1325 Commits

Author SHA1 Message Date
arciel rekman
992e7bffaa Do not skip loading RT shaders if we force all shaders to be created (UE-135175).
#rb Jason.Nadro
#jira UE-135175
#preflight none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18729247 in //UE5/Release-5.0/... via CL 18729277 via CL 18729354
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18729372 by arciel rekman in ue5-main branch]
2022-01-25 17:39:37 -05:00
jonathan bard
98478cb6e3 Added "ultimate" version of AddClearRenderTargetPass that lets the user clear multiple mips, multiple array slices, with/without a custom clear color or viewport and does so by using a clear action if possible.
Note: the existing versions have not been deprecated since they are more straightforward (they clear only a single mip/slice).

#rb zach.bethel
#preflight 61ef0a62ca3de856bcd670de

#ROBOMERGE-OWNER: jonathan.bard
#ROBOMERGE-AUTHOR: jonathan.bard
#ROBOMERGE-SOURCE: CL 18724174 via CL 18724195 via CL 18724225 via CL 18725569 via CL 18725818
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18725830 by jonathan bard in ue5-main branch]
2022-01-25 13:49:10 -05:00
sebastian thomeczek
7ef35c3511 Adjust LogPakFile logging verbosity
- added VeryVerbose message when access to any file from ExcludedNonPakExtensions is prevented
- Introduced new Display message to print mounted pak file name and mount point, moved the corresponding logs that were already printing that information from the shadercodelibrary to verbose
- Moved most FPakReadRequest messages to VeryVerbose
- Moved PrimaryIndexSize PathHashIndexSize and FullDirectoryIndeSize to Verbose
- Moved OnPakFileMounted2Time to Verbose

#rb Matt.Peters, PJ.Kack
#jira none
#preflight 61f00f308c16f837224ada89

#ROBOMERGE-AUTHOR: sebastian.thomeczek
#ROBOMERGE-SOURCE: CL 18722494 in //UE5/Release-5.0/... via CL 18722496 via CL 18722552
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18722570 by sebastian thomeczek in ue5-main branch]
2022-01-25 10:08:12 -05:00
Charles deRousiers
90e7ad66a9 Add a IsStrataEnable function per module where it is used.
#rb none
#jira none
#fyi sebastien.hillaire
#preflight 61eebce65e0414e6ec1e40cb

[CL 18708521 by Charles deRousiers in ue5-main branch]
2022-01-24 10:02:04 -05:00
arciel rekman
9a7c807094 Make IoStore-based shader library the default everywhere.
- IoStore-based code archive has significant advantages over the file-based one as it implements shader group compression.
- Also fixed a PC/desktop-specific issue of multiple opens of the library.

#rb CM.Nordin, [at]Ben.Ingram, James.Doverspike
[REVIEW] [at]CarlMagnus.Nordin, [at]Ben.Ingam

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18691837 via CL 18691933 via CL 18692000 via CL 18692479 via CL 18692746 via CL 18692912
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18693178 by arciel rekman in ue5-main branch]
2022-01-21 14:14:42 -05:00
graham wihlidal
4c6818abee Fixed bug in FRenderBounds& operator += (const FVector3f&)
#rb zak.middleton
#preflight skip

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 18686720 in //UE5/Release-5.0/... via CL 18686738 via CL 18686747
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18686751 by graham wihlidal in ue5-main branch]
2022-01-21 01:03:24 -05:00
zach bethel
516e26c7e3 Fix for assert when async compute pass creates a transient resource. The resource lifetime was being properly extended to the graphics fork pass, but the graphics fork pass was also within a merged render pass, and the resource lifetime was not properly extended to the start of the render pass. This is important because resource transitions cannot occur within a render pass. This fix adjusts async compute resource lifetimes to begin and end on render pass boundaries of the fork / join graphics pass.
#jira UE-139261
#rb ben.woodhouse
#preflight none

#ROBOMERGE-OWNER: zach.bethel
#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18678963 via CL 18678972 via CL 18680925 via CL 18681076 via CL 18681103
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18681506 by zach bethel in ue5-main branch]
2022-01-20 16:30:26 -05:00
thomas ross
6049a90da8 Adding delegate that is called whenever FlushRenderingCommands is called.
Utilize new delegate to unlock AcquireCriticalSection in PreLoadScreenManager to prevent softlocks whenever FlushRenderingCommands is called during an EarlyStartup PreLoadScreen.
Remove previous hack in PreLoadScreenManager to unlock AcquireCriticalSectoin during fontcache flushes, as this was just to prevent the ensuing FlushRenderingCommands called by the font cache flush from soft locking and is now not needed.
#rb none
#tests Test/Shipping Client

#ROBOMERGE-AUTHOR: thomas.ross
#ROBOMERGE-SOURCE: CL 18671847 via CL 18671850 via CL 18671851 via CL 18671854 via CL 18671857 via CL 18671961 via CL 18671966 via CL 18671967
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v901-18665521)

[CL 18671974 by thomas ross in ue5-main branch]
2022-01-20 01:22:51 -05:00
arciel rekman
89d1b1ca68 Fix crash on packaging (cannot use per-platform CVar in UnrealPak) (UE-139676).
#rb none
#jira UE-139676
#preflight none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18671686 in //UE5/Release-5.0/... via CL 18671693 via CL 18671713
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v901-18665521)

[CL 18671722 by arciel rekman in ue5-main branch]
2022-01-19 23:51:00 -05:00
jason hoerner
ee8581d967 DisplayCluster: crash in GPU profiler when toggling views. Need to clear description string buffer offsets when reusing GPU profiler events, since constructor doesn't get called again.
#rnx
#rb alejandro.arango
#jira UE-139319
#preflight 61e88d27413325328f059ce8
#preflight 61e88d27413325328f059ce8

#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 18667135 in //UE5/Release-5.0/... via CL 18667150 via CL 18668160
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v901-18665521)

[CL 18668322 by jason hoerner in ue5-main branch]
2022-01-19 18:27:45 -05:00
arciel rekman
71c0fe40e8 Compress shaders as groups for cooked games.
- Saves disk size and runtime memory on all platforms that use IoStore-based shader archive (on some - significantly).
- Decompression time is small and seems to get lost in noise given how rarely shaders are actually created.
- Also changed IoStore-based archive to allocate preload entries on demand, and disabled preloading singular shaders (used by the PSO cache) as the API needs more work.

#rb CM.Nordin, Serge.Bernier, Ben.Ingram
[REVIEW] [at]CarlMagnus.Nordin, [at]Serge.Bernier, [at]Ben.Ingram

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18657587 via CL 18657664 via CL 18657670 via CL 18662749 via CL 18662792 via CL 18662871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18662941 by arciel rekman in ue5-main branch]
2022-01-19 14:35:49 -05:00
zach bethel
14085dec09 RDG now reuses tracked state for external pooled textures and buffers. Added a variant of RegisterExternal{Texture, Buffer} that allows the user to specify the actual state if transitioned outside of RDG.
#preflight 61e84c67276892ce107685a0
#rb kenzo.terelst

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18662047 in //UE5/Release-5.0/... via CL 18662058 via CL 18662082
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18662103 by zach bethel in ue5-main branch]
2022-01-19 14:08:44 -05:00
arciel rekman
0c74b967c3 Exclude editor-only shaders from games that don't support a cooked editor.
#rb Josh.Adams, Jason.Nadro
[REVIEW] [at]Josh.Adams, [at]Jason.Nadro
#jira none
#preflight none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18647895 in //UE5/Release-5.0/... via CL 18649305 via CL 18649672
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18649956 by arciel rekman in ue5-main branch]
2022-01-18 17:45:43 -05:00
zach bethel
2f790c0cc8 Removed r.RenderTargetPool.Events visualizer. It has been replaced by RDG insights.
#rb none
#preflight 61e6f8bb837b79f7cced82ee

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18642485 in //UE5/Release-5.0/... via CL 18644124 via CL 18644421
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18644664 by zach bethel in ue5-main branch]
2022-01-18 14:18:07 -05:00
guillaume abadie
aac5f3f872 Dumps both GPU dumper viewer's .sh and .bat so a dump can be opened either on max, linux or windows regardless of the platform it was dumped from
#rb trivial
#jira UE-135665
[FYI] juan.canada, brandon.schaefer, will.damon, michael.sartain
#preflight trivial

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 18641994 in //UE5/Release-5.0/... via CL 18642015 via CL 18642037
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18642049 by guillaume abadie in ue5-main branch]
2022-01-18 12:29:27 -05:00
axel riffard
92a7004918 Harmonize Metal version to use in iOS / Mac
#jira UE-135971
#rb jack.porter
[FYI] will.damon, carl.lloyd
#preflight 61e51ef2a2616066f675dd5e

#ROBOMERGE-OWNER: axel.riffard
#ROBOMERGE-AUTHOR: axel.riffard
#ROBOMERGE-SOURCE: CL 18631139 in //UE5/Release-5.0/...
#ROBOMERGE-BOT: UE5 (Release-5.0 -> Release-Engine-Staging) (v899-18417669)
#ROBOMERGE-CONFLICT from-shelf
#p4v-cherrypick 18631594
#preflight 61e643cb1f30b67a22f3febd

[CL 18636647 by axel riffard in ue5-main branch]
2022-01-17 23:50:00 -05:00
michael sartain
f330699c77 Add DumpGPU viewer script for Linux + Mac
Tested by:

 a) Running Engine/Binaries/Linux/UnrealEditor Samples/Games/ShooterGame/ShooterGame.uproject
 b) Playing game in editor
 c) Running DumpGPU command in console
 d) Folder pops up populated with DumpGPU html files and data plus OpenGPUDumpViewer.sh
 e) Double click on OpenGPUDumpViewer.sh and GPU Viewer opens in chrome and appears to work

Also tested script on Mac by copying entire folder to Mac and executing OpenGPUDumpViewer.sh

TODO:
  Better error messages when Chrome browser isn't installed

We appear to need the --allow-file-access-from-files chrome option and not sure how to get that functionality on other browsers via command line

#jira UE-135665
[at]Brandon.Schaefer, [at]Will.Damon
[FYI] Robert.Seiver
#preflight trivial

#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18626412 in //UE5/Release-5.0/... via CL 18626428 via CL 18626440
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18626445 by michael sartain in ue5-main branch]
2022-01-14 21:20:42 -05:00
zach bethel
8c6ea80834 Relaxed validation on transient resource pool shutdown due to non-deterministic static initialization order.
#preflight 61e1d2de00246899a94c26c5
#jira UE-138871

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18623506 in //UE5/Release-5.0/... via CL 18623528 via CL 18623544
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18623564 by zach bethel in ue5-main branch]
2022-01-14 16:28:58 -05:00
zach bethel
46dc28d1bd Fix for loop variable being copied warning.
#jira UE-138723
#rb trivial
#preflight trivial

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18621743 in //UE5/Release-5.0/... via CL 18621768 via CL 18621809
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18621834 by zach bethel in ue5-main branch]
2022-01-14 14:33:23 -05:00
zach bethel
0143cb41fa Deprecated defunct legacy transient resource API and removed vestiges.
#preflight 61e0a87c250b9537f7837e74
#rb christopher.waters

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18607884 in //UE5/Release-5.0/... via CL 18607913 via CL 18607948
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18607982 by zach bethel in ue5-main branch]
2022-01-13 17:56:22 -05:00
jonathan bard
79f32ed47c Misc render-related changes:
* Added single-callback version of CreateStructuredBuffer to automatically infer element size, total size, element count and data pointer (e.g. CreateStructuredBuffer(GraphBuilder, TEXT("MyBuffer"), [&]() -> auto& { return BufferSource; });, where BufferSource is a TArray)
* Added support for uint2 shader parameters
* Added ForceTracking flag to ERDGBufferFlags/ERDGTextureFlags : force the RDG to track a resource even if it can be considered as readonly (no UAV, no RTV, etc.) This allows the graph to copy from and to external textures, and handling the corresponding transitions, for example.

#rb zach.bethel, sebastien.lussier
#tests editor
#preflight 61d8bc681f62d3ad4d728095

#ROBOMERGE-OWNER: jonathan.bard
#ROBOMERGE-AUTHOR: jonathan.bard
#ROBOMERGE-SOURCE: CL 18595021 via CL 18595031 via CL 18595035 via CL 18595668 via CL 18595682 via CL 18595700
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18596726 by jonathan bard in ue5-main branch]
2022-01-13 10:11:22 -05:00
aleksander netzel
ca5533d4dd Use TRHIResourceUpdateBatcher to load & unload FRHIRaytracingGeometry during MeshStreaming.
* FRayTracingGeometry can now be initialized in one of 3 states: Rendering, StreamingDestination and StreamingSource:
- Rendering: buffer and shader parameters are created.
- StreamingSource: only buffer is created
- StreamingDestination: nothing is created.

* Life of a streamed FRayTracingGeometry looks as follows:
1. Created with StreamingDestination
2. TStaticMeshStreamIn_IO::DoCreateBuffers creates a temporary FRayTracingGeometry (StreamingSource type) from CPU data.
3. FStaticMeshStreamIn::DoFinishUpdate: schedules a copy of RayTracingGeometryRHI on RHI thread (InitRHIForStreaming) and enqueues a render command to update hit group parameters and schedules a build if needed (RequestBuildIfNeeded).
4. Temporary FRayTracingGeometry is released.
5. When no longer needed the original FRayTracingGeometry is released (ReleaseRHIForStreaming)

* Added code to SetInitializer and Swap FRHIRayTracingGeometry that is needed for RHITransferRayTracingGeometryUnderlyingResource.

#rb Kenzo.Terelst, Luke.Thatcher, Yuriy.Odonnell
#jira UE-132838
#preflight 61df5a6e9c1e5c90b618bbec

#ROBOMERGE-AUTHOR: aleksander.netzel
#ROBOMERGE-SOURCE: CL 18595099 in //UE5/Release-5.0/... via CL 18595107 via CL 18595110
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18596644 by aleksander netzel in ue5-main branch]
2022-01-13 10:06:50 -05:00
jason hoerner
a343f80411 UE5_RELEASE: Compile error fix for CL 18591295.
#preflight trivial

#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 18592968 in //UE5/Release-5.0/... via CL 18592969 via CL 18592980
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18592998 by jason hoerner in ue5-main branch]
2022-01-12 20:46:30 -05:00
graham wihlidal
6f4cd03cf1 Added hook to skip mesh draw commands from all mesh pass processor types if certain visualization/debug conditions are met. Initially, this is used to implement a mode to only render non-Nanite mesh batches that reference Nanite coarse mesh static mesh assets (which is incorrect, as the proxy will be rendered directly instead of the original source mesh). This mode is off by default, and enabled in non-shipping builds with r.Nanite.IsolateInvalidCoarseMesh 1
#rb brian.karis, andrew.lauritzen
[FYI] ola.olsson
#preflight 61df710b484d866ec0243945

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 18592541 in //UE5/Release-5.0/... via CL 18592572 via CL 18592580
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18592588 by graham wihlidal in ue5-main branch]
2022-01-12 19:46:57 -05:00
christopher waters
edc2ecf951 Fixing deadlocks on lower core count PCs running DX12.
#jira UE-138111
#rb arciel.rekman

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18591564 via CL 18591779 via CL 18591794 via CL 18592536 via CL 18592562 via CL 18592578
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18592583 by christopher waters in ue5-main branch]
2022-01-12 19:46:40 -05:00