[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]
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]
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]
#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]
- 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]
[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]
- 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]
[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]
#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]
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]
- 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]
[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]
[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]
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]