Commit Graph

94 Commits

Author SHA1 Message Date
Ben Ingram
66944fbb51 Fix merge of shader changes from Release-4.25 combined with optimizations from FN
#rb none

[CL 12960787 by Ben Ingram in Main branch]
2020-04-21 15:57:02 -04:00
ben ingram
45dc6407f3 #jira UE-92268
Allow FShader::Finalize to be called multiple times, ensure index doesn't change
#rb none

#ROBOMERGE-SOURCE: CL 12958102 in //UE4/Release-4.25/... via CL 12958109 via CL 12959154
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12959964 by ben ingram in Main branch]
2020-04-21 15:23:53 -04:00
ben ingram
68fbb75271 #jira UE-92139
Fix issues causing material DDC values to be non-determinisic
- Shader code within resources sorted by hash
- Debug source code values sorted by type
Also add mechanism to serialize any MemoryLayout described type to string
- Makes it easier to inspect material data to find sources of non-determinism
#rb none

#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 12944988 in //UE4/Release-4.25/... via CL 12944998 via CL 12957822
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12957827 by ben ingram in Main branch]
2020-04-21 13:46:17 -04:00
ben ingram
d9d0535ddc Add freezable hash table, use to accelerate lookup of shaders within ShaderMap
- Shaders are searched by TypeName and PermutationId, so move those fields out of FShader and into separate arrays inside ShaderMap, to reduce cache misses while finding shaders
#rb none

#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 12646854 via CL 12646966 via CL 12646981
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12646995 by ben ingram in Main branch]
2020-04-06 21:12:18 -04:00
ben ingram
eb819d2d9f Cache hashed filename on FShaderType, avoid semi-expensive TCHAR*->FName->FHashedName conversion when looking up global shaders
#rb none

#ROBOMERGE-SOURCE: CL 12579879 via CL 12579892 via CL 12579904
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12579927 by ben ingram in Main branch]
2020-04-02 18:01:08 -04:00
zabir hoque
c0d645c05f Expose AllowShaderWorkers to cvars as well.
#rb: Rolando.Caloca
#jira: none

#ROBOMERGE-SOURCE: CL 12491544 in //UE4/Release-4.25/... via CL 12491551 via CL 12491558
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12491562 by zabir hoque in Main branch]
2020-03-30 18:23:49 -04:00
Jules Blok
d7efe1e9f1 Consolidate single-pass stereo options under a Multi-View option
Fixes invalid combinations of single-pass techniques resulting in shader compiling errors

#jira UE-89646
#rb Steve.Smith

#ROBOMERGE-OWNER: Jules.Blok
#ROBOMERGE-AUTHOR: jules.blok
#ROBOMERGE-SOURCE: CL 12384522 in //UE4/Release-4.25/... via CL 12384524
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v671-12333473)

[CL 12385996 by Jules Blok in Main branch]
2020-03-23 23:06:35 -04:00
john hable
0eaa4fa2e4 Forcing pre-exposure to always be enabled in the shaders.
#jira ue-90726
#rb uriel.doyon

#ROBOMERGE-SOURCE: CL 12232768 in //UE4/Release-4.25/... via CL 12232770
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)

[CL 12234779 by john hable in Main branch]
2020-03-17 15:11:24 -04:00
juan canada
7c7ce0d2a1 Added options to turn off compilation of ray tracing material closest or any-hit shaders. This may be useful for titles that use custom shaders or don't require full material evaluation (i.e. only using ray tracing for shadows or AO).
New CVars:
- r.RayTracing.CompileMaterialCHS (default 1)
- r.RayTracing.CompileMaterialAHS (default 1)

The value is read-only and must match between cook-time and run-time.

#rb Krzysztof.Narkowicz
[FYI] Yuriy.ODonnell
#jira UE-90463

#ushell-cherrypick of 11541300 by Yuriy.ODonnell

#ROBOMERGE-SOURCE: CL 12202891 in //UE4/Release-4.25/... via CL 12202949
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v662-12191386)

[CL 12203392 by juan canada in Main branch]
2020-03-16 11:37:25 -04:00
wei liu
036bc781c6 Fix a bug that we don't recompile global shader after turn on/off MobileHDR
#jira UE-89822

#rb jack.porter, dmitriy.dyomin, mi.wang


#ROBOMERGE-SOURCE: CL 11850481 in //UE4/Release-4.25/... via CL 11850482
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)

[CL 11850703 by wei liu in Main branch]
2020-03-02 21:52:14 -05:00
Rolando Caloca
5b82f15def Copying //UE4/Dev-RenderPlat-Staging@11388153 to //UE4/Main
#rb none
#rnx

[CL 11388545 by Rolando Caloca in Main branch]
2020-02-12 13:27:19 -05:00
jeremy moore
a9b2e229b3 #jira UE-88293
Fix potential null dereference
#rnx


#ROBOMERGE-SOURCE: CL 11292515 via CL 11292519 via CL 11292521 via CL 11292524
#ROBOMERGE-BOT: (v647-11244347)

