Commit Graph

93 Commits

Author SHA1 Message Date
Marcus Wassmer
a084868df7 Remove SM4
#rb rolando.caloca

[CL 7993270 by Marcus Wassmer in Dev-Rendering branch]
2019-08-13 13:51:12 -04:00
Guillaume Abadie
61d78d391f Removes the store action on the render target binding that is just redondant.
#rb zach.bethel

[CL 7562289 by Guillaume Abadie in Dev-Rendering branch]
2019-07-23 14:26:29 -04:00
Guillaume Abadie
ba8e8da17f Fixes unecessary TexCreate_RenderTargetable and TexCreate_UAV flags in the renderer that are being caught by RDG
#rb none

[CL 7505787 by Guillaume Abadie in Dev-Rendering branch]
2019-07-22 22:15:11 -04:00
zach bethel
92073af9c8 Remove ERDGPassFlags::None and ERenderGraphPassFlags.
#rb none
#fyi guillaume.abadie
#jira none

[CL 7328560 by zach bethel in Dev-Rendering branch]
2019-07-16 18:13:25 -04:00
Tiantian Xie
c280df72de Added experimental support for Burley Normalized Subsurface Scattering.
1. Burley is disabled by default. To preview it, you need to 1) set r.SubsurfaceScattering.Type to 1 and 2) check the enable burley box in the profile.
2. Burley parameters always update from Separable. To disable it, set r.SSS.Burley.AlwaysUpdateParametersFromSeparable to 0.

#rb krzysztof.narkowicz
#jira none

[CL 7289867 by Tiantian Xie in Dev-Rendering branch]
2019-07-12 11:50:25 -04:00
zach bethel
f50bc28c62 Post Process Materials ported to RDG.
#rb Zabir.Hoque
#jira none

[CL 7073468 by zach bethel in Dev-Rendering branch]
2019-06-18 16:58:24 -04:00
Rolando Caloca
83354ba5f6 Merging //UE4/Dev-Main@7063110 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
#rnx

[CL 7064716 by Rolando Caloca in Dev-Rendering branch]
2019-06-18 13:00:17 -04:00
Rolando Caloca
a71b641115 DR - Deprecate FSamplerStateRHIParamRef
#rb none

[CL 6595052 by Rolando Caloca in Dev-Rendering branch]
2019-05-21 10:37:48 -04:00
zach bethel
32c641a7d9 Eliminate CachedRHI union and direct casting to FRHIResource**
#jira none
#rb Guillaume.Abadie

[CL 6401673 by zach bethel in Dev-Rendering branch]
2019-05-09 14:20:46 -04:00
Krzysztof Narkowicz
8c41f14e9d Fixed SSS. Intermediate SSS render target needs to be RGBA, as alpha stores depth which is used for the subsuface blur.
#rb Zachary.Bethel
#jira UE-73339

[CL 6112073 by Krzysztof Narkowicz in Dev-Rendering branch]
2019-04-26 15:31:23 -04:00
Rolando Caloca
375d9f4455 DR - Fix CIS warnings
#fyi Zach.Bethel, Guillaume.Abadie
#rb none
#rnx

[CL 6098241 by Rolando Caloca in Dev-Rendering branch]
2019-04-25 15:48:22 -04:00
Guillaume Abadie
742f980e6f Fixes separate translucency fallback that was wrong, and yet unecessarily applied when separate translucency has been disabled.
This changes now explicitly write in code if a input is required using CreateRDGTextureForRequiredInput(), or optional CreateRDGTextureForOptionalInput() or should create a fallback with CreateRDGTextureForInputWithFallback() because still needed something because no permutation without it are existing.

#rb zach.bethel
#fyi juan.canada

