Commit Graph

209 Commits

Author SHA1 Message Date
bob tellez
71d4831aa8 [Backout] - CL34505262
[FYI] JeanFrancois.Dube
Original CL Desc
-----------------------------------------------------------------
[World Partition Actor Descriptors] Add actor descriptor support for internal actors.
This allows standard levels (non-OFPA) to be used as level instances where their actors are placed in the streaming grid.
No future plans for supporting data layers, actor filters or property overrides yet.

#jira UE-200419
#rb Richard.Malo
[FYI] jeansebastien.guay

[CL 34515526 by bob tellez in ue5-main branch]
2024-06-19 17:44:16 -04:00
jeanfrancois dube
2e891ac113 [World Partition Actor Descriptors] Add actor descriptor support for internal actors.
This allows standard levels (non-OFPA) to be used as level instances where their actors are placed in the streaming grid.
No future plans for supporting data layers, actor filters or property overrides yet.

#jira UE-200419
#rb Richard.Malo
fyi jeansebastien.guay

[CL 34505279 by jeanfrancois dube in ue5-main branch]
2024-06-19 13:16:01 -04:00
robert millar
4bc2549d33 Fix indentation
[CL 34349525 by robert millar in ue5-main branch]
2024-06-13 14:53:13 -04:00
jamie dale
6f79bc494f Added a setting to control whether warnings logged during validation are promoted to errors
FValidateAssetsSettings::bCaptureWarningsDuringValidationAsErrors controls this behavior, and defaults to true to preserve the existing behavior.

Note: FDataValidationModule::OnValidateSourcePackageDuringCook now keeps them as warnings, as this is only used by UE::Cook::FDelegates::ValidateSourcePackage and cannot accept a FValidateAssetsSettings argument.

#rb Robert.Millar

[CL 34340820 by jamie dale in ue5-main branch]
2024-06-13 10:54:59 -04:00
sebastien lussier
b3e8bfd52a Fixed typo: "loaded loaded"
#rb JeanFrancois.Dube

[CL 34212895 by sebastien lussier in ue5-main branch]
2024-06-07 15:59:55 -04:00
paul chipchase
70007282fe Add a data validator that checks for corruption in package files.
#rb Per.Larsson
#jira UE-210581

- Currently the validator checks for the following:
-- Check that the package file ends with PACKAGE_FILE_TAG, this is the most common form of file corruption that we see, where the file is truncated or the end of the file is filled with zeros as the write never completed.
-- Serialize the package file summary from the start of the file which will make sure that it is in the format that we expect and that the versioning etc are correct.
-- Make sure that the package trailer can be loaded if the package file is supposed to have one.
-- Ensure that the locally stored payloads can be loaded from the package trailer.
-- Lastly double check that the payloads we load from the trailer have the hash that we expect, to make sure that they have not been altered since that point.
- The first two checks would be done just by trying to load an asset from the package file so are quite commonly caught without the need of an additional data validation, but even so the file could end up being corrupted at some point after the user last used it in the editor and the point of submission so it doesn't hurt to check. Do note that the checks that we do have are all based on corrupted package files that we have seen users successfully submit to a project causing build breakages that this validator would've prevented.

[CL 34088456 by paul chipchase in ue5-main branch]
2024-06-04 04:51:55 -04:00
robert millar
67fdde50e7 Fix data validation summary message to consider EDataValidationResult value as well.
[CL 33476311 by robert millar in ue5-main branch]
2024-05-06 19:42:48 -04:00
richard malo
c75e6eccc7 Fixed Client-Only Data Layers
- Added validation to detect a mismatch when an actor is part of data layers with a different type of LoadFilter (None,client-only,server-only).
- Properly flag streaming Cell bClientOnlyVisible so that AddToWorld of cell's Level doesn't wait for server acknowledge before making the level visible.
Resubmit 33311823 with fix : [Backout] - CL33317089
#rb JeanFrancois.Dube

[CL 33332444 by richard malo in ue5-main branch]
2024-04-30 07:29:32 -04:00
bob tellez
3194aabb12 Merging CL33318962
[Backout] - CL33311823
[FYI] richard.malo
Original CL Desc
-----------------------------------------------------------------
Fixed Client-Only Data Layers
- Added validation to detect a mismatch when an actor is part of data layers with a different type of LoadFilter (None,client-only,server-only).
- Properly flag streaming Cell bClientOnlyVisible so that AddToWorld of cell's Level doesn't wait for server acknowledge before making the level visible.
#rb JeanFrancois.Dube

#p4v-cherrypick 33311312

[CL 33320263 by bob tellez in ue5-main branch]
2024-04-30 01:11:43 -04:00
richard malo
8771169683 Fixed Client-Only Data Layers
- Added validation to detect a mismatch when an actor is part of data layers with a different type of LoadFilter (None,client-only,server-only).
- Properly flag streaming Cell bClientOnlyVisible so that AddToWorld of cell's Level doesn't wait for server acknowledge before making the level visible.
#rb JeanFrancois.Dube

