Commit Graph

2375 Commits

Author SHA1 Message Date
marc audy
1b8e7f29c4 Rework GPUScene support on mobile platforms.
Platforms that do support uniform buffer objects can now provide batched primitive data through UBO. There is a limit UBO range that can be accessed in shaders, so we group instances into batches that fit into this limit. Switch uses 64KB views, other platfroms16KB views. For each primitive we allocate 512Bytes and 256Bytes for instance. Mobile platforms that do not support UBO will use a desktop version of GPUScene.
There are a few things that still missing: Dynamic mesh passes,  static lighting
#rb ola.olsson, benjamin.rouveyrol

[CL 26354848 by marc audy in ue5-main branch]
2023-06-30 16:34:38 -04:00
Josh Adams
8d6eb87c35 - Hooked up the VisionPro simulator deviceprofile to disable virtual streaming
- Made Simulator deice strings for IOS platforms, iPhone0,0 - AppleTV0,0 - VisionOS0,0, since before they were just "arm"
#rb adam.kinge

[CL 26353255 by Josh Adams in ue5-main branch]
2023-06-30 16:02:28 -04:00
chris constantinescu
6072c762ad Minor: TestRunner.cpp --no-wait option fix, generate metadata config must be in target file not build file.
Enable in BaseEngie.ini
[LowLevelTestsSettings]
bUpdateBuildGraphPropertiesFile=false

#rb Jerome.Delattre, Rob.Huyett
#jira UE-189825

[CL 26323717 by chris constantinescu in ue5-main branch]
2023-06-29 15:18:42 -04:00
arciel rekman
5f2b8512bd Update Linux to use v22 toolchain (clang 16.0.6)
#rb Brandon.Schaefer (discussed)

[CL 26305001 by arciel rekman in ue5-main branch]
2023-06-28 21:54:49 -04:00
carl lloyd
c42df3f2f9 Fixes for Nanite on Mac
- Disable COMPILER_SUPPORTS_WAVE_VOTE for Mac
- Fixed bug where Texture2DArray was flattened due to atomics, but bound as Texture2D
- Fixed bug where defines were read incorrectly in shader compiler

#rb Zack.Neyland, Jamie.Hayes

[CL 26291315 by carl lloyd in ue5-main branch]
2023-06-28 13:49:35 -04:00
guillaume abadie
7a3c715a25 Disables bSupportsRealTypes on vulkan du to cook failure colliding with r.Mobile.FloatPrecisionMode
#rb trivial
#jira UE-189783

[CL 26286763 by guillaume abadie in ue5-main branch]
2023-06-28 11:40:57 -04:00
jamie dale
64fb82351f Run the GatherText asset scan async during editor boot so that it's likely finished before the commandlet needs the data
For a very basic loc gather this can take the asset gather time from ~120 seconds to ~40 seconds

#jira
[FYI] Leon.Huang

[CL 26282229 by jamie dale in ue5-main branch]
2023-06-28 08:15:11 -04:00
guillaume abadie
fb96324861 Adds bSupportsRealTypes=RuntimeDependent in Vulkan SM5 and SM6
#rb jeannoe.morissette
#jira UE-179496

[CL 26269642 by guillaume abadie in ue5-main branch]
2023-06-27 16:32:12 -04:00
paul chipchase
6108ee0529 Add a new config option 'engine.ini:[Core.VirtualizationModule]:DisableLazyInitIfInteractive' that can be used to override LazyInitConnections if we want the VA module to be able to use slate dialogs safely.
#rb none

- If we want to use slate dialogs we cannot use LazyInitConnections, however slate dialogs only work on programs that a) support slate and b) are running in some interactive form. Commandline programs, or the editor runnning in unattended mode or running a commandlet cannot make use of the slate dialog.
- If this new flag 'DisableLazyInitIfInteractive' is set to true and 'LazyInitConnections' is set to true then the VA system will lazy init its connections unless we are running an interactive program that could make use of the slate dialogs, in which case 'LazyInitConnections' is disabled for safety.
- Ideally we'd merge these two values into a single enum but I am hoping that we can change how we connect in the near term in which case we will simple deprecate 'DisableLazyInitIfInteractive'. The use case is pretty niche at the moment so this will probably be easier for the next stage of work.