[CL 6068769 by Guillaume Abadie in Dev-Rendering branch]
2019-04-23 18:38:43 -04:00
zach bethel
f2155c9f82 Cleanup / Refactor of ScreenPass implementation, and bug fixes.
- Fixed regression with checkerboard rendering and odd render target sizes. The passes were not guaranteed to produce
   a UV coordinate centered on an input pixel for each output pixel.

 - Fixed regression when visualizing SSS at native screen resolution (i.e. no secondary spatial upsampling). The issue was that
  the rendering composition graph injects the backbuffer as the last texture in the post processing pipeline. If visualize SSS was
  the last pass, it would overwrite the backbuffer texture, causing visual artifacts.

 - Minor performance improvement for multi-view SSS. All views in a split-screen scenario now render into the same output target (instead
   of ping ponging between multiple targets) and only views not utilizing SSS get copied from the source target. The is reduces the worst case
   of viewport copied from O(N^2) to O(N); if all viewports use SSS (common in VR), then no copies are performed.

 - Removed FScreenPassTexture in favor of more selective pairing of FRDGTextureRef and FScreenPassTextureViewport. This reduces
   some boilerplate and extraneous memory copying. Motion blur passes now compute their viewport shader parameters once.

#jira UE-72787
#rb Guillaume.Abadie

[CL 6059686 by zach bethel in Dev-Rendering branch]
2019-04-23 13:26:51 -04:00
Yuriy ODonnell
2f6ec94f5a Fixed allocation of temporary FScreenPassContext objects that lead to memory leaks.
FScreenPassContext::Create used to allocate FScreenPassContext objects on FMemStack, however it has a non-trivial destructor which was never called.

Instead of allocating temporary objects on the FMemStack automatically to ensure that they remain alive for the duration of GraphBuilder lifetime, FRDGBuilder::AllocObject() has been added. It explicitly associates the lifetime of allocated temporary object with the specific graph builder.

Correct destructors are automatically called when FRDGBuilder itself is destroyed.

#jira UE-72802
#rb Guillaume.Abadie

[CL 5975133 by Yuriy ODonnell in Dev-Rendering branch]
2019-04-18 05:04:59 -04:00
Lukas Hermanns
deebda3874 Fixed shared samplers in MotionBlur and Subsurface shaders for GL backend.
#rb Rolando.Caloca
#rnx

[CL 5925632 by Lukas Hermanns in Dev-Rendering branch]
2019-04-16 17:12:15 -04:00
zach bethel
51bea3c01b Refactored Screen Pass utilities and Subsurface Scattering Implementation.
- Removed samplers from input struct, since most samplers are shared between inputs.
 - Introduced the FScreenPassTextureParameters struct, describing pixel / UV rect dimension
   used to sample from a region of the texture in HLSL. Centralizes a lot of the common math
   operations currently being done ad-hoc or exposed in PostProcessCommon.ush.

 - Removed FScreenPassInput in favor of a non-shader parameter class called FScreenPassTexture. This
   data structure pairs together the RDG texture and screen pass shader parameters. This allows pass
   inputs to carry important state like which view rect is being used; this provides a more scalable alternative
   to 'SceneColorViewRect' and 'ReferenceBufferSize'.

 - Added an FScreenPassTextureViewportTransform struct that is designed to map UVs from one texture space
   to another. For example, from the upsampled temporal AA UV to velocity UV.

 - Replaced view-specific parameters with screen pass parameters in the subsurface shader.

#rb Guillaume.Abadie
#jira none

[CL 5833674 by zach bethel in Dev-Rendering branch]
2019-04-11 19:32:04 -04:00
Ola Olsson
e3ef53dd71 Clustered deferred shading implementation.
- Added clustered deferred pixel shader & supporting code (using render graph)
- GetSubsufaceProfileTexture_RT now returns non-const pointer to make it work with RegisterExternalTexture
- Added FSortedLightSetSceneInfo to store the sorted lights and ranges, moved light sorting to before light grid injection.
  - Moved light sorting to own function: FDeferredShadingSceneRenderer::GatherAndSortLights
  - Added Simple Lights to the sorted light array.
  - Lights supporting clustered deferred now have their own sub-range (which include rect lights without a source texture)
