Commit Graph

586 Commits

Author SHA1 Message Date
Ben Ingram
7072c6557d Run two passes of PrepareExpression, first pass to determine types, second pass to flag expressions that are used.
This way we can skip flagging constant/zero expressions (which we don't know about during the first pass)
#rb none
#jira none
#preflight 6227cb21671c913c052ca22f

[CL 19311693 by Ben Ingram in ue5-main branch]
2022-03-08 16:47:52 -05:00
Ben Ingram
a6d3274332 Fix material editor preview thumbnails when using new HLSL translator
#jira none
#rb none
#preflight 621ff47231454c90cc0e53de

[CL 19232396 by Ben Ingram in ue5-main branch]
2022-03-02 18:09:26 -05:00
Ben Ingram
b6f8dbd89b Use HLSLTree to generate cached data when using new HLSL translator
This allows cached data to be based on expressions that are active/connected
#rb none
#jira none
#preflight 621fce7831454c90cc079dd2

[CL 19227403 by Ben Ingram in ue5-main branch]
2022-03-02 15:20:48 -05:00
marc audy
cff01aa9fa Added support for native FProperty setters and getters.
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.

#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19147839 by marc audy in ue5-main branch]
2022-02-25 10:39:39 -05:00
Jason Nadro
dcd55e3f15 Fix Game Thread and Render Thread access issues when performing shader compilation using FMaterial.
- SubmitCompileJobs was assumed to be render thread only.  Make this explicit in the function name and add a render thread check.
- Add SubmitCompileJobs_GameThread to perform shader compilation submitted from the Game Thread safe.
- Keep a ref to a GameThreadPendingCompilerEnvironment because the one on the GameThreadShaderMap goes away after we clone.
- Add render thread check to GetRuntimeVirtualTextureOutputAttibuteMask_RenderThread
- Move simple enum types from ShaderCompiler.h to ShaderCompilerCore.h so we can access EShaderCompileJobPriority in MaterialShared.h
- Fixup incorrect usage SubmitCompileJobs that was submitted from the Game Thread using the Render Thread maps.

#rb Ben.Ingram
#jira none
#preflight 6216879fdb60b6b592f1d97f

[CL 19098715 by Jason Nadro in ue5-main branch]
2022-02-23 14:59:45 -05:00
Sebastien Hillaire
7c6830b98e Strata - new blending mode.
- works for starta and legacy conversion material
- legacy converted to strata setup the strata blending mode
- strata material also affect legacy blending mode because it is used in multiple places in the engine.
- works for lit and unlit legacy material
- to be fixed:
    - lit with premultiplied alpha
    - materials with multiple shading models

#preflight https://horde.devtools.epicgames.com/job/6214893c3577e44741abf99f
#rb charles.derousiers

[CL 19069633 by Sebastien Hillaire in ue5-main branch]
2022-02-22 02:26:20 -05:00
ben ingram
501db0c0d2 Use TWeakObjectPtr<> on MI layer parameter editor code, so we can check for live objects during various Slate callbacks
Otherwise we can hit callbacks before editor has a chance to refresh, and crash on stale pointer access
#jira UE-140971
#preflight 6202eb2a7e40979d33ba9fd7
#rb lauren.barnes

#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 18913293 in //UE5/Release-5.0/... via CL 18919947 via CL 18920839
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18921506 by ben ingram in ue5-main branch]
2022-02-09 13:24:56 -05:00
Robb Surridge
65a3c1236d Move IntroTutorials to a plugin. Part 1: move code module and clean up references.
#jira 141830
#preflight 6202f3e4bd4f846436f1dfc6
#rb lauren.barnes

[CL 18920903 by Robb Surridge in ue5-main branch]
2022-02-09 13:00:06 -05:00
robert srinivasiah
3737a45475 Hololens: Dedicated Shader Platform
We can't share DDPI infrastructure with PC D3D ES3.1 because of conflicts from sharing. We need a separate shader platform.
For now, we'll just 'intrusively' plumb the new Hololens shader platform. In the future, we want to move as much code out into
Hololens-specific platform code to reduce conflict with shared paths that don't need to know about Hololens.

#rb steve.smith, christopher.waters
#jira UE-133375
#preflight 61f9ca302251c6fb596e583e

#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 18818524 in //UE5/Release-5.0/... via CL 18818546 via CL 18822881
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824735 by robert srinivasiah in ue5-main branch]
2022-02-02 08:00:15 -05:00
JeanMichel Dignard
8bbf51e8dd Interchange
- Made sure we don't call MarkPackageDirty from non game threads as its not threadsafe.
- Update the texture sampler sampling types during the factory PreImportPreCompleted callback so that we have the correct sampling type for textures that are being upgraded to virtual.
- Fixed some issues with material creation where we had some early returns in functions that shouldn't.
#preflight 61f4653ce52a8a4a91ce060d

[CL 18779420 by JeanMichel Dignard in ue5-main branch]
2022-01-28 17:11:02 -05:00
jason nadro
9be5e7c23b Ensure that all compilation has been submitted when querying for a material's statistics.
- This is important when running with "compile what you use" ODSC in the editor.

#rb Arciel.Rekman
#preflight 61f1a50cf8088a3d2991c8b1