[CL 26230486 by paul chipchase in ue5-main branch]
2023-06-26 06:21:23 -04:00
josh adams
82ea6a767a [Backout] - CL26223564
[FYI] keaton.stewart
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26226852 by josh adams in ue5-main branch]
2023-06-24 17:52:48 -04:00
keaton stewart
1fd1a77412 [Backout] - CL26221679 [Main CIS Issue] Errors in Incremental FortniteServer Linux and Incremental Compile Monolithics - Linux
#fyi Josh.Adams
#jira FORT-626566 (edited)
Original CL Desc
-----------------------------------------------------------------
- Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26223564 by keaton stewart in ue5-main branch]
2023-06-23 20:29:27 -04:00
Josh Adams
e25e1b3daf - Very super early support for VisionOS (requires Xcode 15 beta2 or later).
- THIS IS NOT USABLE YET - WORK IN PROGRESS!
- It builds, links with IOS libs (warnings, not errors), can cook and it boots in Simulator, but is dying in MetalRHI
- UnrealTargetPlatform.VisionOS is currently defined in Engine code, it is not pulled out like would be correct for a full true platform extension
- Refactored a lot of Build.cs files to use UnrealPlatformGroup.IOS/Apple instead of individual platform checks, to make VisionOS integration simpler
#rb zack.neyland

[CL 26221679 by Josh Adams in ue5-main branch]
2023-06-23 19:12:47 -04:00
yuriy odonnell
b67c4cb749 Add bSupportsVertexShaderSRVs to DataDrivenShaderPlatformInfo which drives PLATFORM_SUPPORTS_VERTEX_SHADER_SRVS shader
* This should be used to guard any features that require explicitly accessing buffer or textures SRVs in vertex shaders

#rb Dmitriy.Dyomin
#rb Kenzo.Terelst

[CL 26207274 by yuriy odonnell in ue5-main branch]
2023-06-23 05:56:06 -04:00
gosia madry
93fc625b80 Localization: Changed ShouldUseLocalizedNodeAndPinNames in BaseEditorSettings.ini to be false by default. Regional users find untranslated versions more useful.
#rb: Leon.Huang
#rnx
#jira: UE-183982

[CL 26187617 by gosia madry in ue5-main branch]
2023-06-22 13:55:54 -04:00
Daniel Wright
3b52da999e Lumen ShortRangeAO use HWRT on Cinematic quality level
[CL 26187443 by Daniel Wright in ue5-main branch]
2023-06-22 13:50:35 -04:00
jamie dale
6f1025d873 Added a Content Browser file data source for Portable Object (PO) files contained within the Localization folder
#jira
#rb Rex.Hill

[CL 26150707 by jamie dale in ue5-main branch]
2023-06-21 11:25:20 -04:00
josh adams
305c260069 - Moved SDK versions (MainVersion and Min/Max SDK version) from C# strings to SDK.json files in the Platform's Config folder
- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey

[CL 26150552 by josh adams in ue5-main branch]
2023-06-21 11:21:01 -04:00
Josh Adams
f6bd069d2a - Removed empty struct ini lines, as empty strings will error when parsed as a struct
#rb trivial

[CL 26146296 by Josh Adams in ue5-main branch]
2023-06-21 09:26:22 -04:00
matt peters
cf8d2a71e2 Cooker SkipOnlyEditorOnly: Change commandline parsing to allow true/false values so we can override it back to off if config has turned it on.
Change commandline and config arguments to match the new name: OnlyEditorOnly -> SkipOnlyEditorOnly.
#rb Zousar.Shaker
#rnx

[CL 26139495 by matt peters in ue5-main branch]
2023-06-20 19:57:49 -04:00
Josh Adams
06ff93be0e - Handle manual codesigning with Modern Xcode (using all new settings, does not use the "green check" provisions in IOS project settings)
- Added support for AppStoreConnect API for automatic code signing (with command line builds, packaging from editor, etc) that doesn't need everyone to be signed in to Xcode (still need to sign in if using Xcode IDE to build/run)
- Fixed Modern to always create the IOS plist in UBT ApplePostBuild step
- Updated a bunch of ini setting names to remove Modern, given Modern will be standard in the future
- Added some settings XcodeProject settings in the editor, and updated some tooltips/category names
- Moved some functions around to clean up
- Added some debug code to catch errors

