Commit Graph

1964 Commits

Author SHA1 Message Date
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Robb Surridge
622e6d7a8a Finalize links to community pages in the Help menu
#jira UE-139298
#preflight 628e4ba62f2409bc1e3bf334
#rb lauren.barnes

[CL 20439606 by Robb Surridge in ue5-main branch]
2022-05-31 14:02:13 -04:00
jeannoe morissette
44313345c2 VulkanRHI: Properly set GRHISupportsWaveOperations at runtime. Add subgroup properties query to device initialization if the platform's Vulkan instance is >= 1.1. Update VulkanPC ddpi to report wave op support. Cleanup: start removing VULKAN_SUPPORTS_PHYSICAL_DEVICE_PROPERTIES2 define.
#rb Dmitriy.Dyomin
#fyi brandon.schaefer,Andrew.Lauritzen
#preflight 629523a9c10e51b2bfa4cc0f
#rnx

[CL 20436394 by jeannoe morissette in ue5-main branch]
2022-05-31 09:33:47 -04:00
Josh Adams
b2a8d5e3bb - FIxed TargetArchitecture string parsing
#preflight 6294c26a380652524ed75c31

[CL 20430466 by Josh Adams in ue5-main branch]
2022-05-30 09:17:09 -04:00
robert manuszewski
43d504502b Adding automated startup tests to check if class / struct / enum / property metadata contains values with short type names which will help with ANY_PACKAGE removal
(disabled until all ANY_PACKAGE removal changes are in)

#jira UE-99463
#rb Steve.Robb
#preflight 62921cafdb0a62f25c07b693

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20407210 via CL 20407235 via CL 20407352 via CL 20407427
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20409051 by robert manuszewski in ue5-main branch]
2022-05-28 12:18:53 -04:00
Josh Adams
d2ca7efb2f - Allow editor to build for M1, but not enabled by default. See:
BaseGame.ini:
  [/Script/MacTargetPlatform.MacTargetSettings]
  TargetArchitecture=Universal
  EditorTargetArchitecture=Universal

#rb will.damon
#jira UE-145032,UE-153529
#preflight 62914a156d1aaeda580cbc6b

[CL 20400585 by Josh Adams in ue5-main branch]
2022-05-27 18:34:49 -04:00
Matt Peters
81a3ae5b81 Cooker: Multiprocess support: Remove some deprecated code and move some out of place functions that should not be executed on CookWorker into the proper calling function that will be called on the director only.
#rb Zousar.Shaker
#rnx
#preflight 629135e11b686da53f41b463

[CL 20398652 by Matt Peters in ue5-main branch]
2022-05-27 16:48:59 -04:00
Brandon Schaefer
bb7d99dfe0 Enable RayTracing by default for Vualkn RHI
*Only inline ray tracing use cases are currently supported, as in Vulkan RHI on Windows

Fix Linux not loading raytracing extensions if they were enabled

#jira none
#rb yuriy.odonnell
#preflight 628fd3f98c077c0d662371e2

[CL 20384119 by Brandon Schaefer in ue5-main branch]
2022-05-26 15:49:28 -04:00
JeanMichel Dignard
9df9b1ced0 Fixed some Editor Styles settings being in the wrong section in the ini file
#jira UE-154195
#preflight none
#rb none
#fyi lauren.barnes

[CL 20379785 by JeanMichel Dignard in ue5-main branch]
2022-05-26 11:21:39 -04:00
lauren barnes
53488dc718 Updating CrashReportClient style to only use images from certain folders, and moving developer tool style setup to individual style classes.
#jira UE-152623
#rb Josh.Adams, Patrick.Boutot, Patrick.Laflamme, Louise.Rasmussen
#preflight 628d6c5faf7a2e956b8de990

#ROBOMERGE-OWNER: lauren.barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20366551 via CL 20368551 via CL 20369147 via CL 20369164
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20370889 by lauren barnes in ue5-main branch]
2022-05-25 16:27:45 -04:00
dan engelbrecht
e4e1ba5527 Allow configuration for separate namespace for structured data
#preflight 628e494382597362d1f8050d
#preflight 628e70d72c7cb2d10d71c033

[CL 20369511 by dan engelbrecht in ue5-main branch]
2022-05-25 14:55:57 -04:00
lonnie li
325fe4811d TimeOfDay: Add default tracks to TimeOfDaySequenceEditor settings.
Add default editor preferences for TimeOfDaySequenceEditor.