[CL 11293015 by jeremy moore in Main branch]
2020-02-07 13:08:18 -05:00
jeremy moore
60e9de7937 Fixed shader DDC key to use build target platform instead of editor platform to get virtual texture support value.
Rearranged DDC key composition since we need to flush out incorrectly keyed shaders in the cache.
[FYI] mickael.gilabert


#ROBOMERGE-SOURCE: CL 11290017 via CL 11290018 via CL 11290019
#ROBOMERGE-BOT: (v647-11244347)

[CL 11290020 by jeremy moore in Main branch]
2020-02-06 23:25:12 -05:00
Josh Adams
aa9705149b Copying Private-LoadTimes-4.24 stream to Main. Biggest changes are in Materials/Shader memory freezing.
#rb none

[CL 11282608 by Josh Adams in Main branch]
2020-02-06 13:13:41 -05:00
florin pascu
954a19f055 MaskedOnly Prepass Mobile Off by default. Enable with r.Mobile.EarlyZPassOnlyMaterialMasking=1. Requires shaders cooking!
#rb  Dmitriy.Dyomin, Jack.Porter
#jira UE-85333


#ROBOMERGE-SOURCE: CL 11278935 via CL 11278936 via CL 11278937
#ROBOMERGE-BOT: (v0-11244347)

[CL 11278938 by florin pascu in Main branch]
2020-02-06 05:41:00 -05:00
Rolando Caloca
bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00
Rolando Caloca
db7cb13cd5 Merging //UE4/Main@11108668 to Dev-RenderPlat-Staging
#rb none
#rnx

[CL 11109810 by Rolando Caloca in Dev-RenderPlat-Staging branch]
2020-01-24 17:26:14 -05:00
Juan Canada
f396f56a0b Merging //UE4/Dev-Main@11042002 to Dev-RenderPlat-Staging(//UE4/Dev-Rendering)
#rnx
#rb none

[CL 11075443 by Juan Canada in Dev-RenderPlat-Staging branch]
2020-01-21 14:54:20 -05:00
dmitriy dyomin
32bb8acd0b Support virtual textures on mobile platforms. Requires Vulkan, OpenGL ES3.1 + SRV, iPhone8 and up.
Disabled by default, set r.Mobile.VirtualTextures=1 to enable
known issues: RVT compression is not implementted, Android OpenGL will have R and G channels swapped for uncompressed streaming VT, no sRGB support
#jira UE-79955
#rb jeremy.moore


#ROBOMERGE-SOURCE: CL 11070636 via CL 11070637
#ROBOMERGE-BOT: (v637-11041722)

[CL 11070638 by dmitriy dyomin in Main branch]
2020-01-20 22:16:23 -05:00
jeremy moore
842e9eb766 * Remove duplicate virtual texture information from shader key
#ROBOMERGE-SOURCE: CL 10954783 via CL 10971492 via CL 10971602
#ROBOMERGE-BOT: (v632-10940481)

[CL 10971710 by jeremy moore in Main branch]
2020-01-13 19:22:49 -05:00
Juan Canada
2ecf4f9708 Merging //UE4/Dev-Main@10877709 to Dev-RenderPlat-Staging(//UE4/Dev-Rendering)
#rnx
#rb none

[CL 10895568 by Juan Canada in Dev-RenderPlat-Staging branch]
2020-01-07 13:45:01 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Rolando Caloca
c2d62c0ecc Copying //UE4/Dev-Rendering@10763356 to //UE4/Dev-RenderPlat-Staging
#rb none
#rnx

[CL 10769097 by Rolando Caloca in Dev-RenderPlat-Staging branch]
2019-12-17 14:14:23 -05:00
arciel rekman
324add1e80 Support shader pipelines in the shader code library's stable map.
- Added shader pipeline hash as a key attribute.
- Added shaders from shader pipelines (they can have different code if RHI removes unused interpolators between the stages, like D3D does).

#rb Dmitriy.Dyomin, Richard.Wallis


#ROBOMERGE-SOURCE: CL 9959336 via CL 9959339 via CL 9959342
#ROBOMERGE-BOT: (v558-9892490)

[CL 9959347 by arciel rekman in Main branch]
2019-11-01 12:56:00 -04:00
Florin Pascu
d6981a7801 Texture buffer-> 2D Texture for GPU Scene Mobile device
This was done because of MALI GPU limitation of 64kb texture buffer

- Changed default Precision of compute shaders to highp
- Added Texture Buffer GPU Support mobile
- Texture path controlled by GPUSceneUseTexture2D(requires recompile of shaders)

#rb Dmitriy.Dyomin, zach.bethel
#jira UE-79954


#ROBOMERGE-OWNER: Florin.Pascu
#ROBOMERGE-AUTHOR: florin.pascu
#ROBOMERGE-SOURCE: CL 9742164 via CL 9742165
#ROBOMERGE-BOT: (v542-9736015)

[CL 9745770 by Florin Pascu in Main branch]
2019-10-22 11:07:33 -04:00