Commit Graph

12099 Commits

Author SHA1 Message Date
nick darnell
e85b0cd48c AssetDefinition - This is the seed of a long term replacement of IAssetTypeActions. IAssetTypeActions is woefully inadiquit now. It puts a lot of functionality in one place, which wouldn't be a terrible thing, except for the GetActions, and some of the menu stuff being built into this class. We need to make an effort to not have to load every single asset just to open the context menu you have selected, to-wit, a previous CL made it so that summoning the menu no longer *Had* to load the assets, however several remaining issues remained with the Blueprint Utility Actions, and the fact that we don't "KNOW" if we need to call GetActions for an asset. We could introduce a replacement in the class, but that would just get inherited, causing other issues. So instead the parallel UObject based AssetDefinition now exists. In large part it will probably be very similar to the other one, but several things in it probably need to chnage. For now there is a bridging concept in the form of the AssetDefinitionAssetTypeProxy.
Several amounts of effort went into the newer design of UAssetDefinition to make it easier to change over time, more things are structs now for input and output so additional parameters can be added.

AssetDefinition module is an editor module instead of being a developer module.
AssetDefinition does not include a myraid of things it shouldn't such as the blueprint module and UnrealEd.

#jira UE-165574
#preflight 636c0ec4d0174259cca85e37

[CL 23083536 by nick darnell in ue5-main branch]
2022-11-10 13:13:41 -05:00
Devin Doucette
dcf192e97a DDC: Remove any trailing slash from the Jupiter URI
#preflight 636d11ed0f51d9ed4afbf185
#rb Joakim.Lindqvist
#rnx

[CL 23079894 by Devin Doucette in ue5-main branch]
2022-11-10 10:57:37 -05:00
carl lloyd
52be0e8e77 Fixed bug with deferred decals on OpenGL
#rb Laura.Hermanns
#jira UE-168197
#preflight 636cc9cc376a9cd6a8e9fde3

[CL 23073711 by carl lloyd in ue5-main branch]
2022-11-10 05:06:00 -05:00
Helge Mathee
32963f057c RigVM: Centralize use of RigVMExecuteContext
#rb halfdan.ingvarsson
#jira UE-169677
#preflight https://horde.devtools.epicgames.com/job/636cc3b24d3c1d9d92868927

[CL 23073598 by Helge Mathee in ue5-main branch]
2022-11-10 04:36:01 -05:00
bob tellez
635e0d776e [Backout] - CL23068129 and 23069638
[FYI] Nick.Darnell
Original CL Desc
-----------------------------------------------------------------
AssetDefinition - This is the seed of a long term replacement of IAssetTypeActions.  IAssetTypeActions is woefully inadiquit now.  It puts a lot of functionality in one place, which wouldn't be a terrible thing, except for the GetActions, and some of the menu stuff being built into this class.  We need to make an effort to not have to load every single asset just to open the context menu you have selected, to-wit, a previous CL made it so that summoning the menu no longer *Had* to load the assets, however several remaining issues remained with the Blueprint Utility Actions, and the fact that we don't "KNOW" if we need to call GetActions for an asset.  We could introduce a replacement in the class, but that would just get inherited, causing other issues.  So instead the parallel UObject based AssetDefinition now exists.  In large part it will probably be very similar to the other one, but several things in it probably need to chnage.  For now there is a bridging concept in the form of the AssetDefinitionAssetTypeProxy.

Several amounts of effort went into the newer design of UAssetDefinition to make it easier to change over time, more things are structs now for input and output so additional parameters can be added.

AssetDefinition module is an editor module instead of being a developer module.
AssetDefinition does not include a myraid of things it shouldn't such as the blueprint module and UnrealEd.

#jira UE-165574
#preflight 636c0ec4d0174259cca85e37

[CL 23072024 by bob tellez in ue5-main branch]
2022-11-10 01:18:44 -05:00
laura hermanns
58e529b618 Use custom memory allocator for DXC to report better callstack on OOM event.
#rb Yuriy.ODonnell
[FYI] Jason.Nadro, Dan.Elksnitis, Carl.Lloyd
#preflight none
#rnx

[CL 23072013 by laura hermanns in ue5-main branch]
2022-11-10 01:18:07 -05:00
nick darnell
fd6f4a29b1 AssetDefinition - This is the seed of a long term replacement of IAssetTypeActions. IAssetTypeActions is woefully inadiquit now. It puts a lot of functionality in one place, which wouldn't be a terrible thing, except for the GetActions, and some of the menu stuff being built into this class. We need to make an effort to not have to load every single asset just to open the context menu you have selected, to-wit, a previous CL made it so that summoning the menu no longer *Had* to load the assets, however several remaining issues remained with the Blueprint Utility Actions, and the fact that we don't "KNOW" if we need to call GetActions for an asset. We could introduce a replacement in the class, but that would just get inherited, causing other issues. So instead the parallel UObject based AssetDefinition now exists. In large part it will probably be very similar to the other one, but several things in it probably need to chnage. For now there is a bridging concept in the form of the AssetDefinitionAssetTypeProxy.
Several amounts of effort went into the newer design of UAssetDefinition to make it easier to change over time, more things are structs now for input and output so additional parameters can be added.

