Commit Graph

501 Commits

Author SHA1 Message Date
Laura Hermanns
71b90823ed Force DXC precompilation when FXC contains an "internal error: out of memory" report.
#rb Jason.Nadro
#jira FORT-478366
#preflight 62840e8f82530182723e144b
#rnx

[CL 20260406 by Laura Hermanns in ue5-main branch]
2022-05-18 09:58:29 -04:00
christopher waters
1e01768e33 Bindless shader parameters
- Adding support for bindless resources/samplers. The loose resources have to be wrapped in a macro that generates an index and proxy resource when bindless is enabled. Reflection has to parse these differently from other resources since they're parsed as uint parameters. The runtime also has to bind these differently since they end up needing to find their real resource in the binding data and then update a constant buffer.
- To assist in conversions, the shader compiler will detect if a shader is compiled with both bindless and non-bindless resources/samplers and will emit errors if that is the case.
- Adding support for bindless Uniform Buffer resources/samplers. Because Uniform Buffers aren't per-shader, they'll always update their constants with the bindless indices of their resources.
- Adding more flags to FShaderCodePackedResourceCounts required changing all the array initializations to individual parameters since not all the new flags are used everywhere.
- No shaders have been configured to support bindless resources/samplers. Yet.

#jira UE-139616
#rb zach.bethel, arciel.rekman
#preflight 6282b8ec44349a6581a21a39

[CL 20250348 by christopher waters in ue5-main branch]
2022-05-17 16:30:48 -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
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Jeremy Moore
07188d9a76 Remove USE_WPO_PRECISE
Instead make the output VelocityPrevScreenPosition interpolant INVARIANT which is a better match for the other approaches to INVARIANT in the shader code.
Initially the USE_WPO_PRECISE code was added for DXBC only, to prevent mismatch between depth and base pass. This type of error was later more widely fixed by 19392831.
This fix led to another need for USE_WPO_PRECISE. That came from the output position now being (correctly) INVARIANT but the output VelocityPrevScreenPosition didn't have INVARIANT. This could lead to very different calculations between current and previous position and therefore incorrect velocity vectors.
#preflight 62755e8be31cfc52d5c5d21d

[CL 20080347 by Jeremy Moore in ue5-main branch]
2022-05-06 14:03: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
christopher waters
4e12726208 Migrating back to using UniformBuffer structs.
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.

#jira none
#rb mihnea.balta
#preflight 626c1762ce3959ce8fe7766e

[CL 20026049 by christopher waters in ue5-main branch]
2022-05-03 11:09:45 -04:00
Laura Hermanns
f73012d4af Rebuild ShaderConductor as appendix to CL 19924020. Bumped GUID numbers in *Common.ush headers.
#rb Christopher.Waters
#jira none
#rnx
#preflight 62685030853fdb6fddd3992f

[CL 19927891 by Laura Hermanns in ue5-main branch]
2022-04-26 16:27:45 -04:00
Laura Hermanns
c951912300 Rebuild ShaderConductor for Win64, Mac, and Linux with DXC update from Apr 2022.
Replace outdated DXC API headers from DirectX SDK folder with primary DXC source folder.

#review-19909455 19605490
#fyi Mihnea.Balta, Rolando.Caloca, Jeannoe.Morissette, Will.Damon, Brandon.Schaefer, Michael.Sartain, Guillaume.Abadie, Graham.Wihlidal, Christopher.Waters
#jira none
#rnx
#preflight 6267ec17853fdb6fddb97dd5

[CL 19924020 by Laura Hermanns in ue5-main branch]
2022-04-26 13:29:01 -04:00
Jeremy Moore
1b2a1e57ea #jira UE-149712
Use MakePrecise() on WPO
This was happening for FXC compiler but not DXC compiler.
It was causing broken velocity vectors, and broken editor outlines on SM6.
#preflight 6260629add47b4ad2180eb83

[CL 19837321 by Jeremy Moore in ue5-main branch]
2022-04-20 16:18:10 -04:00
eric mcdaniel
bf7658a0f6 [Backout] - CL19813742
- backing out due to assertions in Vulkan shader compiler
  - constant buffer renaming causes failures to lookup parameter name

#preflight 625f6ed5e239763df51ba585
#fyi christopher.waters

Original CL Desc
-----------------------------------------------------------------
Migrating back to using UniformBuffer structs.
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.

#jira none
#rb kenzo.terelst
#preflight 625edc5f034d8924cdcc35e2

[CL 19825755 by eric mcdaniel in ue5-main branch]
2022-04-19 22:40:31 -04:00
christopher waters
5c395bb058 Migrating back to using UniformBuffer structs.
Since the cbuffer uses the same name as the struct, we have to rename the cbuffer using a consistent prefix. The reflection handling also needs to reinterpret the renamed cbuffer as the correct UniformBuffer.

