391 Commits

Author SHA1 Message Date
Wojciech Krywult
d271c828b9 SDK (1): Changes in common code needed to support SDK changes on some platforms
#jira UE-210757
#rb
#tests Integrated //UE5/Partner-Latte-5.4/... @32408657 (the last non-robomerge change)

[CL 32557111 by Wojciech Krywult in 5.4 branch]
2024-03-27 16:55:10 -04:00
adam kinge
601a6f857e Detect and store the available open iOS Simulators on mac
Part 1 of 3

#jira UE-197974
#rb josh.adams
#fyi florin.pascu

[CL 31518854 by adam kinge in 5.4 branch]
2024-02-15 09:51:21 -05:00
rob krajcarski
669741139a Make FTargetPlatformManagerModule::ShaderFormatVersion thread safe
#rb dan.elksnitis

[CL 31282461 by rob krajcarski in 5.4 branch]
2024-02-07 21:33:49 -05:00
florin pascu
c691e00a91 Fix QuickLaunch Android
#jira UE-205200
#rb Chris.Babcock, Jack.Porter

[CL 31082706 by florin pascu in 5.4 branch]
2024-02-01 06:24:58 -05:00
florin pascu
bf808f709a Add missing change from CL 30963863
(fixes crash when viewing device output on Android)
#jira UE-200883
#rb Jack.Porter

[CL 31039512 by florin pascu in 5.4 branch]
2024-01-31 02:30:07 -05:00
florin pascu
5a6e98944b Static Analysis fix
[CL 30966355 by florin pascu in 5.4 branch]
2024-01-29 07:37:11 -05:00
florin pascu
4c1745fd82 Add missing matching #undef NAMESPACE_LOCTEXT directive
[CL 30966028 by florin pascu in 5.4 branch]
2024-01-29 07:16:50 -05:00
florin pascu
b49417947f First part of TargetPlatform(TP) refactor into TargetPlatformSettings(TPS) and TargetPlatformControls(TPC)
TPS doesn't need SDK and will be used to get info about the platform
TPC requires SDK
AndroidTP has been converted to the new system
#jira UE-200883
#rb Jack.Porter

[CL 30963905 by florin pascu in 5.4 branch]
2024-01-29 04:50:53 -05:00
arciel rekman
1ac3f136a5 Fix inability to cook spline meshes by a cooked cooker (resubmit after backout in CL 30847866).
Cooked cooker is a relatively new platform in Unreal that allows producing a cooked editor build and using it to cook new assets (e.g. DLC for the base game). Such cooked cooker build is faster to load than the original editor build that would cook from the source assets, and it can also be more easily deployed to cloud environments.

The problem this fix is solving is as follows:

1) Spline mesh needs collision data from the static mesh it deforms. This collision data is usually derived from its render data.
2) Cooked cooker target platform (see TCookedCookerTargetPlatform) is basically a server build, assets cooked for this platform do not store render data.
3) If a new (uncooked) spline mesh is referencing a static mesh from the base build, it fails to get its collision data because the render data was stripped when producing the cooked version of the base build.

The solution is

- to introduce a new target platform feature that allows to distinguish cooked cooker target platform from other platforms that strip audio-visual data.
- when cooking static meshes for a "cooked cooker" target get a separate copy of the asset's collision data and save it inline in the cooked asset.
- inside the cooked cooker, use this copy as static mesh's collision data instead of trying to derive it from (non-existent at that point) static mesh's render data.

- James Singer reviewed the fixed change.

#rb Brian.Marshall1, Francis.Hurteau, Benn.Gallagher, James.Singer

[CL 30858619 by arciel rekman in 5.4 branch]
2024-01-24 15:19:22 -05:00
sean boocock
1229fccd3c [Backout] - CL30812030
[FYI] Arciel.Rekman
Original CL Desc
-----------------------------------------------------------------
Fix inability to cook spline meshes by a cooked cooker.

Cooked cooker is a relatively new platform in Unreal that allows producing a cooked editor build and using it to cook new assets (e.g. DLC for the base game). Such cooked cooker build is faster to load than the original editor build that would cook from the source assets, and it can also be more easily deployed to cloud environments.

The problem this fix is solving is as follows:

1) Spline mesh needs collision data from the static mesh it deforms. This collision data is usually derived from its render data.
2) Cooked cooker target platform (see TCookedCookerTargetPlatform) is basically a server build, assets cooked for this platform do not store render data.
3) If a new (uncooked) spline mesh is referencing a static mesh from the base build, it fails to get its collision data because the render data was stripped when producing the cooked version of the base build.

The solution is

- to introduce a new target platform feature that allows to distinguish cooked cooker target platform from other platforms that strip audio-visual data.
- when cooking static meshes for a "cooked cooker" target get a separate copy of the asset's collision data and save it inline in the cooked asset.
- inside the cooked cooker, use this copy as static mesh's collision data instead of trying to derive it from (non-existent at that point) static mesh's render data.

#rb Brian.Marshall1, Francis.Hurteau, Benn.Gallagher

[CL 30847941 by sean boocock in ue5-main branch]
2024-01-24 11:44:40 -05:00
arciel rekman
7cd1420836 Fix inability to cook spline meshes by a cooked cooker.
Cooked cooker is a relatively new platform in Unreal that allows producing a cooked editor build and using it to cook new assets (e.g. DLC for the base game). Such cooked cooker build is faster to load than the original editor build that would cook from the source assets, and it can also be more easily deployed to cloud environments.

The problem this fix is solving is as follows:

1) Spline mesh needs collision data from the static mesh it deforms. This collision data is usually derived from its render data.
2) Cooked cooker target platform (see TCookedCookerTargetPlatform) is basically a server build, assets cooked for this platform do not store render data.
3) If a new (uncooked) spline mesh is referencing a static mesh from the base build, it fails to get its collision data because the render data was stripped when producing the cooked version of the base build.

The solution is

- to introduce a new target platform feature that allows to distinguish cooked cooker target platform from other platforms that strip audio-visual data.
- when cooking static meshes for a "cooked cooker" target get a separate copy of the asset's collision data and save it inline in the cooked asset.
- inside the cooked cooker, use this copy as static mesh's collision data instead of trying to derive it from (non-existent at that point) static mesh's render data.

#rb Brian.Marshall1, Francis.Hurteau, Benn.Gallagher

[CL 30812215 by arciel rekman in ue5-main branch]
2024-01-23 13:58:58 -05:00
dan thompson
26a614468f Rad Audio Codec: SDK and UE integration.
This has several preflights that aren't listed, covering various platforms.

#rb jeff.roberts, jimmy.smith, fabian.giesen
#jira UE-195336

[CL 30785991 by dan thompson in ue5-main branch]
2024-01-22 16:42:09 -05:00
christopher waters
e9661bc768 Preparing for dependency cleanup.
[CL 30244022 by christopher waters in ue5-main branch]
2023-12-11 13:55:22 -05:00
rex hill
668a71e420 Allow building without Turnkey Support
#rb josh.adams
#tests Opened editor and confirmed it loads with no issues

[CL 29603508 by rex hill in ue5-main branch]
2023-11-09 13:51:05 -05:00
dan elksnitis
54fb5cf56d [shaders] further deprecation (SupportsIndependentPreprocessing/OptionalFinalShaderSource/bIndependentPreprocessed are no longer needed since all backends are migrated)
#rb Laura.Hermanns

[CL 29117027 by dan elksnitis in ue5-main branch]
2023-10-25 22:21:30 -04:00
florian penzkofer
f0d3b0bf34 Add support for DBuffer decals to the mobile forward renderer.
The DBuffer layout and most code is the same as for the desktop renderer.
Added new CVar r.Mobile.DBuffer so that is disabled by default. DBuffer for the SM5 renderer on mobile is enabled by default.

#rb Dmitriy.Dyomin, Sebastien.Hillaire

[CL 28598190 by florian penzkofer in ue5-main branch]
2023-10-09 16:48:41 -04:00
dan elksnitis
5518e3d9f3 [shaders] deprecating old PreprocessShader and IShaderFormat::CompileShader APIs now that all shader formats have been migrated
#rb Jason.Nadro

[CL 28452658 by dan elksnitis in ue5-main branch]
2023-10-04 09:22:36 -04:00
adam kinge
5a87b69c38 Only iOS and tvOS currently support device connection type specific icons
#jira UE-190844
#rb jack.porter
#rnx
#lockdown jack.porter