AssetDefinition module is an editor module instead of being a developer module.
AssetDefinition does not include a myraid of things it shouldn't such as the blueprint module and UnrealEd.

#jira UE-165574
#preflight 636c0ec4d0174259cca85e37
[REVIEW]

[CL 23072002 by nick darnell in ue5-main branch]
2022-11-10 01:17:07 -05:00
eric knapik
62ec32087f #jira:FORT-537062
Compiler fixup from CL: 23064620

[CL 23071989 by eric knapik in ue5-main branch]
2022-11-10 01:16:27 -05:00
patrick laflamme
152468f685 Fixed UnsavedAssetTracker to display the 'Unsaved' count that matches what the engine considers 'to be saved'.
- Fixed cases when working on an /Temp map package, typically an 'Untitled' map.
  - Fixed cases when adding/deleting an actor from the map.

#jira UE-169302 - The Unsaved Assets Tracker counter get out of sync when working on a /Temp OFPA map
#rb Brooke.Hubert
#preflight 636bf8ae843e6ac7942d6dc0

[CL 23071815 by patrick laflamme in ue5-main branch]
2022-11-10 01:08:15 -05:00
jonathan bard
08e482fca9 Added support for landscape material instances (per-component MICs) for Nanite landscape:
* Refactored ExportToRawMesh function to allow exporting one mesh section per component
* Implemented support for UV mappings usually provided by the landscape vertex factory in the non-Nanite case (as per the LandscapeLayerCoords material expression + others)
* For Nanite landscape materials, the relevant UV channels are :
** Texcoords0-2 : TerrainCoordMapping_XY, TerrainCoordMapping_XZ, TerrainCoordMapping_YZ (note : TerrainCoordMapping_XZ doesn't work ATM because texcoords1 seems to be a special case...)
** Texcoords3 : WeightmapUV
** Texcoords4 : LightmapUV (not implemented by ExportToRawMesh yet and not supported by Nanite meshes ATM : max 4 UV channels)
** Texcoords5 : HeightmapUV (implemented by ExportToRawMesh but not supported by Nanite meshes ATM : max 4 UV channels)
* Nanite landscape meshes now have 1 polygroup per component, with the proper landscape material instance being assigned to it
* Since Nanite meshes are capped at 64 meshes per section, Nanite landscape mesh will now fail to build on proxies sporting more than this amount of components. This is a first implementation and can be fixed later by adding as many Nanite landscape components as needed
* Implemented some missing virtual overrides on FLandscapeMaterialResource leading to landscape material instances potentially being used for non-landscape usages (hair, etc.)
* Fixed LandscapeNaniteComponent not being attached to the root component (and the mesh being exported in world space coordinates), leading to it not following when moving the  actor
* Added NaniteLODIndex property in ALandscape to be able to tweak the LOD level used when generating the Nanite meshes. It's mostly a debug feature to test the LODLevel > 0 landscape mesh export and to accelerate the Nanite landscape mesh generation since you usually want Nanite to be the most defined mesh possible
* All Nanite landscape meshes will be auto-invalidated by this change

#rb roey.borsteinas, graham.wihlidal
#preflight 6365e2a2882365b8590525ac
#lockdown marc.audy

[CL 23069843 by jonathan bard in ue5-main branch]
2022-11-09 21:04:18 -05:00
phil popp
204e5eef67 Fix audio derived data invalidating old data.
This fix reverts the logic so that old sounds don't go through a pcm->float->pcm conversion.
#rb Jimmy.Smith, Dan.Thompson
#preflight 636ae824dc30a4ce96c34f99

[CL 23069835 by phil popp in ue5-main branch]
2022-11-09 21:04:08 -05:00
joe pribele
0926a226cf removed PRAGMA_DISABLE_OPTIMZATIONS that appear to be left in by accident
#rb zousar.shaker
#preflight 636c1c6f7c2b50519028f593

[CL 23063526 by joe pribele in ue5-main branch]
2022-11-09 16:47:19 -05:00
Devin Doucette
165d24ede5 DDC: Made the cache optional for the build system
#preflight 636c045ef56cab38c78f8b47
#rb Tim.Smith
#rnx

[CL 23062223 by Devin Doucette in ue5-main branch]
2022-11-09 15:53:21 -05:00
Jerome Delattre
baa78341e6 Fix play level test search mechanic
* get the package object to get the package path instead of guessing from file name

#jira UE-169325
#preflight 636a982edc30a4ce96aa48fc
#rnx
#rb Chris.Constantinescu

[CL 23062070 by Jerome Delattre in ue5-main branch]
2022-11-09 15:47:59 -05:00
Devin Doucette
381a587dcd DDC: Invoke the build completion callback after storing to the cache
This avoids a race condition where a build completes and then another process is unable to retrieve the data from the cache.

#preflight 636b2a547c2b505190e7d036
#rb Zousar.Shaker
#rnx

[CL 23059312 by Devin Doucette in ue5-main branch]
2022-11-09 13:57:59 -05:00
dan elksnitis
3e268dcee4 [shaders] remove stb preprocessor code until static analysis errors can be addressed.
#rb trivial
#preflight skip

[CL 23057245 by dan elksnitis in ue5-main branch]
2022-11-09 12:33:30 -05:00
dan elksnitis
5e65aad0e3 [shaders] add initial version of stb preprocessor, using default data structure and alloc implementations (for now)
#preflight 636aa686f56cab38c7373c9f
#rb Jason.Nadro

[CL 23053497 by dan elksnitis in ue5-main branch]
2022-11-09 09:03:42 -05:00
Zousar Shaker
ac3fc5db61 Print more detailed timing metrics for HTTP operations in the HttpCacheStore.
#rb devin.doucette
#preflight 636acc25dc30a4ce96bbe43c

[CL 23040720 by Zousar Shaker in ue5-main branch]
2022-11-08 16:52:32 -05:00
chris constantinescu
7859a6cdb4 Catch2 feature introduced: test groups and group events at global, group and test group before/after levels
#preflight 636ab505450be1d9f83e90e4
#rb Jerome.Delattre

[CL 23039159 by chris constantinescu in ue5-main branch]
2022-11-08 16:02:46 -05:00
henrik karlsson
4feb09e0b3 Compile time optimizations Managed to reduce unnamed game's biggest file compiler frontend cost from 113 seconds to 60 seconds. This also impact other things such as pch size and memory footprint when compiling which is great.
Takeaways. Try to use "friend" on functions/operators that are frequently overloaded EXCEPT if they are in a templated type that is frequently instantiated. So do not put friends in TMap, TSet, TObjectPtr etc, this will slow down compile times. There is a break-even somewhere and hard to tell where it is but taking a class that is templatized on character type probably don't matter either way and then it is nicer to use a friend since that simplies error messages when compiler can't resolve functions/operators.

If it is possible to use member functions instead of friend that is the best option in terms of compile time performance. With c++20 you only have to write operator==(Foo, Bar) and the compiler will automatically provide operator==(Bar, Foo), operator!=(Foo, Bar) and operator!=(Bar, Foo).

Changes in this changelist involes
* Making operator<< friends in non-template types and not friends in template types
* Making operator==/!= members where possible and if not possible moved out if type is a frequently instantiated templated type.

#preflight 636970f5376a9cd6a80da54a
#rb steve.robb

[CL 23038965 by henrik karlsson in ue5-main branch]
2022-11-08 15:59:46 -05:00
laura hermanns
b3e8c553e3 Fix "Compile failed without errors" message and unify this error report for FXC and DXC.
#rb Dan.Elksnitis
#rnx

[CL 23034307 by laura hermanns in ue5-main branch]
2022-11-08 14:20:14 -05:00
Devin Doucette
8dae547a96 Texture: Integrated the texture compiling manager with the derived data build scheduler
This allows for pausing of async texture compilation and limiting concurrent texture builds based on the same memory limits that the asset compiling manager uses.

#jira UE-141137
#jira UE-141139
#preflight 636a78af4d3c1d9d92d2ce5a
#rb Zousar.Shaker

[CL 23033009 by Devin Doucette in ue5-main branch]
2022-11-08 13:26:12 -05:00
laura hermanns
b32256418b Log available system memory when DXC crashes on E_OUTOFMEMORY to verify system is in fact out of memory.
#rb Jason.Nadro, Yuriy.Odonnell
[FYI] Dan.Elksnitis
#preflight 636924014d3c1d9d925e05ab
#rnx

[CL 23029673 by laura hermanns in ue5-main branch]
2022-11-08 11:15:46 -05:00
Devin Doucette
6c33c94b36 DDC: Added experimental interface IBuildSchedulerThreadPoolProvider to integrate the build scheduler with the asset compiling managers
#jira UE-141137
#jira UE-141139
#preflight 63696f5e843e6ac79482dad1
#rb Zousar.Shaker

[CL 23027624 by Devin Doucette in ue5-main branch]
2022-11-08 09:45:50 -05:00
Dan Thompson
8b4692d085 Remove "mutable" parts of the build settings. For platforms that need the mip dimensions, this is now piped down via a parameter instead of violating "const".
#rb fabian.giesen
#rb charles.bloom
#preflight 636987d7dc30a4ce96651026

[CL 23021179 by Dan Thompson in ue5-main branch]
2022-11-07 18:29:15 -05:00