#rb adam.kinge,calvin.zheng,zack.neyland

[CL 26133818 by Josh Adams in ue5-main branch]
2023-06-20 16:40:51 -04:00
zousar shaker
c5d05e1f4e 2nd attempt:
Rework zenserver host address detection when using COTF
Make sure .projectstore file is properly staged in all scenarios

#rb zousar.shaker

[CL 26123110 by zousar shaker in ue5-main branch]
2023-06-20 10:53:32 -04:00
paul chipchase
46c360f493 Now if the VA source control backend fails to connect we can display a dialog to the user asking for the correct credentials directly. Currently disabled by default.
#rb none

### Dialog
- When the source control backend tries to connect and fails we will now show a dialog allowing the user to try new settings rather than let the editor continue and crash.
- The dialog will allow the user to enter the server address (P4PORT) and their username (P4USER).
- Once the dialog is displayed the user will have three options to continue.
-- "Reset To Defaults" which will remove all settings saved to the users local ini files and attempt to use the environment defaults to connect.
-- "Retry Connection" which will take the new address and username that the user provided and attempt to connect with those settings.
-- "Skip" no connection attempt will be made. This may cause instability later if the user needs data that they cannot access.
- If the connection succeeds after the user has reset to defaults or provided new settings, then they will be saved in the local ini file for future sessions.
- The dialog will not show if:
-- Slate is disabled for the current processor has not yet initialized
-- The error is found not on the game thread. This means that lazy init will not currently work well with this dialog. Attempts to mashal the error to the game thread have been spotty at best and there is a high chance of thread locking so attempts were abandoned.
-- If the -unattended flag is set on the process.
-- If the dialog is disabled via the config file when setting up the backend (UseRetryConnectionDialog=False)
-- If  'engine.ini:[Core.VirtualizationModule]:UseLocalIniFileSettings' is false as future sessions would not be able to use the new settings and would become tiresome. In these cases the environment settings will need to be fixed.
- If the dialog is now shown then the backend is marked as unconnected and will not work.

### Known Issues
- We currently cannot get the settings that the failed p4 connection used, nor the error message dueto how the API works. So for now we just display an empty server address and username edit box. This will be fixed when the API is changed.
- There is currently no good way to inform the user where their settings come from.
- There is no easy way to reset the settings once saved. To allow the user to change the server address to a better proxy for example.

### Initialization
- In order to allow a slate dialog to be used, the initialization of the VA system has been moved later in pre init, to the first avaliable point after slate has initialized and its shaders have been built. This in theory should not cause a a problem as engine content cannot be virtualized.
-- Added a new option 'engine.ini:[Core.ContentVirtualization]:InitPreSlate' with a default of false. When set to true the VA system will initialize in the original, earlier portion of engine pre init. This is only included in case an existing virtualized project encounters a problem with the new ordering.

[CL 26115392 by paul chipchase in ue5-main branch]
2023-06-20 04:26:06 -04:00
Matt Peters
062f7507c1 Iterative Cooking - Invalidate packages for iterative cook if their classes are not allowed by class filters. This change uses the same system created for incremental cook and applies it to iterative cook.
Change class filtering to always use an allow list and a block list.
Change class filtering to enable allowlist all classes in a scriptpackage.
Move implementation of hybrid iterative's allow-all mode out into a separately parsed parameter.
Fix some Engine and UnrealEd classes that were not allowing EditorDomain to call Serialize on their class default object (which it needs to do to collect CustomVersions).
#rnx
#rb Zousar.Shaker

[CL 26102598 by Matt Peters in ue5-main branch]
2023-06-19 16:02:02 -04:00
florin pascu
6864c75e38 Setting r.Forward.LightLinkedListCulling to 0 for platforms that do not benefit from it, saves about 0.1ms GPU
#rb Dmitriy.Dyomin

[CL 26088586 by florin pascu in ue5-main branch]
2023-06-19 09:21:52 -04:00
jeanluc corenthin
4da4769cb2 Restoring Danny Kabrane's changes with the addition of the missing redirection which caused the warnings during cooking
#rb danny.kabrane
[FYI] bob.tellez

[CL 26087626 by jeanluc corenthin in ue5-main branch]
2023-06-19 08:36:04 -04:00