[CL 27022315 by adam kinge in ue5-main branch]
2023-08-11 00:46:34 -04:00
aleksander netzel
d700a739fa Add offline BLAS compression for supporting platforms:
* Add IsCompressed() to FRHIRayTracingGeometry.
* If BLAS is compressed it will trigger a build that will do the decompression.
* Controlled by target platform setting "Enable Static Mesh Offline BVH Compression"
* Enabled by default.

#jira UE-146162
#rb yuriy.odonnell

[CL 26559972 by aleksander netzel in ue5-main branch]
2023-07-24 20:01:35 -04:00
dan elksnitis
5c00384f67 [shaders]
- Remove the condition causing SCW to automatically exit after a single job if HLSLcc was used. This doesn't appear to be beneficial; HLSLcc uses a lot of memory but does not appear to leak it, so we're wasting time spinning up new processes unnecessarily here. This allows us to deprecated the associated field in the compiler output and function in IShaderFormat.
- Strip out compiler invocations stats; this was not accurate in some cases and it was decided after discussion that at this point the effort to fix the problems was not worth the utility we get from it.

#rb Jason.Nadro
#rb Laura.Hermanns

[CL 26256933 by dan elksnitis in ue5-main branch]
2023-06-27 10:11:41 -04:00
dan elksnitis
00685561cc [shaders]
- Add option to independent preprocessing IShaderFormat API to allow a "secondary" preprocess & compile if a RequiresSecondaryCompile predicate implemented in the shader format returns true; this predicate takes as input the compile input, environment,  and the output of the first execution of the preprocess function. This is intended to handle the usage of UESHADERMETADATA pragmas (set in the preprocess output) by some backends to indicate a secondary compilation is required to target the variant hardware (setting additional #defines and potentially different compiler arguments). Other backends have an additional requirement that any stereo shaders also require separate compilation for each target, which can be handled by querying the FShaderCompilerEnvironment in this same predicate.
- Move the combining of outputs in the secondary compile case into the core shader system so it doesn't need to be copypasta'd in any shader format backends which require the aforementioned secondary compilation, exposing an API function which returns the particular "key" used to identify these combined shader outputs in the RHI.
- Rework the internal compilation/preprocess functions so a minimal amount of code needs to be wrapped in __try/__except (allowing objects with destructors to be created in the higher level functions).

#rb Massimo.Tristano

[CL 25977467 by dan elksnitis in ue5-main branch]
2023-06-14 10:11:27 -04:00
jimmy smith
ac34b71821 Fix for editor crash on startup
#rb josh.adam aaron.mcleran

[CL 25960030 by jimmy smith in ue5-main branch]
2023-06-13 15:15:40 -04:00
dan elksnitis
06395bee56 [shaders] add Hash field to FShaderCompilerInput so debug output of InputHash.txt works correctly whether or not the preprocessed cache is enabled, and the IShaderFormat API for debug output of independent-preprocessing-enabled backends is cleaner
#rb Jason.Nadro

[CL 25814977 by dan elksnitis in ue5-main branch]
2023-06-06 09:55:43 -04:00
josh adams
f6381544e2 - Allow a project to override the Main SDK version for a platform (the platform's project Engine.ini would set
[OverrideSDK]
  SDKVersion=x.y.z
and AutoSDK, or anything using GetMainVersion(), would use that version string instead
- If multiple targets are built in one run of UBT/UAT, it will error out because there is no support to switch SDKs (and builds happen in parallel, etc)
- This is not a complete solution, because it can cause problems with shared tools like ShaderCompileWorker, when different projects are on different SDKs and they have one SCW to share
- Renamed GetMainVersion to GetMainVersionInternal(), and wrapped that in a new non-vitual GetMainVersion() that calls GetMainVersionInternal() (and handles the ini overrides)
#rb david.harvey,dave.barrett
#jira UE-185364
#preflight 647a12e7b0670733186c928e

[CL 25767233 by josh adams in ue5-main branch]
2023-06-02 13:42:59 -04:00
jimmy smith
13dbfcba26 READD: Chunked Seektables for BinkAudio (with Fixes)
#rb dan.thompson igor.dallavanzi

[CL 25645493 by jimmy smith in ue5-main branch]
2023-05-26 12:21:41 -04:00