- Added ranges of light indices to the FForwardLightData such that the shader can skip any lights that are not supported by clustered deferred (but they are there for other operations)
- Added flag to say if the lights were injected in the light grid.
- Added 'DummyRectLightSourceTexture' to FForwardLightData to use as the fallback rect light source texture instead of the clearly invalid DeferredLightData
- Refactored light grid injection to use RenderGraph and more convenient parameter setting.
- Added light type to local light data stored for light grid (2 bits packed into uint used for shadow map channel mask / lighting channel mask)
- Fix for light complexity that was influenced by translucent rendering (in an incorrect way).
- Added "r.DebugLightDiscardProp" / GDebugLightDiscardProp that allows discarding a proportion of the visible lights, to check performance scaling.
- Reorganized tiled deferred shader to reduce register pressure.
- Light grid build:
  - Added view-space light data to speed up light grid build
  - Added slightly improved cone culling test and re-ordererd the tests for better performance.
- Removed dead code: declaration of 'FClusteredLightsSceneInfo'
- Added Preexposure fix (also fixed exposure for light culling visualization)

#rb brian.karis

[CL 5771848 by Ola Olsson in Dev-Rendering branch]
2019-04-06 04:43:26 -04:00
Yuriy ODonnell
2854f05f03 Fixed compile error in some configs due to FRDGEventName construction in ComputeSubsurface()
#rb none

[CL 5683905 by Yuriy ODonnell in Dev-Rendering branch]
2019-04-02 06:32:38 -04:00
zach bethel
d8596faf0e Subsurface scattering post process passes now use new RenderGraph API.
- Cleaned up surrounding code so that subsurface post process code is referenced from one place.
 - Cleaned up shaders to be more consistent and to better support the new parameter struct system.
 - Refactored shaders to use new permutation API and shader parameter APIs.

#jira none
#rb Brian.Karis

[CL 5677263 by zach bethel in Dev-Rendering branch]
2019-04-01 19:37:48 -04:00
Rolando Caloca
932a718f97 DR - Merging //UE4/Dev-Main@5196773 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
#rnx

[CL 5208164 by Rolando Caloca in Dev-Rendering branch]
2019-02-26 16:43:29 -05:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00
Guillaume Abadie
d123ff35c9 Cherry-pick 4529073: Adds support for the visualize texture tool in render graph.
This split the GVisualizeTexture in two:
* first part that capture any texture using a pixel shader, implemented using render pass, that render graph can just automatically insert where needed;
* Second part to present on screem still in Renderer module, because using things like FCanvas, requiring

Depth buffer visualization is broken, because needs to have more functionality in FRDGTextureSRVDesc.

#rb none

[CL 4588745 by Guillaume Abadie in Dev-Rendering branch]
2018-11-21 20:22:47 -05:00
Matt Collins
96be068b75 Render Passes
Self-contained PostProcessing effects.

#jira UERNDR-292
#rb rolando.caloca

[CL 4514307 by Matt Collins in Dev-Rendering branch]
2018-10-26 19:28:13 -04:00
Guillaume Abadie
c72b7a33d8 Merging //UE4/Dev-Rendering-Graph@4492585 to Dev-Rendering (//UE4/Dev-Rendering)
This implements the framework to write the high level rendering code into passes organized in direct acyclic graph. It is also unifying the uniform buffer, shader parameters, and pass parameters to same single API: structures with run time meta data. This allow high level user code be extremely seamless, user code debugging, and render graph ease of implementation and debugging.

Issue of collaborative work of Arne Schnober, Brian Karis, Daniel Wright, Marcus Wassmer and Guillaume Abadie.

Names of the graph managed resources are not final.

#rb Arne.Schnober, Brian.Karis, Daniel.Wright, Marcus.Wassmer

[CL 4492694 by Guillaume Abadie in Dev-Rendering branch]
2018-10-19 17:36:35 -04:00
Marcus Wassmer
8522799c64 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4072632)
#lockdown Nick.Penwarden

============================
  MAJOR FEATURES & CHANGES
============================

Change 3870267 by Arne.Schober

	DR - SafeRelease SRVs that might be hold by the Vertexfactories (maybe due to indirect use in GlobalResources)
	Note that the VFs are not owners of the data, e.g the underlying Buffers might be released before this and this reference counting should be uneccessary

Change 3872507 by Arne.Schober

	Back out changelist 3870267

Change 3988916 by Marcin.Undak

	Quail/Linux compilation fix #rb none #codereview arciel.rekman

