Commit Graph

3119 Commits

Author SHA1 Message Date
Mark Satterthwaite
2d3d685ec8 Dupe 4858714:
Remove obsolete alternative Metal shader frequency table that was causing PVS to spit out an invalid error.

#rb none
#jira UE-69379

[CL 4860561 by Mark Satterthwaite in Main branch]
2019-01-31 15:55:23 -05:00
Michael Kirzinger
5f4e2b4396 Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
Source: //UE4/Dev-Online 4860295

#rb none

[CL 4860323 by Michael Kirzinger in Main branch]
2019-01-31 15:08:35 -05:00
Marcus Wassmer
6995e20184 Merging //UE4/Dev-Main@4848702 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
#lockdown rolando.caloca

[CL 4854488 by Marcus Wassmer in Dev-Rendering branch]
2019-01-30 20:34:55 -05:00
Mark Satterthwaite
840de7ff29 Remove the Metal 2.1 + IABs shader version from the Mac target settings as this is an experimental feature that I don't want to expose to users as it has broken since I worked on it last.
#rb none
#jira N/A
#lockdown marcus.wassmer

[CL 4846682 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-30 14:48:54 -05:00
Marcus Wassmer
48cc6051f0 Merging //UE4/Dev-Main@4835686 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown rolando.caloca
#rb none

[CL 4836748 by Marcus Wassmer in Dev-Rendering branch]
2019-01-29 17:55:04 -05:00
Marcus Wassmer
68f340a63c Merging //UE4/Dev-Main@4825910 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
KNOWN BROKEN DO NOT SYNC
#lockdown rolando.caloca

[CL 4827063 by Marcus Wassmer in Dev-Rendering branch]
2019-01-28 21:04:21 -05:00
Rolando Caloca
1e8145dc6d DR - Workaround GL generating bad packed uniforms when OpenGL.EmulatedUBs = 1
#rb none
#rnx
#lockdown Marcus.Wassmer

[CL 4824387 by Rolando Caloca in Dev-Rendering branch]
2019-01-28 14:57:30 -05:00
Yuriy ODonnell
e14bcf53e8 Implemented support for wave operation intrinsics (Shader Model 6.0) as an extension of SP_PCD3D_SM5, available when running on compatible hardware and D3D12.
Wave intrinsics can be enabled for a shader by providing CFLAG_WaveOperations to the compiler flags in ModifyCompilationEnvironment().
Run-time availability must be queried by checking GRHISupportsWaveOperations before trying to use a shader that uses wave intrinsics.

Removed all RHI_RAYTRACING define checks from D3DShaderCompiler.cpp.

#lockdown rolando.caloca
#rb rolando.caloca
#jira UE-69133

[CL 4824116 by Yuriy ODonnell in Dev-Rendering branch]
2019-01-28 13:41:26 -05:00
Mark Satterthwaite
4ffaae2172 Support packed vector types in RW/StructureBuffer types in MetalSL.
#rb none
#jira N/A
#lockdown marcus.wassmer

[CL 4823507 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-28 12:30:54 -05:00
Yuriy ODonnell
d488ee7677 EShaderFrequency no longer depends on whether RHI_RAYTRACING is enabled. All frequencies are always defined. Some of the usage of SF_NumFrequencies is replaced with SF_NumStandardFrequencies to avoid memory and run-time overhead.
#lockdown rolando.caloca
#rb rolando.caloca
#jira UE-67956

[CL 4822693 by Yuriy ODonnell in Dev-Rendering branch]
2019-01-28 09:49:53 -05:00
Mark Satterthwaite
8ba414e181 Add an option "Force 32bit Floating Point Precision" to the iOS project settings to have the shader compiler promote all half-float operations to FP32 as some projects on iOS encounter rendering issues when fragment shader calculations run into half-float precision limits.
#jira UE-68654
#rb none
#lockdown marcus.wassmer

[CL 4804101 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-24 15:59:40 -05:00
Rolando Caloca
fa661dc3c0 DR - Copying //UE4/Dev-Main@4791431 to //UE4-DevRendering
#rb none
#rnx
#lockdown Marcus.Wassmer

[CL 4791510 by Rolando Caloca in Dev-Rendering branch]
2019-01-23 17:49:19 -05:00
Rolando Caloca
732810a13b DR - Copying //UE4/Dev-Main@4785067 to //UE4-DevRendering
#rb none
#rnx
#lockdown Marcus.Wassmer

[CL 4790611 by Rolando Caloca in Dev-Rendering branch]
2019-01-23 17:01:56 -05:00
Rolando Caloca
12beff7e67 DR - Fix static analysis warning
#codereview Mark.Satterthwaite
#rb none
#rnx

[CL 4771011 by Rolando Caloca in Dev-Rendering branch]
2019-01-22 12:39:16 -05:00
Mark Satterthwaite
79cd81f246 Remove tessellation function constant as we can use linear-textures to achieve the same result which means we no longer need separate variants of the shader. DrawIndexedPrimitiveUP can no longer draw a tessellated mesh - but that was never advisable anyway.
#rb none

[CL 4757784 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-18 20:19:31 -05:00
Marcus Wassmer
e83575daa4 Merging //UE4/Dev-Main@4754280 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Major update is from Niagara stream.

[CL 4757171 by Marcus Wassmer in Dev-Rendering branch]
2019-01-18 18:16:57 -05:00
Mark Satterthwaite
4294baba11 Remove a lot of dead-code for Metal tessellation that hasn't been touched in the last few years and that won't be revived at this stage.
#rb none

[CL 4757159 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-18 18:10:25 -05:00
Yuriy ODonnell
fb5c2d1ad6 Renamed D3D11ShaderCompiler.cpp -> D3DShaderCompiler.cpp, as it is now used for both DXBC and DXIL shader compilation.
#rb Rolando.Caloca

[CL 4756477 by Yuriy ODonnell in Dev-Rendering branch]
2019-01-18 17:33:00 -05:00
Daniel Wright
dc8e85ddc6 Renamed FDrawingPolicyRenderState -> FMeshPassProcessorRenderState
#rb none

[CL 4736358 by Daniel Wright in Dev-Rendering branch]
2019-01-16 16:09:39 -05:00
Daniel Wright
b364f8fc15 Removed legacy Drawing Policies and Static Mesh Draw Lists. These are now replaced by FMeshDrawCommand / FMeshPassProcessor everywhere in the renderer.
Implemented FMeshDrawCommand support for IndirectArgsBuffer, which is used by Niagara.
#rb none

[CL 4734925 by Daniel Wright in Dev-Rendering branch]
2019-01-16 14:28:24 -05:00
Marcus Wassmer
fee98d3ca5 Merging //UE4/Dev-Main@4729937 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none

[CL 4730169 by Marcus Wassmer in Dev-Rendering branch]
2019-01-15 18:30:06 -05:00
Marcus Wassmer
a8d6cc952b Merging //UE4/Dev-Main@4700769 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none

[CL 4729861 by Marcus Wassmer in Dev-Rendering branch]
2019-01-15 18:04:38 -05:00
Mark Satterthwaite
ae9401146d Remove all support for Metal prior to Metal 1.2 on iOS/tvOS and Metal 2.0 on macOS. This permits some fairly radical simplifications and removal of a number of workarounds.
- All Buffer<>/RWBuffer<> objects are now bound as texture2d or texture_buffer, unless they are 3-component, in which case they are bound as raw T* buffer pointers.
- 3-component Buffer/RWBuffer objects should now work - Metal needed to use packed_* types internally as normal 3-component types in Metal are the same size as 4-component types which is different to HLSL. This is untested as we have no such example.
- Texture Gather/GatherCompare operations have been fixed and should now work.
- Remove all the TypedBufferFormat function-constant specialisation infrastructure and metadata as it is no longer necessary.
- Remove all the raw-conversion for 1, 2 and 4 component vector types as it is no longer required.
- Fixed input qualifiers (centroid, linear, etc.) for Fragment shader inputs - they should now work.
- Remove a bunch of Metal specific shader changes due to buffer type casting and swizzling that will now just work.
- Use the BGRA vertex format for FColor on Metal when available (everywhere but iOS/tvOS 10 using Metal 1.2).
- Simplify ShouldCompilePermutation & similar functions now that we have fewer versions to support.

#rb none
#jira N/A

[CL 4729845 by Mark Satterthwaite in Dev-Rendering branch]
2019-01-15 18:01:31 -05:00
rolando caloca
e90e521aa6 DR - Switch depth buffer to 32 bit on PC D3D11 and D3D12 and allow switching back to 24bit using r.d3d12.Depth24Bit
#jira UE-39577
#rb Jonas.Meyer

[CL 4704844 by rolando caloca in Dev-Rendering branch]
2019-01-10 16:50:50 -05:00
Rolando Caloca
e10b4c74a2 DR - Remove unused cvars from D3D shader compiler
- Write D3D asm file when dumping shaders
#rb none
#rnx

[CL 4688090 by Rolando Caloca in Dev-Rendering branch]
2019-01-08 08:57:22 -05:00