Commit Graph

39 Commits

Author SHA1 Message Date
Florin Pascu
f64fc575d2 Re-submiting with Mac fixes
Changed ShaderArchive, GlobalShaderCache, ShaderDebugInfo and Autogen to use ShaderPlatformName and not ShaderFormat when naming their output files.
#rb Jack.Porter, Chris.Waters, Mihnea.Balta, Jason.Nadro
#jira UE-120561
#preflight 62c31f6fc9410537282296c6

[CL 20937870 by Florin Pascu in ue5-main branch]
2022-07-04 19:06:33 -04:00
Florin Pascu
09cb19fcfd Backout 20871665 to fix Mac cook
#rb none
#jira none
#preflight 62be0c68d94b57687c3ff309

[CL 20904999 by Florin Pascu in ue5-main branch]
2022-06-30 17:41:55 -04:00
Florin Pascu
1844e8e514 Changed ShaderArchive, GlobalShaderCache, ShaderDebugInfo and Autogen to use ShaderPlatformName and not ShaderFormat when naming their output files.
#rb Jack.Porter, Chris.Waters, Mihnea.Balta, Jason.Nadro
#jira UE-120561
#preflight 62bbf93ae353c20ac2361d94

[CL 20871665 by Florin Pascu in ue5-main branch]
2022-06-29 04:19:06 -04:00
arciel rekman
2c4fba02af Fix hitching while precompiling PSO cache.
- Add a new API to release preloaded shader to provide a way to manage preloaded data (which was previously statically allocated).

#rb James.Doverspike, Richard.Wallis
[REVIEW] [at]Allan.Bentham, [at]Richard.Wallis
#preflight 625e11c4db15ac92db7ee858

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 19832275 via CL 19833640 via CL 19837454 via CL 19854946 via CL 19855339
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19856713 by arciel rekman in ue5-main branch]
2022-04-21 17:47:12 -04:00
arciel rekman
47184fc696 Harden preload entry management in shader library (FORT-446306).
#rb James.Doverspike, Chris.Genova
[REVIEW] [at]James.Doverspike, [at]Chris.Genova
#preflight 6238ddacb3653cf6afccd690

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 19458861 via CL 19459145 via CL 19459355 via CL 19459815 via CL 19463246 via CL 19475214 via CL 19475273
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v935-19464907)

[CL 19475936 by arciel rekman in ue5-main branch]
2022-03-22 23:24:15 -04:00
carlmagnus nordin
73b0e31128 Fixed double delete when destroying shader code libraries
#rnx
#rb arciel.rekman

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 18976878 via CL 18976901 via CL 18976906 via CL 18992591 via CL 18992966
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18997224 by carlmagnus nordin in ue5-main branch]
2022-02-15 11:30:47 -05:00
arciel rekman
35ecf94fcb Do not attempt to split 1 shader groups even if they are larger than the threshold (UE-141903).
#rb PJ.Kack
#jira UE-141903
[REVIEW] [at]PJ.Kack
#preflight 6203d3c30927956f66b87cc2

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18917857 in //UE5/Release-5.0/... via CL 18926686 via CL 18928199
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18928444 by arciel rekman in ue5-main branch]
2022-02-09 19:03:46 -05:00
pj kack
6a68bde0d8 Fix non-deterministic sorting in iostore shader group compression logic.
Replace the map with an array for efficiency.

#jira UE-141110
#rb arciel.rekman
#rnx
#preflight 61fc374ca540d6e61bba7104

#ROBOMERGE-AUTHOR: pj.kack
#ROBOMERGE-SOURCE: CL 18886818 in //UE5/Release-5.0/... via CL 18886830 via CL 18887180
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18887383 by pj kack in ue5-main branch]
2022-02-07 12:30:43 -05:00
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
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
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
arciel rekman
f1e9a0ff06 Fix non-unity CIS (ShaderCodeArchive.cpp)
#rb none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18531363 via CL 18531384 via CL 18531388 via CL 18531727 via CL 18531731
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18531736 by arciel rekman in ue5-release-engine-test branch]
2022-01-06 10:55:44 -05:00
arciel rekman
0b17540895 Add visualization of the runtime shader usage.
- Produces an image in Saved/Profiling with the preloaded and created shaders, helping to understand preloading / creation patterns.
- Only works on desktop platforms in Development. Disabled by default (set r.ShaderCodeLibrary.VisualizeShaderUsage=1 in ini to enable).

