Commit Graph

108 Commits

Author SHA1 Message Date
laura hermanns
29a6c72678 [Shaders] Move macro SUPPORTS_INDEPENDENT_SAMPLERS to DDSPI configuration.
While the mobile team wants to keep independent samples disbaled for PCD3D_ES3_1, it makes sense to move this as a platform dependent feature into the DDSPI configuration.

#rb brian.white, christopher.waters, Yuriy.ODonnell
[FYI] Dmitriy.Dyomin, Carl.Lloyd
#rnx

[CL 31764896 by laura hermanns in ue5-main branch]
2024-02-23 11:10:12 -05:00
christopher waters
15bc726977 Adding Barycentrics support checks
- Adding EShaderCodeFeatures::Barycentrics
- Adding GRHIGlobals.SupportsBarycentricsSemantic
- Adding FDataDrivenShaderPlatformInfo::GetSupportsBarycentricsIntrinsics to control COMPILER_SUPPORTS_BARYCENTRIC_INTRINSICS
- Adding FDataDrivenShaderPlatformInfo::GetSupportsBarycentricsSemantic to control PLATFORM_SUPPORTS_BARYCENTRICS_SEMANTIC

#jira UE-193429
#rb graham.wihlidal, mihnea.balta

[CL 29771745 by christopher waters in ue5-main branch]
2023-11-16 00:28:03 -05:00
florian penzkofer
cd93ccdb8b Support ThinTranslucent Materials in mobile renderer
OpenGL ES and Metal use framebuffer fetch.
Vulkan uses dual source blending.
For Vulkan and OpenGL ES there is a fallback shader permutation for drivers that don't support this. The fallback is the same as the existing solution that uses regular blending (i.e. looks different).
Others uses dual source blending and we force use of DXC for those shaders.
#rb Dmitriy.Dyomin, Florin.Pascu

[CL 29245271 by florian penzkofer in ue5-main branch]
2023-10-30 15:41:46 -04:00
tiantian xie
64db4ff381 Add high end ray tracing effects platform dependent flag bSupportsHighEndRayTracingEffects and apply it to guide translucent shadow.
#jira UE-196323
#rb yuriy.odonnell

[CL 28959763 by tiantian xie in ue5-main branch]
2023-10-20 06:50:16 -04:00
chris kulla
1e11a46938 RayTracing: Remove deprecated RayTraced Reflections
This functionality is now well covered by Lumen reflections which are the supported path going forward.

#jira UE-198247
#rb Aleksander.Netzel,Yuriy.ODonnell

[CL 28866153 by chris kulla in ue5-main branch]
2023-10-17 21:41:09 -04:00
guillaume abadie
4519fde3d2 Kills waveops on -d3d12 -sm5
#rb Yuriy.ODonnell
#tests win64

[CL 28678101 by guillaume abadie in ue5-main branch]
2023-10-11 15:32:33 -04:00
josh adams
630fd08da7 - Redid the quick fix for NDA PreviewPlatforms crashing Mac/Linux, as it was causing some missing menu items and/or ensures with the other fixes
[FYI] michael.wanderson
#rb trivial

[CL 28006454 by josh adams in ue5-main branch]
2023-09-19 15:02:24 -04:00
josh adams
dc8670b9b2 - FIxed the Windows PreviewPlaforms to have the correct PlatformName
#rb Jean-Michel Dignard (tested it)

[CL 28000205 by josh adams in ue5-main branch]
2023-09-19 12:40:57 -04:00
michael wanderson
42e2411043 Add support for previewing platforms on PC D3D that support more than 16 samplers (max: 32). To acheive this the following changes were required:
- Added support for up to 32 samplers to the D3D12 RHI.
- Added 'MaxSamplers' to ShaderPlatform in DataDrivenPlatformInfo, this is defaulted to 16 for all shader platforms and can be modified the the DDPI ini files. This value will set the shader compiler define 'PLATFORM_MAX_SAMPLERS'.
- Added a 'RequiredSamplersSwitch' material editor node to branch based on a given shader platform's maximum sampler count.
- To support more than 16 samplers on feature level SM5 platforms Dxc and sm6.0 are used to compile the shader. On platforms that don't support Dxc and sm6.0 the preivew menu item will be disabled.

#jira UE-191404
#rb florin.pascu

[CL 27850133 by michael wanderson in ue5-main branch]
2023-09-13 16:56:08 -04:00
graham wihlidal
0082a49c02 Add missed files in last submit
[FYI] luke.thatcher

[CL 27369193 by graham wihlidal in ue5-main branch]
2023-08-25 02:19:04 -04:00
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
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
serge bernier
7bf7dd423c Fix global usage of all cvars related to shader pipelines:
r.ShaderPipelines
r.Material.ExcludeNonPipelinedShaders

Both cvars are currently disable on WindowsEngine.ini which make them also disable when we cook for consoles. ExcludeNonPipelinedShaderTypes is currently used only at cooking time when we compile shaders which is currently returning false, since the value is disabled on windows. Making those cvars use FShaderPlatformCachedIniValue, will allow to have specific platform value when cooking for a specific target. Moving r.Material.ExcludeNonPipelinedShaders to the defaultengine.ini file to keep it disable for the moment and not affecting shader key string. Will enable it progressively on console later.


r.Shaders.RemoveUnusedInterpolators

Make that cvar platform agnostic, since it will be used in on other consoles eventually. Platforms supporting the stripping of unused interpolators will check the same flag (CFLAG_ForceRemoveUnusedInterpolators) to enable it. Since windows can run opengl, and stripping is not supported on that shader platform, add extra logic to exclude the flag.

-Make the RHISupportsShaderPipelines function access a real DDPI attribute and not just test if we are not on mobile. Will need this to be able to have stripping unused shader interpolators on Switch.

