195 Commits

Author SHA1 Message Date
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
joe kirchoff
73351e628e UnrealBuildTool: Remove VS2019 as a supported source code access ide
#jira UE-190039

[CL 28384888 by joe kirchoff in ue5-main branch]
2023-10-02 13:37:03 -04:00
david harvey
bdb4199eeb Remove unnecessary WindowsHWrapper.h & MinWindows.h include - both files will be automatically included by AllowWindowsPlatformTypes.h
#jira UE-152863
#rnx
#rb Josh.Adams

[CL 26912096 by david harvey in ue5-main branch]
2023-08-08 05:50:53 -04:00
bryan sefcik
da92084a12 Optimized out more private modules includes and dependencies.
#preflight 64627c382965f6ea8ea83bd6

[CL 25479683 by bryan sefcik in ue5-main branch]
2023-05-15 16:26:12 -04:00
jeannoe morissette
75364b7008 VulkanRHI: Add VULKAN_SM6. Move features and requirements around to match what was done on d3d.
#rb arciel.rekman, carl.lloyd
#preflight 643996128901e5ef982dc887

[CL 25045731 by jeannoe morissette in ue5-main branch]
2023-04-14 14:26:06 -04:00
christopher waters
9528ba3b7a Moving WindowsTargetPlatform headers to Public for even wider access.
[CL 24372050 by christopher waters in ue5-main branch]
2023-02-22 18:03:13 -05:00
christopher waters
aa19fcb984 Moving some headers to an Internal path.
Touching the build.cs to invalidate the old paths.

[CL 24371987 by christopher waters in ue5-main branch]
2023-02-22 18:01:27 -05:00
christopher waters
6e30ddb01e Dependency cleanup around DataDrivenShaderPlatformInfo and a few other headers.
#preflight 63921e6a67018b14b5925197

[CL 23454104 by christopher waters in ue5-main branch]
2022-12-08 15:35:35 -05: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
Yuriy ODonnell
e741d25317 Add CVar r.RayTracing.RequireSM6 (default=0) to explicitly control when ray tracing shaders/features should be available, instead of relying on project target platform shader model settings. This is required because target platform settings are not available when running a packaged game.
The engine uses GRayTracingPlaformMask to compute ShouldCompilePermutation() for shaders. This is filled based on platform settings and capabilities when running the editor. When running a standalone game, the mask is filled purely based on whether ray tracing is enabled for the project (r.RayTracing) and the current runtime environment supports it (GRHISupportsRayTracing).

The new CVar is meant to be consistent between the cook time and run time. This is achieved by setting GRHISupportsRayTracing=false when running on SM5 if r.RayTracing.RequireSM6 is 1.

#rb christopher.waters
#preflight 631f8c8680642a7fa783ca18
#jira UE-163012

[CL 21971785 by Yuriy ODonnell in ue5-main branch]
2022-09-12 16:27:08 -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
christopher waters
0a6873668c The Windows Feature Level checkboxes should prompt the user to restart.
#jira UE-156930
#rb mihnea.balta, kenzo.terelst
#preflight 62fba5c0cf7afa018ba1feda

[CL 21405137 by christopher waters in ue5-main branch]
2022-08-16 10:59:06 -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
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
6bea9a80b6 Always support ray tracing shaders when cooking for SM6
* RT shaders are still excluded from SM5 if project is configured to not cook SM5 shaders for D3D12

#rb chris.kulla
#jira UE-158270
#preflight 62d1d478e468fcfd0b97d55a

[CL 21117293 by Yuriy ODonnell in ue5-main branch]
2022-07-15 17:23:41 -04:00
yuriy odonnell
cadadf9780 Add "TargetedRHIs" to the list of settings evaluated in GetRayTracingShaderFormats()
* This is necessary because some (pre UE 5.1) projects use this instead of D3D12TargetedShaderFormats, etc.

#rb jason.nadro
#jira UE-158270
#preflight 62c47a332f31b87c6c91fb52

#ROBOMERGE-AUTHOR: yuriy.odonnell
#ROBOMERGE-SOURCE: CL 20947047 via CL 20947122 via CL 20947433
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20950739 by yuriy odonnell in ue5-main branch]
2022-07-05 17:48:45 -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
f9ebb7fd57 remove unused bSupportDX11TextureFormats in WindowsTargetPlatform
#rb none
#preflight none

[CL 20348934 by charles bloom in ue5-main branch]
2022-05-24 11:23:44 -04:00
charles bloom
0d6b70e857 fix TargetPlatform calls to GetDefaultTextureFormatNamePerLayer changed by 20227025
the bad value passed to BlockSize was not actually used so behavior was not actually broken

#preflight 628bb9cc016e5daa1cbc21e5
#rb jon.olick

[CL 20335399 by charles bloom in ue5-main branch]
2022-05-23 15:28: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
Jon Olick
0a7be0f773 Removed bSupportDX11TextureFormats, functionality is no longer necessary. Pushed functionality of bSupportDX11TextureFormats down to target platform code.
#preflight 6282816acf7e4667a999a6ea

[CL 20227025 by Jon Olick in ue5-main branch]
2022-05-16 13:05:50 -04:00
Josh Adams
a28f038a2c - Fix for Streamdeck devices showing up under WinGDK platform
#rb nuno.leiria
#preflight 627439a02e58cb727d0caa66

[CL 20064649 by Josh Adams in ue5-main branch]
2022-05-05 17:07:31 -04:00
Joe Kirchoff
ef9cb95ddf Deprecate VS2017 source code accessor
#rnx
#rb trivial
#jira UE-97614
#preflight 624b404dc667881bf42bbddc

[CL 19613373 by Joe Kirchoff in ue5-main branch]
2022-04-04 15:06:27 -04:00