#rb Ben.Ingram
[REVIEW] [at]Ben.Ingram

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18528155 via CL 18528185 via CL 18528187 via CL 18528288 via CL 18528302
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18528308 by arciel rekman in ue5-release-engine-test branch]
2022-01-05 22:36:59 -05:00
arciel rekman
2a499437fe Change shader compression method to Oodle Selkie6 by default (UE-136845).
- Provides about 8% runtime memory savings (in local tests).
- Also, adds more compression types for shaders.
- Impact on the shader compilation (in SCWs) seems to be negligible in local tests.

#rb Devin.Doucette, Charles.Bloom
[REVIEW] [at]Devin.Doucette, [at]Charles.Bloom, [at]Jason.Nadro
#jira UE-136845

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18502862 via CL 18503105 via CL 18503112 via CL 18505939 via CL 18505950
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18505961 by arciel rekman in ue5-release-engine-test branch]
2022-01-04 00:58:30 -05:00
yuriy odonnell
7f82e90db3 Add separate RHI capability properties for full ray tracing shaders and inline ray tracing. While most RHIs may support both features, some may only support one.
#preflight 619ce604f934c1a291f81cfe
#rb aleksander.netzel

#ROBOMERGE-AUTHOR: yuriy.odonnell
#ROBOMERGE-SOURCE: CL 18270186 in //UE5/Release-5.0/... via CL 18270194
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18270205 by yuriy odonnell in ue5-release-engine-test branch]
2021-11-23 10:25:31 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
aurel cordonnier
69fe095547 Merge from Release-Engine-Staging @ 17636544 to Release-Engine-Test
This represents UE4/Main @17638339 and Dev-PerfTest @17636504

[CL 17638842 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-27 19:54:25 -04:00
arciel rekman
63977655d7 Make sure shaders are only created on one thread in DX11 (UE-125050).
(cherry pick of 17507631 including later followup fixes in 17526511 and 17542272)

- Disable RDG parallel execution on D3D11.
- Precreate ClearReplacement shaders
- Also add a check to catch other possible issues before it's too late.

#rb Chris.Waters (in Dev-EMT)
#jira UE-125050

#ushell-cherrypick of 17507631 by Arciel.Rekman

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 17586312 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17586354 by arciel rekman in ue5-release-engine-test branch]
2021-09-21 15:10:29 -04:00
carlmagnus nordin
a627591ffa IoStore: Changes to allow IoStore to run as part of UnrealPak instead of as a cmdlet
#rb per.larsson
#rnx

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17517167 via CL 17517189 via CL 17517191 via CL 17519703
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17519714 by carlmagnus nordin in ue5-release-engine-test branch]
2021-09-15 10:39:23 -04:00
eric mcdaniel
4d98aaa4fe Fix for potential deadlock in shader preloads
FPreloadShaderTask takes the ShaderPreloadLock in FShaderCodeArchive::OnShaderPreloadFinished() and then issues an async read.  Another task can be picked up by the thread while waiting on that read.  If that new task is also a FPreloadShaderTask it will try to aquire the ShaderPreloadLock again and deadlock.

Introduce an EnsureReadNonBlocking method to IMemoryReadStream which can be called outside the lock to ensure the data is ready.  We can then lock and copy out the data without incuring a wait and the potential for another FPreloadShaderTask being run while we hold the lock.

#rb Ben.Ingram, Michal.Valient

#ROBOMERGE-SOURCE: CL 16917416 via CL 16924675
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16925027 by eric mcdaniel in ue5-release-engine-test branch]
2021-07-22 11:57:21 -04:00
carlmagnus nordin
0293546296 Added support for storing shaders in iostore.
Opt-In with core setting AllowShadersInIoStore
#review-16450322

#ROBOMERGE-OWNER: carlmagnus.nordin
#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 16622428 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v830-16605563)
#ROBOMERGE-CONFLICT from-shelf

[CL 16622474 by carlmagnus nordin in ue5-release-engine-test branch]
2021-06-10 09:36:47 -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
arciel rekman
93e19dd06e Fix crashes when dumping shaderlib debug info (UE-106302).
#rb none
#jira UE-106302
#rnx

#ROBOMERGE-SOURCE: CL 15890197 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15890468 by arciel rekman in ue5-main branch]
2021-04-01 12:16:46 -04:00