#rb none
#preflight 628d5635347b7778b6dcbec6

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 20357597 via CL 20357604 via CL 20357606
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20359808 by lonnie li in ue5-main branch]
2022-05-24 22:59:50 -04:00
tiago costa
30c8264346 Implemented ShouldCompileRayTracingCallableShadersForProject(ShaderPlatform)
- added bSupportsRayTracingCallableShaders to DDPI.
- only Windows D3D12 RHI supports callable shaders at the moment.

#rb yuriy.odonnell
#preflight 628bb493693c5e1de282983f

[CL 20331097 by tiago costa in ue5-main branch]
2022-05-23 12:52:55 -04:00
zach brockway
8c306be3fb Virtual Scouting: GetHMDDeviceType backward compatibility under OpenXR.
Fixes several bugs sharing the same root cause, where code/blueprints were attempting to branch on UVREditorMode::GetHMDDeviceType() or UVREditorInteractor::GetHMDDeviceType(). These calls previously returned the result of IXRTrackingSystem::GetSystemName(), and the call sites were only set up to handle "OculusHMD" or "SteamVR," and were now seeing "OpenXR". Instead, we now return one of those legacy plugin names, depending on the current OpenXR hand controller interaction profile. Longer term, we will want to revisit each of these decision points individually, and take into account support for future unknown XR devices.

An alternative subclass of UVREditorMode can now be configured in the editor settings alongside the interactor and teleporter classes, and a new UVirtualScoutingMode subclass splits the mode entry into two phases. This is necessary because OpenXR may not return the correct interaction profile for several frames after the OpenXR session / stereo rendering has started, and we need to defer creation of the interactors, etc.

#jira UE-150037
#rb jason.walter, Lauren.Barnes
#preflight 6287f49a6c7692ac8cd00f29

[CL 20302573 by zach brockway in ue5-main branch]
2022-05-20 16:40:40 -04:00
christopher waters
8d8c05f497 Reworking shader platform settings on Windows to be per-RHI. This removes the ill-fated "min/max feature level" configs that were just causing confusion.
On Windows, "TargetedRHIs" is now split into "D3D11TargetedShaderFormats", "D3D12TargetedShaderFormats" and "VulkanTargetedShaderFormats". "TargetedRHIs" is still parsed for backwards compatibility.
Using this, projects can now be more easily configured for D3D12-only or even Vulkan-only.
Updated FShaderFormatsPropertyDetails to use FName instead of FString for shader platforms. Also added a filtering method for mixed RHI platforms like Windows.

#jira none
#rb mihnea.balta, josh.adams
#preflight 6287cbf46c7692ac8cc8805f

[CL 20300786 by christopher waters in ue5-main branch]
2022-05-20 15:09:09 -04:00
Marc Audy
367ab52e96 Refactor component instance data cache to be able to store actor or component instance data
#rb Jordan.Hoffman, Justin.Hare
#preflight 628556eae1558beddd9dcb9a

[CL 20268354 by Marc Audy in ue5-main branch]
2022-05-18 16:58:46 -04:00
lauren barnes
d6162f7fbe Reference Viewer - Settings now get saved to project config
#JIRA UE-148312
#rb Lauren.Barnes
#preflight 6283b66b18591b86df909e90

#ROBOMERGE-OWNER: lauren.barnes
#ROBOMERGE-AUTHOR: louise.rasmussen
#ROBOMERGE-SOURCE: CL 20246604 via CL 20260309 via CL 20260357 via CL 20260360
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20263031 by lauren barnes in ue5-main branch]
2022-05-18 12:56:28 -04:00
paul chipchase
f85fad88ff It is now possible to disable virtualization for all payloads owned by a specific asset type by adding the name of the asset to [Core.ContentVirtualization]DisabledAsset string array in the engine ini file.
#rb Per.Larsson
#rnx
#jira UE-151377
#preflight 628364050039ea57a52d6989

### Virtualization
- [Core.ContentVirtualization] in the engine ini file now supports an array called 'DisabledAsset' which can be used to name asset types that should not virtualize their payloads.
-- By default (in BaseEngine.ini) we have disabled the StaticMesh asset as we know it will crash if a payload is missing and the SoundWave asset as it still is pending testing.
- This new way to disable virtualization is data driven. The older hard coded method has not been removed but will likely be reworked in a future submit.
- Now when an editor bulkdata is adding it's payload to the package trailer builder during package save it will poll the virtualization system with a call to the new method ::IsDisabledForObject by passing in it's owner.
-- If the owner is valid and was present in the 'DisabledAsset' array then the method will return true and the EPayloadFlags::DisableVirtualization flag will be applied.