[CL 33311353 by richard malo in ue5-main branch]
2024-04-29 15:43:06 -04:00
justin peterson
70c9c0b1b8 [Backout] - CL33134682 - CIS Content Error
[FYI] paul.chipchase
Original CL Desc
-----------------------------------------------------------------
Add a data validator that checks for corruption in package files.

#rb Robert.Millar, Per.Larsson
#jira UE-210581

- Currently the validator checks for the following:
-- Check that the package file ends with PACKAGE_FILE_TAG, this is the most common form of file corruption that we see, where the file is truncated or the end of the file is filled with zeros as the write never completed.
-- Serialize the package file summary from the start of the file which will make sure that it is in the format that we expect and that the versioning etc are correct.
-- Make sure that the package trailer can be loaded if the package file is supposed to have one.
-- Ensure that the locally stored payloads can be loaded from the package trailer.
-- Lastly double check that the payloads we load from the trailer have the hash that we expect, to make sure that they have not been altered since that point.
- The first two checks would be done just by trying to load an asset from the package file so are quite commonly caught without the need of an additional data validation, but even so the file could end up being corrupted at some point after the user last used it in the editor and the point of submission so it doesn't hurt to check. Do note that the checks that we do have are all based on corrupted package files that we have seen users successfully submit to a project causing build breakages that this validator would've prevented.
- We want the validator to be able to run on presubmit/commandlet level, in which case it will generally be run on a changelist in which case the validator will be given a single asset of type 'UDataValidationChangelist' which contains all of the modified packages in that changelist. We also want to allow users to invoke the validator on a package if they are suspicious of it, in which case the validator will receive the higher level asset as a UObject* from which we should be able to find the package file.
- Don't run the validator when saving packages as we don't really care if the package file is corrupted before overwriting it.
- Don't run the validator on in memory packages, we need a package file to operate on!

[CL 33145010 by justin peterson in ue5-main branch]
2024-04-22 14:05:35 -04:00
paul chipchase
8be84047c9 Add a data validator that checks for corruption in package files.
#rb Robert.Millar, Per.Larsson
#jira UE-210581

- Currently the validator checks for the following:
-- Check that the package file ends with PACKAGE_FILE_TAG, this is the most common form of file corruption that we see, where the file is truncated or the end of the file is filled with zeros as the write never completed.
-- Serialize the package file summary from the start of the file which will make sure that it is in the format that we expect and that the versioning etc are correct.
-- Make sure that the package trailer can be loaded if the package file is supposed to have one.
-- Ensure that the locally stored payloads can be loaded from the package trailer.
-- Lastly double check that the payloads we load from the trailer have the hash that we expect, to make sure that they have not been altered since that point.
- The first two checks would be done just by trying to load an asset from the package file so are quite commonly caught without the need of an additional data validation, but even so the file could end up being corrupted at some point after the user last used it in the editor and the point of submission so it doesn't hurt to check. Do note that the checks that we do have are all based on corrupted package files that we have seen users successfully submit to a project causing build breakages that this validator would've prevented.
- We want the validator to be able to run on presubmit/commandlet level, in which case it will generally be run on a changelist in which case the validator will be given a single asset of type 'UDataValidationChangelist' which contains all of the modified packages in that changelist. We also want to allow users to invoke the validator on a package if they are suspicious of it, in which case the validator will receive the higher level asset as a UObject* from which we should be able to find the package file.
- Don't run the validator when saving packages as we don't really care if the package file is corrupted before overwriting it.
- Don't run the validator on in memory packages, we need a package file to operate on!

[CL 33134683 by paul chipchase in ue5-main branch]
2024-04-22 04:47:15 -04:00
bob tellez
8a955ef3d7 #UE Do not attempt to scan packages from invalid paths in ValidateActorsAndDataLayersFromChangeList. Just log them and move on
[FYI] Richard.Malo

[CL 32867917 by bob tellez in ue5-main branch]
2024-04-10 19:20:14 -04:00
bob tellez
6eb211e6e6 #UE Check that modified packages pass the ShouldValidateAsset filter before processing them to avoid uncooked or non-runtime assets
[CL 32582247 by bob tellez in ue5-main branch]
2024-03-28 12:47:48 -04:00
jamie dale
8ebb1e8af8 Fixed UEditorValidatorSubsystem::ValidateAssetsWithSettings taking its settings as an out-param rather than an in-param
[FYI] Robert.Millar, Peter.Bowmar

[CL 32525628 by jamie dale in ue5-main branch]
2024-03-26 18:09:06 -04:00
richard malo
e24571c496 Only allow data layers of a game feature plugin to be under a WorldDataLayers of the same game feature plugin.
Only allow data layers of a non-game feature plugin to be under a non-game feature WorldDataLayers.
#rb JeanFrancois.Dube

