Commit Graph

4361 Commits

Author SHA1 Message Date
evgenii babinets
4184fc75de Minor clean-up to my last change: use array comparator since the manual compare was done when it was an array view.
#rb jordan.cristiano

[CL 21997840 by evgenii babinets in ue5-main branch]
2022-09-13 21:50:54 -04:00
evgenii babinets
ecd517fc27 Fixed build/deprecation error due to code that wasn't in the branch the change was developed in.
#jira UE-163575
#rb none

[CL 21985130 by evgenii babinets in ue5-main branch]
2022-09-13 12:27:57 -04:00
joe pribele
b24a5bae94 [CoreUObject] fix for TObjectPtr.GetClass() crashing if TObjectPtr points to null.
#rb zousar.shaker
#p4v-preflight-copy 21901752

[CL 21985036 by joe pribele in ue5-main branch]
2022-09-13 12:24:17 -04:00
evgenii babinets
5e541c1007 Made FAssetData ~16 bytes smaller (technically 20, but there's an odd number of 32-bit structures now, so we'll shrink 8 when deprecated AssetClass is deleted). This saves about 5MB if the project has 300K+ assets.
There's a lot of duplication of very small arrays by storing the inline array in each FAssetData entry, and this isn't used in a critical path anyway, so this changes ChunkIDs to be an index/reference into a chunk array registry.

#rb matt.peters

[CL 21984882 by evgenii babinets in ue5-main branch]
2022-09-13 12:18:43 -04:00
dmytro vovk
0050ce1cc7 Reverted change in //UE5/Main/Engine/Source/Runtime/CoreUObject/Public/UObject/Class.h revision 75
#rb none
#jira UE-163508
#preflight 63208095506f1a33e04756d4

[CL 21981922 by dmytro vovk in ue5-main branch]
2022-09-13 09:43:12 -04:00
jason walter
a91426a755 Set the external package when linker load finds the package in memory.
#jira UE-153112
#rb francis.hurteau
#preflight 631f79bccd55825044fc5321

[CL 21976325 by jason walter in ue5-main branch]
2022-09-12 19:50:41 -04:00
Matt Peters
a8443cd211 TopLevelAssetPath: Fix constructors to allow UObject subclasses to use the UObject* constructor instead of trying and failing to use the CharType* constructor.
Allow UObject constructor to record a valid path to non-asset toplevelobjects, for consistency with the other constructors which are based on path strings rather than the virtual IsAsset function (which e.g. returns false for UClass).
#rb Robert.Millar
#rnx
#preflight 631f5eafd613b765fa391870

[CL 21967835 by Matt Peters in ue5-main branch]
2022-09-12 13:08:05 -04:00
paul chipchase
337a705d88 Report CustomVersion warnings/errors to the MessageLog
#rb PJ.Kack
#rnx
#preflight 631ef703544fb584da4e1a81

- This will allow the messages to show up when the user clicks the link on the "Failed to load assets" notification in the editor. If the warnings/errors are only printed via UE_LOG, then no messages will be displayed when the user clicks that link which can be confusing.

[CL 21964749 by paul chipchase in ue5-main branch]
2022-09-12 09:56:45 -04:00
robert millar
d48cc05a81 Add header with state of editor-only-data-stripping to saved asset registry to allow properly loading cooked asset registries from a WITH_EDITORONLY_DATA binary.
#rb matt.peters
#jira UE-163364
#preflight 631bdc47ec45fbf3d797e4ed

[CL 21935652 by robert millar in ue5-main branch]
2022-09-10 00:03:48 -04:00
dmytro vovk
48d468025d Replaced identical code in TCppStructOps to help older clang fold it.
#jira none
#rb none
#preflight 631b8f9fec45fbf3d784f0f7

[CL 21926120 by dmytro vovk in ue5-main branch]
2022-09-09 15:26:32 -04:00
phillip kavan
d5e1d97c0d Defer Blueprint CDO export creation on load so that placeholder dependencies can be resolved prior to invoking the native base class ctor.
Notes:
- This change is needed to supplement the feature that allows users to set a subobject override class from the Blueprint editor; i.e. overriding a component class with a non-native Blueprint component class will otherwise fail on reload.