#ROBOMERGE-AUTHOR: jason.nadro
#ROBOMERGE-SOURCE: CL 18752861 in //UE5/Release-5.0/... via CL 18752866 via CL 18756837
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18757118 by jason nadro in ue5-main branch]
2022-01-27 14:06:46 -05:00
ben ingram
f163313516 Fix uninitialized pointers in material editor, that can happen if base material is reloaded while MI is open
#rb none
#jira UE-134178
#preflight none

#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 18741994 in //UE5/Release-5.0/... via CL 18742306 via CL 18742892
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18743244 by ben ingram in ue5-main branch]
2022-01-26 15:38:28 -05:00
ben ingram
f9b20e4ac9 Don't crash if layer function outputs haven't been initialized yet
#rb none
#preflight none
#jira UE-134987

#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 18741111 in //UE5/Release-5.0/... via CL 18741603 via CL 18742855
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18743211 by ben ingram in ue5-main branch]
2022-01-26 15:36:33 -05:00
ben ingram
ae36806f9b Fix MaterialFunctionInstance parameter inheritance
#preflight 61e76974b56c33b8ec014f3a
#rb none
#jira none

#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 18659671 in //UE5/Release-5.0/... via CL 18659685 via CL 18659695
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)
#ROBOMERGE-CONFLICT from-shelf

[CL 18659767 by ben ingram in ue5-main branch]
2022-01-19 12:15:39 -05:00
dmitriy dyomin
de43655903 Fixed: Certain project configurations may result in missing material shader stats for ES31 feature level
Simplified shader name selection for mobile material shader stats
#rb jack.porter

#ROBOMERGE-OWNER: dmitriy.dyomin
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 18632067 via CL 18632071 via CL 18632078 via CL 18632169 via CL 18632171 via CL 18651605 via CL 18651728 via CL 18651852
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18651910 by dmitriy dyomin in ue5-main branch]
2022-01-18 18:45:37 -05:00
Ben Ingram
e6f2147048 Misc fixes for enabling/disabling control flow in material editor
#rb none
#jira none
#preflight none

[CL 18573247 by Ben Ingram in ue5-main branch]
2022-01-11 11:51:35 -05:00
Ben Ingram
ff516caf95 Hide UMaterialFunction UI options for new HLSL generator/control flow, if the global CVARs are disabled
#rb none
#jira none
#preflight none

[CL 18567303 by Ben Ingram in ue5-main branch]
2022-01-10 19:25:13 -05:00
Ben Ingram
6f2cbfee8c New material HLSL translator supports functions using control flow
#preflight 61dcc5b94d377749b662ee15
#jira none
#rb none

[CL 18567176 by Ben Ingram in ue5-main branch]
2022-01-10 19:10:49 -05:00
arciel rekman
8e8967db28 Fix blocking compilation when editing instances of special materials.
- Also added a check to surface a potential memory freezing issue earlier (unrelated).

#rb Ben.Ingram
[at]Ben.Ingram

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18546658 via CL 18546662 via CL 18546682 via CL 18547604 via CL 18547669 via CL 18547737
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18547799 by arciel rekman in ue5-main branch]
2022-01-07 13:03:26 -05:00
arciel rekman
22bdec058c Fix blocking compilation when editing instances of special materials.
- Also added a check to surface a potential memory freezing issue earlier (unrelated).

#rb Ben.Ingram
[at]Ben.Ingram

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18546658 via CL 18546662 via CL 18546682 via CL 18547604 via CL 18547669
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18547737 by arciel rekman in ue5-release-engine-test branch]
2022-01-07 13:01:04 -05:00
arciel rekman
2dd726f0dc Fix CIS (MaterialStats.cpp, deprecated SP removed).
#rb none
#jira none
#preflight none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18485162 in //UE5/Release-5.0/... via CL 18485165 via CL 18485167
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18485191 by arciel rekman in ue5-main branch]
2021-12-17 14:56:38 -05:00
arciel rekman
75f714f374 Fix shaders stats not showing up on Mac (UE-134608).
#jira UE-134608
#rb Will.Damon
#lockdown Cristina.Riveron
[REVIEW] [at]Mitchell.Wilson

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18173938 in //UE4/Release-4.27/... via CL 18458421 via CL 18458609 via CL 18485099 via CL 18485103 via CL 18485112
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18485180 by arciel rekman in ue5-main branch]
2021-12-17 14:56:02 -05:00
arciel rekman
616fdffde0 Fix CIS (MaterialStats.cpp, deprecated SP removed).
#rb none
#jira none
#preflight none

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18485162 in //UE5/Release-5.0/... via CL 18485165
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18485167 by arciel rekman in ue5-release-engine-test branch]
2021-12-17 14:54:41 -05:00
arciel rekman
b65ed306c1 Fix shaders stats not showing up on Mac (UE-134608).
#jira UE-134608
#rb Will.Damon
#lockdown Cristina.Riveron
[REVIEW] [at]Mitchell.Wilson

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18173938 in //UE4/Release-4.27/... via CL 18458421 via CL 18458609 via CL 18485099 via CL 18485103
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18485112 by arciel rekman in ue5-release-engine-test branch]
2021-12-17 14:43:29 -05:00
arciel rekman
bf87e97c21 Improve availability of shader platforms in the mat ed (UE-136509).
#rb none
#jira UE-136509

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18387134 in //UE5/Release-5.0/... via CL 18387149 via CL 18387152
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v896-18170469)

[CL 18387164 by arciel rekman in ue5-main branch]
2021-12-06 15:34:28 -05:00