Change 4042277 by Rolando.Caloca

	DR - Clear UBs between PSOs on D3D to help track down not setting resources

Change 4042297 by Arne.Schober

	DR - Fix case where LPV requires SSAO to run but no GBuffer is available in formward mode. In this case we force the behaviour to use the simple AO (as ASyncAO pass)
	#jira UE-42135

Change 4042404 by Jian.Ru

	Fix a race condition when RT is disabled and then re-enabled
	#jira

Change 4042437 by Richard.Wallis

	Mac Localization - Mac now uses FUICommand and NSLOCTEXT to build main menu items.  Don't fetch menu items using name since that could change.  Lookup using ID's.

	Note:
	New CB function binding system in *FStartupApplicationToMacMenuBinder*.  Added to simplify the existing and new CB function binding.

	Update:
	Application menu now also gets an update on runtime langauge changed event.  Other menu's get updated anyway as per runloop updates.

	#jira UE-49526

Change 4042602 by Guillaume.Abadie

	Adds support for alpha channel in DOF.

Change 4042603 by Guillaume.Abadie

	Gates global sampler behind SUPPORTS_INDEPENDENT_SAMPLERS for nicer error messsage on platform that do not support them.

Change 4042671 by Guillaume.Abadie

	Massages DOF's shader code for HLSLCC.

Change 4042772 by Mark.Satterthwaite

	Expose the MTLComputePipelineState's label string.

Change 4043013 by Juan.Canada

	Fixed bounds of skeletal meshes could be inverted (min > max) with negative scaling. That was breaking occlusion tests in some scenes, creating flicking issues.
	#jira UE-49290

Change 4043171 by Rolando.Caloca

	DR - Workaround crash on hlslcc

Change 4043182 by Uriel.Doyon

	Fixed skylight issues when using pre-exposure.
	Improved IndirectIrradiance gbuffer encoding when using pre-exposure.

Change 4043452 by Mark.Satterthwaite

	Extensively refactor the MetalRHI GPU profiling code. There is now a "MetalProfiler Start/Stop/Frames=X" in-game command that will spit out JSON files similar to the platform-agnostic TracingProfiler, but this displays the command-buffer encoding and execution which actually makes sense with Metal where we can't arbitrarily insert requests for time-stamps and breaking command-buffers/encoders is expensive.

Change 4044732 by Richard.Wallis

	Fix for macOs restoring to fullscreen results in render with large black border.  Also tested that is fix doesn't seem to re-introduce UE-51270 (CL 3696161).  There appears to be an edge case that can cause the toogleFullScreen: method to not correctly expand window frame to the full screen size - we end up with a frame size of the previous setting.  Forcing the correct values doesn't fix the issue - the only consistant fix seems to be to re-introduce the - (NSSize)window:(NSWindow *)window willUseFullScreenContentSize:(NSSize)proposedSize delegate method.

	#jira UE-57549

Change 4044741 by Guillaume.Abadie

	Fixes a couple of regressions in DOF when using temporal upsampling.

Change 4044753 by Guillaume.Abadie

	Fixes a bug in WaveBroadcastIntrinsics.ush

Change 4045010 by Guillaume.Abadie

	Creates TM-DepthOfField in QAGame to test DOF.

Change 4045417 by Jian.Ru

	Prevent recursive flush
	#jira

Change 4045923 by Mark.Satterthwaite

	Further insulate private plugin usage within MetalRHI.

Change 4046006 by Mark.Satterthwaite

	Simplify dependency on the private module and hope it now builds properly.

Change 4046612 by Mark.Satterthwaite

	Apple A9 introduced support for baseVertex & baseInstance, earlier GPUs don't support it at all. The code was incorrectly compiling shaders assuming they did at given Metal shader standard versions. Instead we always compile mobile shaders assuming they don't support base index & vertex and for dektop shaders we now need an A9 or better GPU for it to work.

	#jira UE-55234

Change 4047504 by Mark.Satterthwaite

	Supress warnings about the missing module when not available or enabled. Also make it work on all Metal platforms.

Change 4048765 by Uriel.Doyon

	Fixed compilation issue from CL 4048308