### Package Trailer
- The pre-existing functionality of enum EPayloadFilter has been moved to a new enum EPayloadStorageType as will only filter payloads based on their storage type.
- EPayloadFilter has been modified to filter payloads based on functionality although at the moment the only thing it can filter for is to return payloads that can be virtualized, it is left for future expansion.
- EPayloadFlags has been reduced to a uint16 with the remaining 2bytes being turned into a new member EPayloadFilterReason.
- This new member allows us to record the exact reason why a payload is excluded from virtualization. If it is zero then the payload can virtualize, otherwise it will contain one or more reasons as to why it is being excluded. For this reason the enum is a bitfield.
- Added overloads of ::GetPayloads and ::GetNumPayloads that take EPayloadFilter rather than a EPayloadStorageType
- Added wrappers around all AccessMode types for FLookupTableEntry.
- FPackageTrailerBuilder has been extended to take a EPayloadFilterReason so that the caller can already provide a reason why the payload cannot be virtualized.
-- As a future peace of work this will probably be changed and we will ask the caller to pass in the owner UObject pointer instead and then we will process the filtering when building the package trailer to a) keep all of the filtering code in one place b) keep the filtering consistent

### PackageSubmissionChecks
- The virtualization process in  will now request the payloads that can be virtualized from the package trailer, which respects the new payload flag, rather than requesting all locally stored payloads.

### UObjects
- There is no need for the SoundWave or MeshDescription classes to opt out of virtualization on construction. This will be done when the package is saved and is now data driven rather than being hardcoded.

### DumpPackagePayloadInfo
- The command has been updated to also display the filter reasons applied to each payload

[CL 20240971 by paul chipchase in ue5-main branch]
2022-05-17 07:54:28 -04:00
daniel wright
7ee57baaee Cinematic scalability disables Lumen RadianceCache update throttling
#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 20231243 via CL 20231403 via CL 20231438
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20233181 by daniel wright in ue5-main branch]
2022-05-16 17:55:03 -04:00
Guillaume Abadie
12c8b7bf7f Compiles all global shaders with HLSL2021 on some platforms
#rb laura.hermanns
#jira none
#preflight 627ceb4ace4192efbe2e6f8a, 627d1920a82f3adab87b67f0

[CL 20165180 by Guillaume Abadie in ue5-main branch]
2022-05-12 11:41:03 -04:00
lauren barnes
867c4cb06b Removing early out based on bShowProjectMenus and changing it to a condition for adding menu entries, because other sections rely on FileProject
#rb trivial
#preflight 62781131b80e5aae6006212b

#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20099085 via CL 20099214 via CL 20099221 via CL 20099224
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20108493 by lauren barnes in ue5-main branch]
2022-05-09 15:09:20 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Richard Wallis
b5cb8e21f9 Fix material dual source blending on macOS and enable the feature in DataDrivenPlatformInfo.ini. Add dual source blending slot index to pixel shader MRT defination when MATERIAL_WORKS_WITH_DUAL_SOURCE_COLOR_BLENDING is defined and dual source blending is enabled.
#jira UE-120222
#review-20077471 @will.damon, @graham.wihlidal, @charles.derousiers
#preflight https://horde.devtools.epicgames.com/job/62753d03d8373707f21611ce
#rb will.damon,  graham.wihlidal,  charles.derousiers

[CL 20101478 by Richard Wallis in ue5-main branch]
2022-05-09 08:52:49 -04:00
Zousar Shaker
15446b0f6e Expand the IterativeClassAllowList to include SoundCue, StaticMesh, and MaterialInstanceConstant (and commonly co-packaged classes). For further testing with hybrid iterative cooking.
#rb none
#fyi matt.peters
#rnx
#preflight skip,NotTestedByPreflight

[CL 20054893 by Zousar Shaker in ue5-main branch]
2022-05-05 00:29:02 -04:00
Josh Adams
c582f62496 - Disabling USD plugins in cooked editors (monolithic) which fail to compile due to some USE_USD mismatches
#rb none
#preflight skip

[CL 20052455 by Josh Adams in ue5-main branch]
2022-05-04 19:09:49 -04:00