[REVIEW] Laura.Hermanns

[CL 26018371 by serge bernier in ue5-main branch]
2023-06-15 13:27:44 -04:00
florent guinier
7d5cb9e6ca NNE Only compile HLSL runtime shaders on supported platform.
What:
* Add data support flag for NNE shaders so platforms can opt in to the NNERuntimeHlsl shaders compilation.

Tests:
* NNE smoke test + style transfer demo on: win64 editor, win64 packaged

#rb ue-nni
#rnx
#jira UE-184154
#preflight 6447d1e7c632d1e89bc818f6

[CL 25185875 by florent guinier in ue5-main branch]
2023-04-25 14:43:04 -04:00
Florin Pascu
cd8651734e UX: Remove user-visible ES31 editor references and replace with Mobile
#jira UE-134173
#rb Jack.Porter
#preflight 6447ac2e641e2c3cb4227930

[CL 25178065 by Florin Pascu in ue5-main branch]
2023-04-25 07:05:08 -04:00
florin pascu
568b9363b7 Global Distance Field For Mobile
Remove bSupportsMobileDistanceField from DDSPI
#rb Dmitriy.Dyomin, Benjamin.Rouveyrol
#jira UE-103863
#preflight 642d669cf376ab43d2c75cec

[CL 24936564 by florin pascu in ue5-main branch]
2023-04-05 17:00:43 -04:00
Florin Pascu
4d6d00ad35 Set bSupportsClipDistance to false for OPENGL_PCES3_1 ShaderPlatform
#rb Dmitriy.Dyomin
#jira none
#preflight 641d5c2114423a492d1f8317

[CL 24776979 by Florin Pascu in ue5-main branch]
2023-03-24 04:34:17 -04:00
Florin Pascu
345666d77f Volumetric Support For Mobile - disabled by default in DP
Removed bSupportsVolumetricFog from DDPI
#jira UE-157201
#rb Dmitriy.Dyomin
#preflight 64119df15819afacaff56035

[CL 24652571 by Florin Pascu in ue5-main branch]
2023-03-15 07:26:45 -04:00
florin pascu
fbeaaad187 User friendly labels for Shader Preview Levels
#rb Gregory.Yepes
#preflight 63efae001d71bcd262fbf88d

[CL 24287942 by florin pascu in ue5-main branch]
2023-02-17 14:26:21 -05:00
jamie hayes
b7b09e4688 - Add a flag to data-driven shader platform information that denotes platform support for mesh shaders that support outputting SV_ClipDistance.
- Disable Nanite mesh shader rasterization when r.AllowGlobalClipPlane=1 if the platform cannot support outputting the global clip plane clip distance from a mesh shader.

#rb rune.stubbe
#rnx
#preflight 63c95a34b0652247502cec7d

[CL 23773278 by jamie hayes in ue5-main branch]
2023-01-19 10:07:12 -05:00
wei liu
2aabe45ab3 Supports thin translucent with dual src blending if it's supported on mobile platform with DXC.
It's disabled on Android because some android devices don't support dual src blending, and it's disabled on IOS because it doesn't work with MRT.


#rb Dmitriy.Dyomin, Florin.Pascu
#preflight 6391f2e7c415e8dc78348c60

[CL 23448042 by wei liu in ue5-main branch]
2022-12-08 11:50:13 -05:00
Arciel Rekman
77f1a87106 Stereo mobile preview (UE-168931)
- Implemented for D3D11 and D3D12, as Mobile Multi View (MMV) fallback on both.

  High level summary / notable changes:
  - preview shader platforms will get the necessary properties from the desktop shader platforms used to display them
  - stereo render target manager will get informed which shader platform the engine is currently using
  - regularized somewhat what happens when the editor's preview platform changes (enabling/disabling and activating/deactivating). (Preview system is confusing because it's tri-state: preview platform can be set but not active, which is the same as it not being set). More code can be de-duplicated there.
  - Multiview will be considered disabled (for scene textures at least) if, despite ViewFamily requiring it, no View actually has it enabled.
  - Patched a bunch of shaders to account for texture array RTs used for MMV (and MMV fallback).


#rb Yuriy.ODonnell
#jira UE-168931
#review
#preflight 638a41d3976b1644cb68d21a

[CL 23377965 by Arciel Rekman in ue5-main branch]
2022-12-02 15:29:35 -05:00
jeremy moore
f788d5ec3b #jira UE-166831
ComputeFramework: Disable on Vulkan platforms using DataDrivenPlatfomInfo
Do this until we fix user defined structures that don't obey Vulkan packing rules.
Avoids crashes on some drivers.
#preflight 6358533ea2609c2fae8b4d10

[CL 22798993 by jeremy moore in ue5-main branch]
2022-10-26 19:26:39 -04:00
christopher waters
d8b6c60a8e Allowing SM5 to support bindless only in RayTracing shaders.
#jira UE-162014
#rb elizabeth.baumel, yuriy.odonnell
#preflight 634456c66e400a8e20f57202

[CL 22458545 by christopher waters in ue5-main branch]
2022-10-11 11:19:10 -04:00
Arciel Rekman
458918e6fd Remove clip distance method of ISR (UE-162244)
- Assume support during the cook, do the actual check in runtime and exit if not supported.
- This slightly increases the minspec for PC projects that ship ISR to D3D 11.3 (2014-2015 level hardware).

#rb Jules.Blok, Robert.Srinivasiah
#review @Jules.Blok, @Robert.Srinivasiah
#jira UE-162244
#preflight 632b4d6cb4515b7e2272620d

[CL 22207954 by Arciel Rekman in ue5-main branch]
2022-09-27 14:35:58 -04:00