Change 4048776 by Guillaume.Abadie

	Fixes a static pixel projection regressions in TAA caused by alpha channel support in DOF.

Change 4049059 by Mark.Satterthwaite

	Thread names in the MetalProfiler output and don't load the private module when selecting a device as it isn't useful anymore.

Change 4050290 by Mark.Satterthwaite

	Sort out the timebase for all the different Metal clocks when profiling - everything is now in microseconds and seems to line up! Need to rework all the other timing code similarly - but not in this commit.

Change 4050822 by Mark.Satterthwaite

	Partial custom counter support - still has bugs.

Change 4051210 by Guillaume.Abadie

	Dumps PermutationID of shader when shader compile worker crashes.

Change 4051652 by Guillaume.Abadie

	Optimises DOF's reduce with wave broadcast instrinsics.

Change 4051839 by Mark.Satterthwaite

	Tiny fix to changing custom counters.

Change 4052553 by Guillaume.Abadie

	Implements GATHER_INPUT_LAYOUT_RGB_SEPARATE_COC to save texture bandwidth in gather pass.

Change 4052611 by Guillaume.Abadie

	Fixes a crashes in light shaft.

Change 4052916 by Mark.Satterthwaite

	Extend the Mac & iOS Frame-Pacer API to proivde the target output time and the intended duration so that the MetalProfiler can record the display V-Blank window.

Change 4053111 by Rolando.Caloca

	DR - hlslcc - RequiresNegateDDY()

Change 4053402 by Mark.Satterthwaite

	Add instrumentation for buffer & texture allocation and shader & pipeline compilation to MetalProfiler. Everything that I personally care to track should now be in place but the implementation details are grim so there's still plenty of room for improvement.

Change 4053454 by Mark.Satterthwaite

	More attempts to allow the builders to compile for Mac in such a fashion that the private module's perfectly innocuous headers don't cause an error.

Change 4053765 by Guillaume.Abadie

	Fixes a failure in DOFGather's ShouldCompilePermutation() caused by R11G11B10 change.

Change 4053911 by Marcus.Wassmer

	Copying //Tasks/UE4/Dev-Rendering-RectLight@4053906 to Dev-Rendering (//UE4/Dev-Rendering)

Change 4053915 by Marcus.Wassmer

	Attempt to fix what looks like some unity build rearrangement issue.

Change 4053916 by Marcus.Wassmer

	Fix PS4 shader compile issues.  Point seems to be a reserved keyword in PSSL

Change 4054642 by Rolando.Caloca

	DR - Fix SCW not showing correct callstack/exception info on crashes

Change 4054661 by Mark.Satterthwaite

	Make thre MetalBackend convert depth texture sampls to float4 from float to match the expected return type and fix compiler errors.

	#jira UE-58670

Change 4054780 by Guillaume.Abadie

	Cuts number of shader permutation for DOF's gather pass from 138 to 41.

Change 4054950 by Rolando.Caloca

	DR - vk - Fix negated ddy

Change 4055019 by Guillaume.Abadie

	Cuts number of shader permutation for tonemapper from ~2k to 64.

Change 4055144 by Guillaume.Abadie

	Adds an ensure to catch when there is too many permutations on a global shader.

Change 4055240 by Krzysztof.Narkowicz

	Checkboard subsurface fix for resolutions non divisible by 2. Align up subsurface prepare buffer, so downsampling always pickups correct pixel from the full-res buffer.
	#jira FORT-79981

Change 4055323 by Rolando.Caloca

	DR - Fix GLSL-based platforms

Change 4055387 by Guillaume.Abadie

	Adds a point mirror between foreground and background bokeh to be phisically accurate.

Change 4055403 by Rolando.Caloca

	DR - Fix uninitialized var causing crash

Change 4055709 by Guillaume.Abadie

	Fixes a crash in SunTemple.

Change 4055771 by Guillaume.Abadie

	Fixes DOF's reduce pass being compiled for SM4.

	#jira UE-58714

Change 4055876 by Rolando.Caloca

	DR - hlslcc - Fix crash during loop analysis on empty if() blocks

Change 4056026 by Rolando.Caloca

	DR - Enable volumetric fog on Vulkan