Change summary:
- Modified FLinkerLoad::CreateExport() to move the deferred CDO serialization check to occur prior to CDO construction (part of the linker's circular dependency mitigation code path). This means we now defer its construction in addition to its serialization.
- FLinkerLoad::CreateExport() will continue to bypass class regeneration post-construction when Blueprint finalization is still pending. This is because CDO construction, while now deferred until finalization, still goes through CreateExport() for consistency.
- Modified FLinkerLoad::ResolveDeferredExports() to handle the deferred construction of the CDO during Blueprint finalization, prior to its deferred serialization.
- Modified UClass::Serialize() to bypass the NULL check for failed CDO serialization when deferred dependency loading is active and Blueprint finalization is still pending.

#jira UE-147639
#rb Marc.Audy, Dan.OConnor, Robert.Manuszewski
#preflight 63113f9e942c45ff454f8ef1

[CL 21923865 by phillip kavan in ue5-main branch]
2022-09-09 13:21:26 -04:00
Devin Doucette
0ce0756966 DerivedData: Added a way to request compressed data from derived data references
- FDerivedDataIoBatch::Compress requests the entire compressed value.
- FDerivedDataIoResponse::GetCompressedData gets the compressed buffer from the response when available.
- FDerivedDataIoResponse::GetCacheValueId has been added to get the FValueId when available.
- FDerivedDataIoResponse::GetCacheKey has been fixed to return a non-null cache key when appropriate.
- Asserts about FDerivedData now log the derived data reference too.

#preflight 631a5f6fa60c539c98ab5fa9
#rb Zousar.Shaker

[CL 21920523 by Devin Doucette in ue5-main branch]
2022-09-09 10:36:44 -04:00
carlmagnus nordin
da495608f8 ZenLoader: Fixed recently introdced atomic ordering problem
#rb pj.kack
#preflight 631b0aaeec45fbf3d7688182

[CL 21918456 by carlmagnus nordin in ue5-main branch]
2022-09-09 07:36:02 -04:00
bryan sefcik
07894f4a07 Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631a717cec45fbf3d74d4ba7

[CL 21916033 by bryan sefcik in ue5-main branch]
2022-09-09 00:53:22 -04:00
bryan sefcik
cb0456c6d4 Cleaned up build.cs files by removing any include paths that were already being added by UBT. This was done to help identify how include paths are being added and to help with future refactoring.
#jira
#preflight 631a5c04967ffc68fbf0dd8f

[CL 21911226 by bryan sefcik in ue5-main branch]
2022-09-08 21:44:02 -04:00
tim smith
c9e823cc53 Allow methods that can only be invoked from a constructor be available when fetching vtable address for HotReload and Live Coding.
#rb trivial
#jira UE-162734
#preflight 631a0b5ed31788ea3a46d912

[CL 21908217 by tim smith in ue5-main branch]
2022-09-08 20:10:07 -04:00
paul chipchase
8d77e84166 Refactor the VA pushing API so that we only need to implement a single path
#rb Per.Larsson
#jira UE-163103
#rnx
#preflight 6318989c2b7fe03eb664e9f0

### VirtualizationSystem/VirtualizationManager
- Added an overload of ::Push taking just one FPUshRequest so that people don't have to keep adding MakeArrayView boiler plate when pushing a single request
- Change the order of the last two parameters for the raw ::Push call as this will group all of the payload specific parameters together and leave the target storage type at the end. It is unlikely that anyone is calling the older version but it has been deprecated for safety.

### IVirtualizationBackend
- The none FPushRequest overload of ::PushData is no longer virtual, it just converts the parameters to FPushRequest and calls that overload instead. In this way we now only have one pushing code path in our backends. We could probably look into removing this overload at this point (since the higher level IVirtualizationSystem will now convert all push requests into a FPushRequest form) but it is not considered worth it at the moment when the simple overload covers our needs.
- Removed EPushResult in favour of just returning true/false for the overall operation.If the caller needs a more detailed breakdown then they will have to use an overload that takes an FPushRequest over raw parameters.
-- At the moment FPushRequest does not contain a full breakdown of what happened, so with this submit we are effectively losing the ability to find out if the payload was already in the backends or not, however the batch version of push was already not returning this info so it is not a big loss. Fixing FPushRequest to return a better break down of what happened will be done in UE-160942
- Removed the none batch Push paths from the source control and ddc backends as they already supported batch pushing.
- File backend needed to be converted to supporting batch pushing, which is pretty much the same code as before except we need to iterate over the container of FPushRequests.
-- The backend does not early out on error as it tends to be quite fast. We might want to consider an official policy for the VA system, if we should early out of errors or not.

[CL 21907558 by paul chipchase in ue5-main branch]
2022-09-08 19:35:36 -04:00
Robert Millar
c11175e51c Fix GetLongPackageName and GetAssetName returning the string 'None' rather than empty strings when those components are empty.
#jira UE-163235
#rb carlmagnus.nordin
#preflight 631a4ba5967ffc68fbec609b

[CL 21902518 by Robert Millar in ue5-main branch]
2022-09-08 16:26:37 -04:00
nate strohmyer
5755e91904 Removing unacceptable words in Runtime/CoreUObject
#Jira UE-163059
#rb Marc.Audy
#preflight 6317c1452b7fe03eb650b501

[CL 21892698 by nate strohmyer in ue5-main branch]
2022-09-08 09:16:58 -04:00
max chen
a4fd054b12 Asset: AppendObjectPath should append to the given string
#preflight 6318e2e5967ffc68fba20d37
#rb rob.millar
#jira UE-163115

[CL 21891338 by max chen in ue5-main branch]
2022-09-08 07:09:50 -04:00
Robert Millar
4dae61dfb7 Remove ensure from FSoftObjectPath::SetPath.
#jira UE-163087, FORT-512708, UE-163155, UE-163097
#rb none
#preflight 631900132b7fe03eb6784c28

[CL 21862060 by Robert Millar in ue5-main branch]
2022-09-07 16:53:44 -04:00
joe pribele
75d3f2ea27 [CoreUObject] change to Blueprint loading to only resolve imports that are needed. prevents loading of unnecessary data
#rb ben.zeigler zousar.shaker
#preflight 6318dce5d135b61bc5c117bf

[CL 21857208 by joe pribele in ue5-main branch]
2022-09-07 14:16:26 -04:00
Andriy Tylychko
3fe8b0bcb6 fixed non-unity compilation by including the correct header
https://horde.devtools.epicgames.com/job/6318b22ba31879aea8d85c9b?step=8e3f&issue=209198
#preflight 6318d0b8d135b61bc5bc12aa

[CL 21855577 by Andriy Tylychko in ue5-main branch]
2022-09-07 13:26:59 -04:00
jamie dale
04493f3ae5 Added an option to allow Concert to skip sending non-property object data
#preflight skip
#rb Jason.Walter, Francis.Hurteau
#rnx

[CL 21835890 by jamie dale in ue5-main branch]
2022-09-06 20:10:11 -04:00
Robert Millar
ff88604ecd Fix for nonunity compile issue.
#rb none
#jira none
#preflight

[CL 21835228 by Robert Millar in ue5-main branch]
2022-09-06 19:50:41 -04:00