[CL 32442354 by richard malo in ue5-main branch]
2024-03-22 14:21:14 -04:00
jeanfrancois dube
381604c05b [WorldPartition] Instead of gathering level script references to external actors, gathers them from the world to make sure to include references from non-external actors and other pointers from the world object hierarchy.
#rb Richard.Malo

[CL 32434634 by jeanfrancois dube in ue5-main branch]
2024-03-22 11:12:25 -04:00
jeanluc corenthin
69192be9a4 Public part for the improvements on texture validation from CL 29932763
- Added 3 new tags to UTexture2D to track properties necessary to check validity from FAssetData only
- Improved messaging (Thanks to Robb Surridge)
- Added an iconon textures' thumbnails to indicate invalidity
- Added invalidity tooltips in hovering window on textures when applicable
- Added contextual  menu item 'Conform Texture' in Texture sction when a texture is selected
- Added actual method to conform textures to validation criteria
- Added logic to automatically conform textures in pProjects created before 28.10 whenever necessary
- Added small texture criteria for UI and 2D textures which will hide any missed validation criteria
- Added texture budget criteria to monitor size in memory of non-streamable textures (only done when validating the project itself)
- Added ability to silently run validator subsystem

Note: preflight at CL 32229072 failed on 3 steps: EdTest, Verse and Content. EdTest and Verse also failed without the changes of this CL.The step  Content generated an invalid error on an uninitialzed property which was actually initialized.

#rb Dan.Thompson, Jason.Nadro, sebastian.schoner

[CL 32249594 by jeanluc corenthin in ue5-main branch]
2024-03-14 13:02:36 -04:00
bhavan vaishnav
6678a1e02a [Validation] Fix FScopedIgnoreLogMessages cleanup
#rb robert.millar

[CL 32195875 by bhavan vaishnav in ue5-main branch]
2024-03-12 18:22:00 -04:00
robert millar
3451a1474a Make attempts to validate changelists while asset registry scan is in progress fatal in unattended mode.
[CL 32102185 by robert millar in ue5-main branch]
2024-03-07 17:06:47 -05:00
aidan mcdu
362758bdf8 [Backout] - CL32046571
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL32040017
[FYI] aidan.mcdu
Original CL Desc
-----------------------------------------------------------------
[Lime][UEFN]

Adding a validator that evaluates all actors with prevents overlaps and determines if their overlaps are acceptable for submission.

Has two modes, one of which only evalutes same type building actor->actor collision, or the much more aggresive All Building types->Props.
That proved too aggressive for the GDC timeline, so instead we are going with the Same Type collision only.

Also enabling Physics for GC's so that any of this works in the first place.
Also increasing the penetration threshold for UEFN so that we get a little more grace in calculating overlaps.


#rb Cory.Kolek, Rex.Hill, Shaun.Kime

[CL 32046743 by aidan mcdu in ue5-main branch]
2024-03-06 00:08:36 -05:00
bob tellez
c37e55c695 [Backout] - CL32040017
[FYI] aidan.mcdu
Original CL Desc
-----------------------------------------------------------------
[Lime][UEFN]

Adding a validator that evaluates all actors with prevents overlaps and determines if their overlaps are acceptable for submission.

Has two modes, one of which only evalutes same type building actor->actor collision, or the much more aggresive All Building types->Props.
That proved too aggressive for the GDC timeline, so instead we are going with the Same Type collision only.

Also enabling Physics for GC's so that any of this works in the first place.
Also increasing the penetration threshold for UEFN so that we get a little more grace in calculating overlaps.


#rb Cory.Kolek, Rex.Hill, Shaun.Kime

[CL 32046601 by bob tellez in ue5-main branch]
2024-03-05 23:55:22 -05:00
aidan mcdu
dd123bb226 [Lime][UEFN]
Adding a validator that evaluates all actors with prevents overlaps and determines if their overlaps are acceptable for submission.

Has two modes, one of which only evalutes same type building actor->actor collision, or the much more aggresive All Building types->Props.
That proved too aggressive for the GDC timeline, so instead we are going with the Same Type collision only.

Also enabling Physics for GC's so that any of this works in the first place.
Also increasing the penetration threshold for UEFN so that we get a little more grace in calculating overlaps.


#rb Cory.Kolek, Rex.Hill, Shaun.Kime

[CL 32040261 by aidan mcdu in ue5-main branch]
2024-03-05 18:33:24 -05:00
robert millar
3b6885c838 Remove log line that is duplicated by use of MessageLog. To get these message logs at the Display log level, use MessageLog.InfoMessagesAtDisplayVerbosity
[CL 31860654 by robert millar in ue5-main branch]
2024-02-27 19:57:31 -05:00
robert millar
fe9e362cfd Additional logging
[CL 31817936 by robert millar in ue5-main branch]
2024-02-26 16:49:14 -05:00