49 Commits

Author SHA1 Message Date
christopher waters
d61776236d Vulkan also supports barycentrics.
[CL 29771748 by christopher waters in ue5-main branch]
2023-11-16 00:28:08 -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
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
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
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
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
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
Arciel Rekman
f040de9c33 Enable native MMV for preview platforms when running editor on Vulkan (UE-147903)
#rb Rob.Srinivasiah, Erica.Stella
#jira UE-147903
#review
#preflight 6470c853cc626ec165a45c30

[CL 25643164 by Arciel Rekman in ue5-main branch]
2023-05-26 11:02:46 -04:00
christopher fiala
06499f360a Support VRS for desktop Vulkan via the VK_KHR_fragment_shading_rate extension.
#jira UE-130115
#rb jeannoe.morissette
#preflight 64666081a133ca477bbf08e2
#preflight 64665acbec5109088b37a84e

[CL 25533897 by christopher fiala in ue5-main branch]
2023-05-18 17:09:09 -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
jeannoe morissette
c3af71b9f6 VulkanRHI: Fix Lumen tests for VULKAN_SM5
#rb trivial
#preflight none

[CL 25086435 by jeannoe morissette in ue5-main branch]
2023-04-18 10:51:27 -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
jeannoe morissette
e12504b6f7 Vulkan: Fix the missing "Disable Preview" option in in Vulkan when using preview modes. Disable preview modes for the same FeatureLevel until all issues are resolved.
#rb Florin.Pascu
#jira UE-171188
#preflight 64258b4a710ec8400fdafbd8
#rnx
#lockdown mihnea.balta

[CL 24854662 by jeannoe morissette in ue5-main branch]
2023-03-30 11:19:46 -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
laura hermanns
7ada60f6d9 Fix DXC/SPIR-V bug with empty structs and re-enable Nanite for Vulkan.
Several PRs have been filed on GitHub for DXC (PR 5017, PR 5020) and SPIRV-Tools (PR 5107).
Integrated from CL 23998474.

Workaround for DXC rewriter bug: Have member function definition inside struct declaration.
Integrated from CL 23976367.

Explicitly initialize TNaniteWritePixel members as empty structs expose further bugs in SPIR-V backend of DXC.

Rebuild ShaderConductor for Win64, Mac, and Linux (Empty struct fix).

#rb Jason.Nadro, JeanNoe.Morissette, Carl.Lloyd
[FYI] Brian.Karis, Graham.Wihlidal, Rune.Stubbe
#jira UE-175538, UE-172568
#preflight 63eae0eab91ae11c1ceceed2
#rnx

[CL 24214167 by laura hermanns in ue5-main branch]
2023-02-14 12:14:10 -05:00
Jeremy Moore
c533fd3e16 #jira UE-168524
Enable ComputeFramework on PC Vulkan.
#preflight ini file only

[CL 23645731 by Jeremy Moore in ue5-main branch]
2023-01-11 10:51:42 -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
Brian Karis
3e4cfdf78b Until Vulcan supports SM6 properly Nanite is disabled.
#preflight

[CL 23442553 by Brian Karis in ue5-main branch]
2022-12-07 23:17:52 -05: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
florin pascu
5669253244 - Add Disable Preview Menu Option
- GetFriendlyShaderPlatformName removed
- RHIShaderPlatformDefinitions.inl deleted
- Added FriendlyNames to all ShaderPlatforms in DDSPI
- MenuText now comes from FriendlyNames in DDSPI
#rb Jack.Porter
#jira none
#preflight 632b1f8c826e0c2fe9a9d5d2

[CL 22118730 by florin pascu in ue5-main branch]
2022-09-21 14:35:21 -04:00
jeannoe morissette
0d54854d1f VulkanRHI: Add implementation of bindless samplers using VK_EXT_descriptor_indexing.
#fyi dmitri.dyomin, carl.lloyd, robert.srinivasiah, yuriy.odonnell, aleksander.netzel
#rb christopher.waters
#jira UE-139618
#preflight 6319f6482b7fe03eb6aab931

[CL 21988350 by jeannoe morissette in ue5-main branch]
2022-09-13 14:16:19 -04:00