Commit Graph

143 Commits

Author SHA1 Message Date
florin pascu 4212ff13dc Deprecated FTargetPlatformBase, TTargetPlatformBase and TNonDesktopTargetPlatformBase
Replaced with FTargetPlatformControlsBase/FTargetPlatformSettingsBase,  TTargetPlatformControlsBase/TTargetPlatformSettingsBase and TNonDesktopTargetPlatformControlsBase
#jira UE-206488
#rb Josh.Adams

[CL 32151592 by florin pascu in ue5-main branch]
2024-03-11 07:24:38 -04:00
charles bloom fafc3edc8f Texture limit output size in bytes from platform size limit
This limit is a hard limit on the size of a texture resource that will not crash the game
this is not a dimensional limit, or a heuristic limit to make small platform-friendly textures
rather this enforces the absolute limit of texture sizes that will not crash the runtime or fail to package

#rb fabian.giesen
#jira UE-203737, FORT-694622

[CL 31536312 by charles bloom in ue5-main branch]
2024-02-15 16:36:13 -05:00
florin pascu 44abef1c1d Resubmit CL 31307944 with fixes to ITP/ITPC interface
#jira UE-200883
#rb Josh.Adams

[CL 31341150 by florin pascu in ue5-main branch]
2024-02-09 10:50:54 -05:00
alex kahn 8fa98b800b [Backout] - CL31307944 - CIS FastCook Error
[FYI] Florin.Pascu
Original CL Desc
-----------------------------------------------------------------
Common Code changes for TP refactor
#jira UE-200883
#rb Jack.Porter, Josh.Adams

[CL 31315641 by alex kahn in ue5-main branch]
2024-02-08 19:58:02 -05:00
florin pascu 6bffc1747f Common Code changes for TP refactor
#jira UE-200883
#rb Jack.Porter, Josh.Adams

[CL 31308098 by florin pascu in ue5-main branch]
2024-02-08 17:30:01 -05:00
florin pascu 367836ea48 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 30963885 by florin pascu in ue5-main branch]
2024-01-29 04:50:19 -05:00
arciel rekman 4c3e0b8db3 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 30857184 by arciel rekman in ue5-main branch]
2024-01-24 14:43:39 -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
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
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
eric knapik 6c7224f931 #jira: FORT-509651
Add new interface function AllowsDevelopmentObjects to ITargetPlatform
This function makes a clearer distinction for what assets will be considered development vs what assets should be considered EditorOnly
A platform should be allowed to cook editor only objects but not development. The inclusion of AllowsDevelopmentObjects creates that distinction

[REVIEW] [at]Bob.Tellez, [at]Josh.Adams, [at]Graeme.Thornton, [at]Matt.Peters
#preflight 63601c7b4e6fb7f504a7d311

[CL 22917958 by eric knapik in ue5-main branch]
2022-11-02 11:46:13 -04:00
Zak Middleton 73efd27f6c #ue5 - Truncation fixes for modules:
StatsViewer
StatusBar
TargetDeviceServices
TargetPlatform
Teleporter
TimeManagement
TranslationEditor
ViewportInteraction
Virtualization
WindowsPlatformFeatures
WindowsTargetPlatform

#jira UE-160837, UE-160843
#rb Andrew.Davidson, Dave.Jones2
#preflight 636024751c75ff834a526197

[CL 22873932 by Zak Middleton in ue5-main branch]
2022-10-31 18:33:27 -04:00
david harvey 10b05a8cf3 Capture platform-specific project analytics for launching, cooking & packaging in the editor.
#jira UE-142191
#rb Brian.White, Wojciech.Krywult
#preflight 6319a11bd135b61bc5f729c9

[CL 21907474 by david harvey in ue5-main branch]
2022-09-08 19:33:14 -04:00
brian white 96026b3ca9 Add Project Launcher Profile setting for Original Release Version to support those platforms that need it (in addition to the Based On Release Version setting). The setting will only appear for those platforms that opt-in via the platform specific version of FGenericPlatformProperties.
#jira UE-155733
#rb David.Harvey Wojciech.Krywult
#preflight https://horde.devtools.epicgames.com/job/630e11c4501b64ba333ffca8
#rnx

[CL 21700049 by brian white in ue5-main branch]
2022-08-30 10:10:23 -04:00
serge bernier 77a2d486ea -Use Depth and velocity pass on Xb1 and Ps4 (VelocityParallel).
- Saves ~0.3ms on PS4/XB1 (Dynres = 100%).
-Add possibility to disable grass velocity output when WPO velocity is enable (only effective when r.velocity.enablevertexdeformation != 0 and r.OptimizedWPO = true)

#rb [at]jeremy.moore