#jira none
#rb kenzo.terelst
#preflight 625edc5f034d8924cdcc35e2

[CL 19813742 by christopher waters in ue5-main branch]
2022-04-19 14:32:30 -04:00
Laura Hermanns
8559b47f2f Allow environment variable FXC to be used with shader debugging batch scripts to avoid hardcoded system path.
#rb Arciel.Rekman
#fyi Christopher.Waters, Rolando.Caloca
#jira none
#rnx
#preflight 6230dc44fc4d442f893619c1

[CL 19793860 by Laura Hermanns in ue5-main branch]
2022-04-18 16:37:06 -04:00
christopher waters
46d39f296a Reorganizing reflection handling to funnel through common functions.
This is a prerequisite for upcoming bindless changes as it centralizes key points where we register the different binding types.

#jira none
#rb jason.nadro, eric.mcdaniel, jeannoe.morissette
#preflight 62574453f7476d662c8dd2fe

[CL 19761676 by christopher waters in ue5-main branch]
2022-04-14 15:46:20 -04:00
Jason Nadro
e76f354daa Set InstructionCount when compiling shaders with DXC
- This fixes an issue where all SM6 compiles were reporting 0 instructions.

#rb christopher.waters
#jira FORT-468097
#preflight none

[CL 19742347 by Jason Nadro in ue5-main branch]
2022-04-13 13:37:00 -04:00
christopher waters
0a8074d5a5 RemoveUniformBuffersFromSource shouldn't implicitly call TransformStringIntoCharacterArray.
#jira none
#rb jason.nadro
#preflight 624ddf0f090236773a1ad8c1

[CL 19656058 by christopher waters in ue5-main branch]
2022-04-06 17:19:38 -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
dmitriy dyomin
d5741f624b Added option to disable usage of a baked landscape mesh on mobile platforms (r.Mobile.LandscapeMesh)
#rb jack.porter

#ROBOMERGE-OWNER: dmitriy.dyomin
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19528072 via CL 19528235 via CL 19528695 via CL 19528703
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532768 by dmitriy dyomin in ue5-main branch]
2022-03-28 16:28:57 -04:00
avudnez
a8d559fbad PR #9001: Fix building LiveCodingConsole with clang-cl (Contributed by avudnez)
#rb self
#rnx
#jira UE-146904
#preflight 623b78e4ca34ffd7bf7f9874

[CL 19484226 by avudnez in ue5-main branch]
2022-03-23 15:59:49 -04:00
Charles deRousiers
546f1b27c6 Add ROV type support for shader binding.
#rb mihnea.balta
#jira none
#preflight 623b31aaca34ffd7bf7ca796

[CL 19481254 by Charles deRousiers in ue5-main branch]
2022-03-23 13:02:24 -04:00
Josh Adams
1135fdcfd4 - Windows and Linux SteamDeck devices in C++
#preflight 623901536c69188bd9928f54

[CL 19459810 by Josh Adams in ue5-main branch]
2022-03-21 19:07:30 -04:00
Josh Adams
58f5121a45 - Moved SteamDeckDevice.h to DesktopPlatform so that Windows and Linux can share it, without making a whole module for one header
#rb brandon.schaefer
#jira none
#preflight 6238eb85ec68595f3b7c42df

[CL 19458311 by Josh Adams in ue5-main branch]
2022-03-21 17:23:57 -04:00
Jason Nadro
65a90154a6 Add scoped cpu markers to various D3D shader compiler functions to make this easier to profile when shader compilation is done in process.
#rb trivial
#jira none
#preflight 62389f8fec68595f3b78e9df

[CL 19453136 by Jason Nadro in ue5-main branch]
2022-03-21 12:17:22 -04:00
Lukas Hermanns
2e57229bd3 Added uint64_t type to lexer grammar of HlslParser and improved warning output for removal of unused shader interpolators.
#rb Christopher.Waters
#fyi Kevin.Ortegren
#jira UE-145738
#rnx
#preflight 623219ca6d230f4cc800a13d

[CL 19409711 by Lukas Hermanns in ue5-main branch]
2022-03-16 15:04:39 -04:00
brandon schaefer
5141cd3106 Add initial support for Deploying Windows games to the SteamDeck through .ini entries
#jira UE-145123
[REVIEW] [at]Josh.Adams
#rb Josh.Adams, David.Harvey
#preflight 6230b118f33750e39249d834

#ROBOMERGE-OWNER: brandon.schaefer
#ROBOMERGE-AUTHOR: brandon.schaefer
#ROBOMERGE-SOURCE: CL 19389680 in //UE5/Release-5.0/... via CL 19391874
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19402230 by brandon schaefer in ue5-main branch]
2022-03-16 03:01:51 -04:00