Change 4056272 by Guillaume.Abadie

	Exposes new DOF settings in post process settings.

Change 4056460 by Brian.Karis

	Fix uniform buffer assert.

Change 4057151 by Guillaume.Abadie

	Fixes a bug in DOF's temporal stability gathering pass.

Change 4057220 by Guillaume.Abadie

	Cherry-picks and reworks experimental AO decal from GDC 2017's The Human Race demo.

	AO decal are on purpose not supported with ASync AO, because the proper way location to do that would be right before whenever a pass use it, but is currently challenging to track down considering the screen space AO buffer is used a by a lot of different passes through the scene texture uniform buffer.

	#jira UE-53997

Change 4057587 by Rolando.Caloca

	DR - Enable Diaphgram DOF on Vulkan

Change 4058022 by Guillaume.Abadie

	Exposes new DOF settings to UCineCameraComponent

Change 4058136 by Guillaume.Abadie

	Replaces Circle DOF with Diaphragm DOF on supported platforms by default, with renderer settings to fallback.

Change 4058338 by Jostin.Bilyeu

	Checking in new map for verifying Mobile rendering features in conjunction with TAAU

Change 4058352 by Matt.Collins

	Wrapped NSString for lambda capture.

Change 4058500 by Rolando.Caloca

	DR - Fix bad normals & tangents on GL mobile

	#jira UE-57769

Change 4058723 by Rolando.Caloca

	DR - vk - Split device pipeline cache off generic cache file

Change 4058782 by Mark.Satterthwaite

	Rebuild Mac hlslcc for 4055876

Change 4058791 by Mark.Satterthwaite

	Force MetalBackend to pick up new hlslcc.

Change 4058840 by Guillaume.Abadie

	Fixes a bug in DOF's scalability setting groups

Change 4058928 by Daniel.Wright

	Fixed dangling FSceneViewStateReference references getting created when scene capture reallocates its ViewStates array

Change 4059141 by Marcus.Wassmer

	PR #3799: Fix for leak in BatchedLines (Contributed by DSDambuster)

Change 4059227 by Brian.Karis

	Fix for simple forward

Change 4059269 by Marcus.Wassmer

	Update test screenshots to account for minroughness changes from devrectlight

Change 4059478 by Mark.Satterthwaite

	It looks like FMetalCompiledShaderCache was misusing FRWScopeLock in ways that I can't believe even compiled - it looks like it ended up creating and destroying the scope-lock as a temporary rather than treating it as a block-local variable.

	#jira UE-58773

Change 4059870 by Guillaume.Abadie

	Works arround an HLSLCC bug in DOF's recombine pass that was using a AtomicMax(asfloat(MyFloat)).

	#jira UE-58850

Change 4060324 by Rolando.Caloca

	DR - Very minor render pass

Change 4060328 by Rolando.Caloca

	DR - vk - Fix crash when running with r.Vulkan.DelayAcquireBackBuffer=0

Change 4060461 by Jostin.Bilyeu

	Updated test map for use during Mobile Rendering based testing. Map name TM-Mobile_TAAU

Change 4060698 by Marcus.Wassmer

	Merging xbox compile fix

Change 4060930 by Marcus.Wassmer

	Fix android compile

Change 4060971 by Mark.Satterthwaite

	Some missing #defines to guard functions that require an external plugin.

	#jira UE-58910

Change 4061104 by Guillaume.Abadie

	Whitelists mobile tonemapper's high number of permutation in mean time it gets fixed by UE-58014.

	#jira UE-58900

Change 4061364 by Jostin.Bilyeu

	updated Test map TM-TAAU_Mobile to added lighting importance volume, reflection spheres etc.

Change 4061743 by Mark.Satterthwaite

	Fix another build error for iOS.

	#jira UE-58827

Change 4061753 by Arne.Schober

	DR - Higher precision (16bit per channel) for RecomputeTangent and Skincache
	#jira UE-58525

Change 4062236 by Mark.Satterthwaite

	AppleTV doesn't appear to support the set*Bytes APIs in Metal.

	#jira UE-58580

Change 4062320 by Guillaume.Abadie

	Enables bokeh simulation on scattered bokeh on Epic post process settings.