[CL 21524947 by serge bernier in ue5-main branch]
2022-08-23 19:21:36 -04:00
christopher waters 0be910ed72 Adding SupportsRayTracing to platform properties. This is checked in addition to the project/platform settings for RayTracing but is opt-in per platform instead of always enabled if the setting is enabled.
This has the effect of reducing the number of platforms that say they support RayTracing which directly reduces the number of shader platforms that "support" RayTracing.

#jira none
#rb yuriy.odonnell
#preflight 62f43891b43215cf6c35e4b0

[CL 21391739 by christopher waters in ue5-main branch]
2022-08-15 15:16:19 -04:00
bryan sefcik de1956f47b Ran IWYU on Public headers under Engine/Source/Developer/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21064294 by bryan.sefcik
#jira
#preflight 62d5c2111062f2e63015e598

#ROBOMERGE-OWNER: bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21155249 via CL 21158121 via CL 21161259
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21182053 by bryan sefcik in ue5-main branch]
2022-07-20 12:03:45 -04:00
Dmitriy Dyomin f00c0a426b Remove support for a landscape baked mesh which was used for mobile platforms only
#jira none
#rb jonathan.bard
#preflight 62d769cdbc175ec68cee67d0

[CL 21171586 by Dmitriy Dyomin in ue5-main branch]
2022-07-19 23:03:12 -04:00
jimmy smith d3450e7b27 Fix for nounity CIS in TargetPlatformBase.h
#rnx
#preflight none

[CL 21154764 by jimmy smith in ue5-main branch]
2022-07-18 19:29:34 -04:00
jimmy smith b92f1fdf0d Configuration support for AudioInfos / AudioFormats per platform
#jira UE-159832
#rb Aaron.mcleran Phil.Popp Dan.Thompson Josh.Adams
#preflight 62d260033c3df323907eaa93

[CL 21153330 by jimmy smith in ue5-main branch]
2022-07-18 17:47:55 -04:00
yuriy odonnell 07aeb4900e Exclude ray tracing shaders from SM5 if it's disabled for D3D12
* Add ITargetPlatform::GetRayTracingShaderFormats(), with default implementation that falls back to GetAllTargetedShaderFormats() if HWRT is enabled for a platform
* Override GetRayTracingShaderFormats() for TGenericWindowsTargetPlatform to return only enabled D3D12 and VK shader formats (excluding D3D11)
* Use GetRayTracingShaderFormat() and UsesRayTracing() to configure GRayTracingPlaformMask (the mask contains one bit per shader platform)

Previously all bits of GRayTracingPlaformMask were set if project uses ray tracing, then shader platform bits were disabled for all possible shader formats for platforms that don't support ray tracing.
If SM5 was disabled for D3D12, ray tracing shaders would still get compiled for it because the corresponding bit was still set in GRayTracingPlaformMask.

With this change, SM5 bit will no longer be set in GRayTracingPlaformMask in the editor if it is disabled for D3D12 RHI for the project, so ray tracing shaders won't be compiled.
When running a packaged build, GRayTracingPlaformMask is now set to 0 or 1 based on global project setting (r.RayTracing) and whether the current machine+RHI supports ray tracing.

#rb christopher.waters, jason.nadro
#preflight 62bd0dea3f0d6beee259b636

#ROBOMERGE-AUTHOR: yuriy.odonnell
#ROBOMERGE-SOURCE: CL 20897852 via CL 20898485 via CL 20899239
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20901755 by yuriy odonnell in ue5-main branch]
2022-06-30 15:44:00 -04:00
charles bloom f99959bbc4 Fix ASTC mapping for BC6 and BC7
Fix ASTC HDR support
Fix up ASTC & ISPC texture formats a bit

#preflight 628cedc7347b7778b6b8745e
#rb jon.olick,fabian.giesen

[CL 20348873 by charles bloom in ue5-main branch]
2022-05-24 11:21:35 -04:00
Matt Peters ed6457f264 ITargetPlatform: Delete RefreshSettings. All overrides were removed previously and it is now an empty virtual function and can be removed.
#rb Josh.Adams
#rnx
#preflight 628bd4e1573a7de2c436e39e

[CL 20347492 by Matt Peters in ue5-main branch]
2022-05-24 09:38:04 -04:00
charles bloom b4fcb0ac37 enable BC6+7 texture support in games that use the ES3.1 RHI
ES3.1 is used as a fast renderer mode, but still supports DX11 textures
log a message when BC6+7 is encoded as uncompressed
delete the unused GetVirtualTextureLayerFormat

#preflight 62168881476ef5d8a206b828
#rb jeremy.moore

#ROBOMERGE-AUTHOR: charles.bloom
#ROBOMERGE-SOURCE: CL 19100346 via CL 19105003 via CL 19105192 via CL 19110090
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19148337 by charles bloom in ue5-main branch]
2022-02-25 10:57:32 -05:00