Change 4062402 by Guillaume.Abadie

	Phiscally animates the rotation of the bokeh as aperture changes.

Change 4062587 by Mark.Satterthwaite

	Fix another Ocean compile error.

	#jira N/A

Change 4062811 by Marcus.Wassmer

	Only do newton iterations for area lights
	Fixes a host of AMD-only bugs

Change 4063174 by Marcus.Wassmer

	Workaround shipping build compile error for all clang platforms.

Change 4063760 by Guillaume.Abadie

	Changes the default number of diaphragm blades to 7.

Change 4063992 by Marcus.Wassmer

	Fix DX12 crash when depthboundstest not available.

Change 4064233 by Rolando.Caloca

	DR - Proper fix for GL changes related to tangents

	#jira UE-58948

Change 4064323 by Uriel.Doyon

	Increase the max number of uavs to 16

	#jira 58898

Change 4064428 by Guillaume.Abadie

	Fixes a crashes on XB1 when doing async SSAO.

Change 4064525 by Uriel.Doyon

	Better logic for depth bound support in d3d12.

	#jira 58956

Change 4064694 by Jian.Ru

	Fix a bug in FMaterialBakingModule::ReadTextureOutput caused by uninitialized variables

Change 4064873 by Guillaume.Abadie

	Fixes wrong resource transitions in DOF's reduce passes.

Change 4064956 by Guillaume.Abadie

	Disables R11G11B10 optimisations on platforms that can't supports more than 8 UAVs.

Change 4065215 by Arne.Schober

	DR - Make Clang Happy the standart says: "A variable or non-overloaded function whose name appears as a potentially-evaluated expression is odr-used unless it is an object that satisfies the requirements for appearing in a constant expression (5.19) and the lvalue-to-rvalue conversion (4.1) is immediately applied."
	In English this means that when the reference is taken (or it is passed by reference) the pointers could be compared and therefore needed to be allocated.

Change 4065312 by Guillaume.Abadie

	Fixes D3D12RHI doing a draw indexed indirect behind a DrawPrimitiveIndirect()

Change 4070361 by Guillaume.Abadie

	Fixes resource transitions for PS4. PS4 RHI's logic to check for resource transition is still buggy.

Change 4070778 by Marcus.Wassmer

	Fix bad merge

Change 4071337 by Rolando.Caloca

	DR - vk - Do not spam log

Change 4048308 by Uriel.Doyon

	Merging //UE4/Partner-MGPU to Dev-Rendering (//UE4/Dev-Rendering) at CL 4047519 :
	- Fixed d3derror when resizing the window in multi-gpu.
	- Fixed d3d12 checks when exiting in multi-gpu.
	- Command context containter can now only be used with a single gpu mask. This cleans up passing the mask everywhere.
	- RenderPass now reuse the current GPUMask instead of assuming the view mask. Decoupling furter more the binding.
	- Removed of IRHIComputeContext::GetContextForGPUMask().
	- Removed GPUMask from QueueRenderThreadCommandListSubmit and QueueCommandListSubmit since it is now a member of FRHICommandListBase.
	- FRHICommandListBase::CopyContext() can not change anymore the GPUMask and the target list must have the same GPUMask as the reference one.
	- Command lists now have a GPU mask set at creation time.
	- Support for immediate command list GPU mask.
	- Using the new SCOPED_GPU_MASK where we previously used a new command list on the stack.
	- Refactored most NodeMask naming to GPUMask, and also "const FRHIGPUMask&" to "FRHIGPUMask".
	- Commandline option "-mgpu" is now replaced by "-MaxGPUCount=" and "-PresentGPU="
	- Multi-gpu modes are now controlled through  -mgpumode={ gpu0, gpu1, broadcast, avr, afr }
	- Defines WITH_SLI and WITH_MGPU now control the path to multi-gpu support in the engine.
	- Variable GNumActiveGPUsForRendering is now split in  GNumAlternateFrameRenderingGroups and GNumExplicitGPUsForRendering.

[CL 4072858 by Marcus Wassmer in Main branch]
2018-05-15 11:11:48 -04:00