2019-12-26 14:45:42 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "PostProcess/PostProcessMotionBlur.h"
# include "StaticBoundShaderState.h"
# include "CanvasTypes.h"
# include "RenderTargetTemp.h"
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3461187)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3388286 on 2017/04/11 by Chris.Bunner
Fix mips in texture GnmUAV creation.
Change 3388287 on 2017/04/11 by Chris.Bunner
Improved PS/CS code sharing for TemporalAA.
Change 3388291 on 2017/04/11 by Chris.Bunner
HLODs now correctly hide their children in shadow maps.
Propagate bCastFarShadow flag on HLOD generation.
#jira UE-42254
Change 3388448 on 2017/04/11 by Brian.Karis
Better handle divide by zero
Change 3388449 on 2017/04/11 by Brian.Karis
Optimizations to shading model math.
PR #3340: Bug fixes related to shader TODOs (Contributed by vgfx)
Change 3388455 on 2017/04/11 by Uriel.Doyon
Changed Remove for RemoveSwap when clearing dynamic component references
Change 3388612 on 2017/04/11 by Simon.Tourangeau
Support shaders in projects and in plugins
When searching for a shader it will
- First look in Engine/Shaders as usual
- Then in project's Shader folder
- Then in all enabled plugin Shader folders
Project or plugin must be loaded in PostConfigInit phase
Tested in PIE, engine (cooked, packaged)
Change 3388819 on 2017/04/11 by Arne.Schober
DR - Faster MorpthTarget implementation. Changed the previous Gather aproach to a scatter based one. Reaching about 110GB/s on PS4 which is up to 4x faster than the previous implementation. On PC DX11 the impact is lower due to unecessary UAV barriers but still 2x faster on AMD and up to 6x faster on Nvidia Hardware.
#RB Lina.Halper, Rolando.Caloca
Change 3388862 on 2017/04/11 by Guillaume.Abadie
Allows Motion Blur and TAA in scene capture 2d.
Change 3388953 on 2017/04/11 by Uriel.Doyon
Fixed issue where lights from hidden levels where affecting the lighting build, by checking if the light is registered before adding it.
#UE-43220
Change 3389138 on 2017/04/11 by Arne.Schober
DR - Fix crash when opening a Level without Contentbrowser open.
#RB Matt.Kuhlenschmidt
Change 3389400 on 2017/04/11 by Uriel.Doyon
- Renamed FMaterialResource::IsSeparateTranslucencyEnabled() to FMaterialResource::IsTranslucencyAfterDOFEnabled()
- Removed different logic to determine if translucency after DOF was enabled, and centralized it into a single function: FSceneViewFamily::AllowTranslucencyAfterDOF()
- FSceneRenderTargets::FinishRenderingSeparateTranslucency() now only resolves a single view, allowing better Begin/Finish scopes.
- Renamed FSceneRenderTargets::SeparateTranslucencyDepthRT into FSceneRenderTargets::DownsampledTranslucencyDepthRT since this one is only allocated when rendering in downsampled mode.
- Standard translucency is now rendered in the same resolution than translucency after DOF. (downsampled or full resolution)
- Removed RenderTranslucencyParallel and merged it's logic into RenderTranslucency. Renamed DrawAllTranslucencyPasses to RenderViewTranslucency and added a parallel version RenderViewTranslucencyParallel.
- Moved all debug draw logic (VisualizeLPV, ViewMeshElements and SimpleElementCollector) to a common place.
- New option "r.AllowDownsampledStandardTranslucency" to control the downsampling of standard translucency. Affect blend module materials
#jira UE-39505
Change 3389860 on 2017/04/12 by Richard.Wallis
UE-41407 Cable actor does not render correctly in viewport on Mac.
Build the mesh at creation time - call into exisiting mesh create function.
Change 3390933 on 2017/04/12 by Arne.Schober
DR - potential fix for UE-43125 where the this pointer might get invalidated in the middle of the function
#RB Marcus.Wassmer
Change 3391010 on 2017/04/12 by Ben.Marsh
Compile UE4Game non-unity for Mac as part of nightly builds in //UE4/Dev-Rendering.
Change 3391412 on 2017/04/12 by Uriel.Doyon
Mesh Decals are now sorted according to the component TranslucencySortPriority.
#jira UE-43053
Change 3392117 on 2017/04/13 by Guillaume.Abadie
Integrates Raven's experimental PCSS for cascaded shadow map hidden behind a CVar.
Change 3392179 on 2017/04/13 by Guillaume.Abadie
Attempts to fix linux compilation by removing mistakenly submitted dead code.
Change 3392231 on 2017/04/13 by Guillaume.Abadie
Fixes a wrong enum value real quick in FRenderingObjectVersion I introduced after main integration... Oups...
Change 3393879 on 2017/04/14 by Guillaume.Abadie
Attempts to fix linux compilation warning.
Change 3393881 on 2017/04/14 by Guillaume.Abadie
Back out changelist 3393879
Change 3393882 on 2017/04/14 by Guillaume.Abadie
Attempts #2 to fix linux compilation error.
Change 3394100 on 2017/04/14 by Chris.Bunner
Corrected material shared sampler usage with mip-biasing.
Change 3394174 on 2017/04/14 by Rolando.Caloca
DR - Change ensure to warning
Change 3394221 on 2017/04/14 by Marcus.Wassmer
Fix poseable mesh bounds calculation.
Change 3396238 on 2017/04/17 by David.Hill
Fix Bloom with LensFlare
Duplicating fix - will also fix directly in 4.16
#jira 44050
Change 3397055 on 2017/04/17 by Joe.Graf
Fixed Windows specific assumptions in Slate File Dialog Window's file filtering that lead to crashes
#CodeReview: matt.kuhlenschmidt
#rb: n/a
Change 3397921 on 2017/04/18 by Joe.Graf
Rewrote SlateFileDlgWindow's file filtering to allow for extensionless file selection and to remove the O(n^2) file filtering
#CodeReview: arciel.rekman, matt.kuhlenschmidt
#rb: n/a
Change 3398406 on 2017/04/18 by Rolando.Caloca
DR - Fix shaders in plugins on Mac
Change 3399546 on 2017/04/19 by Benjamin.Hyder
Updating content for test levels (HDR, Bloom_FFT, DistanceFields_IndirectShadows)
Change 3399725 on 2017/04/19 by Guillaume.Abadie
Avoids compiling PCSS shaders for SM4.
Change 3400295 on 2017/04/19 by Michael.Trepka
Fixed metal shader compile errors in MorphTargets.usf
Change 3400457 on 2017/04/19 by Michael.Trepka
Merged Rolando's shader fixes
Change 3400473 on 2017/04/19 by Arne.Schober
DR - provide Aftermath Reason when init failed.
#RB none
Change 3400699 on 2017/04/19 by Arne.Schober
DR - Fixed Text macro
#RB none
Change 3402280 on 2017/04/20 by Simon.Tovey
Minor cascade fix
#tests no crash
#jira UE-41560
Change 3402517 on 2017/04/20 by Arne.Schober
DR - Fix static analysis warning
#RB none
Change 3403897 on 2017/04/21 by Arne.Schober
DR - [UE-43898] - Someone missed a shaderversion bump which poisoned the DCC
#RB None
#jira UE-43898
Change 3404591 on 2017/04/21 by Olaf.Piesche
#jira UE-41979
Should never be crashing there, unless the mesh is changed after Init of the effect instance; this change safeguards against the number of mesh sections (and hence materials) changing after creation of the dynamic data to avoid the crash.
Change 3407451 on 2017/04/25 by Daniel.Wright
Fixed Indirect Lighting Cache updates caused by capsule indirect shadows forcing point samples, breaking primitives using ILCQ_Volume
Change 3407452 on 2017/04/25 by Daniel.Wright
Added r.AOJitterConeDirections, although disabled by default because it requires the temporal filter to be much stronger
Change 3408397 on 2017/04/25 by Daniel.Wright
ViewFamily.bRealtimeUpdate is set to false if Slate is throttling (like when toggling show flags). Volumetric fog discards the temporal history when not realtime, so you can see changes immediately.
Change 3408428 on 2017/04/25 by Daniel.Wright
Changed 'r.AOMaxObjectsPerCullTile' default back to 512 as 256 causes artifacts with RTDF shadows
Change 3409764 on 2017/04/26 by Daniel.Wright
Force dumping shader debug info for Global shaders when r.ShaderDevelopmentMode is enabled. Most of the shaders you want to look at in a GPU capture are global shaders, and global shaders create few debug files. 'recompileshaders global' time 35s -> 38s for SM5.
Change 3411659 on 2017/04/27 by Daniel.Wright
[Copy] Set Xbox One engine default screen percentage to 83.33 (1600x900), as ESRAM choices are dependent on this
Change 3411660 on 2017/04/27 by Daniel.Wright
[Copy] Global distance field composite shader has a version for each flattened axis, which improves efficiency when updating a slab which is what camera movement typically causes
Change 3411667 on 2017/04/27 by Daniel.Wright
[Copy] Discard distance field AO history buffer if it doesn't match the new buffer size. This prevents reading uinitialized data after a scene render target resize.
Change 3411668 on 2017/04/27 by Daniel.Wright
[Copy] Better indirect capsule shadow draw event info
Change 3411669 on 2017/04/27 by Daniel.Wright
[Copy] Pass down FeatureLevel to AddSubjectPrimitive and GatherShadowsForPrimitiveInner instead of calling the scene's virtual function. Showed up prominently in a sampling profile.
Change 3411755 on 2017/04/27 by Daniel.Wright
[Copy] Occlusion queries are now always done before the base pass if a nearly full prepass is being used(DDM_AllOccluders or DDM_AllOpaque)
* Removed r.OcclusionQueryLocation
Change 3411827 on 2017/04/27 by Daniel.Wright
[Copy] Much cheaper implementation of IsForwardShadingEnabled which showed up prominently in sampling profiles - inlined function and no more unnecessary thread safety overhead
Change 3411829 on 2017/04/27 by Daniel.Wright
Added an ensure to console manager when doing FindTConsoleVariableData* on a FAutoConsoleVariableRef
Change 3411837 on 2017/04/27 by Daniel.Wright
[Copy] Worked around slow memcpy's being used to sort FSortedLightSceneInfo
Change 3411838 on 2017/04/27 by Daniel.Wright
[Copy] Skip tracking MaterialRenderProxyMap on cooked platforms
Change 3411843 on 2017/04/27 by Daniel.Wright
[Copy] Fixed r.ParallelShadows on PS4 and enabled by default engine-wide (saves 5ms RT with CSM)
* Gnm was not tracking DepthClearValue when a depth target was set but not cleared
* Gnm has a bug where TargetsNeedingEliminateFastClear does not persist across commandlist breaks. Moved FinishRenderingGBuffer before RenderShadowDepthMaps to workaround (accidentally not in this changelist)
* Shadow depth rendering was not using BindClearMRTValues to populate GNM parallel commandlist TargetsNeedingEliminateFastClear values
Change 3411873 on 2017/04/27 by Daniel.Wright
[Copy] Deferred uniform expression caching. Setting multiple parameters on a material only causes its uniform expressions to be recached once.
* 280 calls to CacheUniformExpressions -> 120 during Fortnite combat (6.5ms -> 3.4ms)
Change 3411891 on 2017/04/27 by Daniel.Wright
[Copy] GatherShadowPrimitives optimizations
* Total GatherShadowPrimivies went from 2.3ms -> 1.3ms on PS4 with these changes in GPUPerfTest (duplicated 3x)
* Much flatter primitive octree (16 -> 256 max primitives)
* Primitives are culled against the shadow frustum before FPrimitiveSceneInfo or FPrimitiveSceneProxy are dereferenced in FilterPrimitiveForShadows
* FilterPrimitiveForShadows work is done in a ParallelFor. Primitive octree nodes are processed in different jobs.
* StaticMeshWholeSceneShadowBatchVisibility now only stores entries for meshes with bRequiresPerElementVisibility (landscape). Previously it was allocating and zeroing 500Kb 3x per frame (main view + 2 cascades) which cost ~.8ms on PS4.
Change 3412192 on 2017/04/27 by Michael.Trepka
Fixed Clang compile errors in FortniteGame, partial copy of CL 3313426
Change 3412547 on 2017/04/27 by Daniel.Wright
Fixed leak of FShadowMapAllocation and FLightMapAllocation's found by licensee
Change 3414239 on 2017/04/28 by Arne.Schober
DR - UE-44500 - Removed use of Structured Buffer from MorphTargets due to HLSLCC not supporting it.
#RB none
#jira UE-44500
Change 3414754 on 2017/04/28 by Daniel.Wright
Added VolumetricFogEmissive to ExponentialHeightFogComponent
* Volumetric fog does not yet support precomputed lighting, so this is the only way to get an ambient lighting term
Change 3416859 on 2017/05/01 by Arne.Schober
DR - Remove FeatureLevel from the Clear Functions to reduce area of error
#RB Rolando.Caloca
Change 3420750 on 2017/05/03 by Arne.Schober
DR - [UE-44497] - Fix several PS4 validation layer issues
#RB Marcus.Wassmer
Change 3422869 on 2017/05/04 by Benjamin.Hyder
Fix compile error from merge.
Change 3423938 on 2017/05/04 by Marc.Olano
[UE-44453] Fix bloom problems by moving saturate after vector math
Change 3424494 on 2017/05/04 by Olaf.Piesche
#jira UE-44589
When using FindTCosoleVariableData, the CVar can not be an FAutoConsoleVariable.
#tests as described in jira ticket
Change 3424754 on 2017/05/04 by Uriel.Doyon
Fixed call to get texture compressor module outside the main thread.
#jira UE-42168
Change 3425447 on 2017/05/05 by Uriel.Doyon
#buildfix
Change 3427042 on 2017/05/05 by Arne.Schober
DR - Fix one of my typos
#RB none
Change 3428119 on 2017/05/08 by Marcus.Wassmer
Fix UE-44733
static analysis warning.
Change 3428222 on 2017/05/08 by Uriel.Doyon
Fixed bad condition in translucency rendering
#jira UE-44452
Change 3429794 on 2017/05/08 by Uriel.Doyon
Fixed issues with lightshafts and low res translucency.
#jira UE-44452
Change 3430921 on 2017/05/09 by Rolando.Caloca
DR - Get additional function pointers for D3DReflect, Compile and Disassemble instructions from the same DLL when compiling D3D11 shaders.
- Also fixes using the correct fxc.exe path to match the DLL we distribute.
Change 3431156 on 2017/05/09 by Rolando.Caloca
DR - Remove unused code
Change 3431396 on 2017/05/09 by David.Hill
Copy of changes made directly in 4.16 ( CL 341037 )
to be submitted to dev-rendering
#jira UE-44641
Change 3431400 on 2017/05/09 by Rolando.Caloca
DR - Fix typo
Change 3431527 on 2017/05/09 by David.Hill
#rb: none
Oops.
comment out r.ShaderDevelopmentMode =1
Change 3431590 on 2017/05/09 by Daniel.Wright
Removed early return landmine in USceneCaptureComponent2D::Serialize
Change 3431591 on 2017/05/09 by Daniel.Wright
Disallow map building while in PIE, or PIE while buildling lighting
Change 3431594 on 2017/05/09 by Daniel.Wright
Added RenderTargetFormat to UTextureRenderTarget2D, with choices of 8 bit, 16fp, 32fp and 1, 2 or 4 channels.
Change 3431667 on 2017/05/09 by Daniel.Wright
Volumetric fog now supersamples lighting when the history is not available, reducing noise on areas that just came on-screen or after a camera cut.
* The number of samples is controlled by r.VolumetricFog.HistoryMissSupersampleCount, defaults to 4, cinematic scalability uses 16
* Under fast camera movement, volumetric fog cost went from 1.79ms -> 1.97ms with 4 samples, on a 970GTX
Change 3432366 on 2017/05/10 by Richard.Wallis
Fix for MetalRHI Asserts When Using "Profile GPU" With RHI-Thread/Parallel-Execution. Don't insert events when not in RHIThread or the actual single-threaded-render thread.
#jira UE-36006
Change 3432367 on 2017/05/10 by Richard.Wallis
Fix for Metal ReStartRenderPass assert with profiling. macOS metal asserts when using "profileGPU" even with -norhithread argument set.
Added no action to the allowed render pass restart store actions for the depth buffer avoiding the assert. Interested to know the details if this is not a valid assumption to make - throwing away the depth buffer after a render pass I think would be a common case.
#jira UE-44322
Change 3432409 on 2017/05/10 by Richard.Wallis
Merged across CL 3415890 from Release-4.16 fix for (jira UE-43895)
Fix for deferred store actions getting cleared when we don't have a valid render target.
Change 3432833 on 2017/05/10 by Daniel.Wright
Fixed Ocean compile error
Change 3432874 on 2017/05/10 by Marc.Olano
Improved captions for Noise and VectorNoise material nodes
Change 3432947 on 2017/05/10 by Richard.Wallis
Fix for shared Material Native Shader Libraries Don't Function With Iterative Cooking. Keep latest versions of shader byte code in native shared material packaged build in an intermediate directory than can be reused on a later iterative cook.
- Doesn't handle deletion of the intermediate directory contents. Assumed to be a higher level requirement on non iterative cook flag.
#jira UE-44657
Change 3433484 on 2017/05/10 by Arne.Schober
DR - UE-44393 - Move ShaderPlatform into TShaderMap for extra debuginformation when it fails to find a proper shader. Also log when Gobalshaders are verified and recompiled.
#jira UE-44393
#RB Daniel.Wright
Change 3433515 on 2017/05/10 by Arne.Schober
DR - Fix a bug where recompileshaders changed while compiling causes a crash where the chached local vertex factories are mutated while been used.
#RB Daniel.Wright
Change 3433606 on 2017/05/10 by Daniel.Wright
Fixed static shadowing of volumetric fog and translucency causing shadowing past the lightmass importance volume.
Change 3433619 on 2017/05/10 by Daniel.Wright
Skip recapturing reflection captures when PropagateLightingScenarioChange is being called for a level unload. This leaves stale results in reflection captures around when hiding a level in the editor, but avoids the double recapture that happens when swapping lighting scenarios in game, and the unnecessary reflection capture update when exiting PIE.
Change 3433795 on 2017/05/10 by Arne.Schober
DR - add cmdline to select a GPU vendor when multiple GPUs from differnt Vendors are installed into the same Machine
#RB marcus.Wassmer
Change 3433941 on 2017/05/10 by Daniel.Wright
Cone vs tile bounding sphere intersection tests for Light Grid culling of spotlights, which provides much tighter culling than just View space tile AABB vs light bounding sphere.
* Forward shading BasePass 3.7ms -> 2.4ms in a scene with 24 spotlights on 970GTX
* Volumetric fog 2.87ms -> 2.09ms in the same scene
Change 3435139 on 2017/05/11 by Daniel.Wright
Restored GTextureRenderTarget2DMaxSizeX which is used by Ocean
Change 3435297 on 2017/05/11 by Arne.Schober
DR - Remove manual AlignOf and use C++11 keyword instead
#RB Steve.Robb
Change 3435367 on 2017/05/11 by Daniel.Wright
Circle vertex buffer for slightly tighter voxelization of volumetric fog shadowed lights
* 1.5ms -> 1.38ms on 970 GTX with 24 spotlights
Change 3435522 on 2017/05/11 by Brian.Karis
Dither opacity mask now stacks properly for non parallel polys. Dither is randomized by triangle normal.
Change 3436063 on 2017/05/11 by Daniel.Wright
Disabled CLB_AggressiveBatching for PC d3d12 as it causes flickering artifacts in lighting
Change 3436269 on 2017/05/11 by Uriel.Doyon
Fixed UVChannel data possibly not up-to-date depending on user manips.
Change 3436611 on 2017/05/12 by Simon.Tovey
Improved name and tooltip for static mesh property controlling generation of alias tables for uniform sampling.
Change 3436676 on 2017/05/12 by Simon.Tovey
Fix for fixed bounds being "invalid" unless set via the toolbar option.
Change 3436700 on 2017/05/12 by Simon.Tovey
Crash fix.
Issue found in https://udn.unrealengine.com/questions/355944/crash-in-fdynamicspriteemitterdatagetdynamicmeshel.html
Particle proxies would have stale material resource pointers if the material is changed while the system was invisible.
If the old material is freed during this time, the next time the system renders it will crash.
Change 3437367 on 2017/05/12 by Brian.Karis
Fixed bug with small UV charts not packing.
Change 3437860 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI alignment is 4 for int64
#RB none
Change 3437972 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI function calls cannot take alingned structures. In all of the cases the copy was completely unnecessary.
#RB none
Change 3437975 on 2017/05/12 by Chris.Bunner
Added calculation for MaterialParamsEx to MeshDecals.usf.
#jira UE-43052
Change 3438109 on 2017/05/12 by Rolando.Caloca
DR - Support for -nomcpp on SCW
Change 3438889 on 2017/05/15 by Chris.Bunner
Nullptr check in a few material uniform expressions.
Change 3439351 on 2017/05/15 by Chris.Bunner
Added tooltip to Power material expression.
Change 3439763 on 2017/05/15 by Daniel.Wright
Apply passed in DistanceBiasSqr to line lights - allows volumetric fog to reduce aliasing on line lights
Change 3439764 on 2017/05/15 by Daniel.Wright
Fixed order of operations with bTreatMaxDepthUnshadowed - manifested as unfiltered static shadow depth lookups
Change 3440722 on 2017/05/16 by Guillaume.Abadie
Exposes Scene capture's FOV to blueprints
Change 3441680 on 2017/05/16 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3441884 on 2017/05/16 by Uriel.Doyon
Fixed StreamingDistanceMultiplier not being applied to the texture streaming data.
Change 3442800 on 2017/05/17 by Gil.Gribb
Fixed botched merge.
Change 3442896 on 2017/05/17 by Gil.Gribb
UE4 - Allowed the possibility of running the RHI "thread" on task threads instead and cleaned up and unified the conditionals involved. By default we still have a dedicated RHI thread because it tested slightly faster.
Change 3443951 on 2017/05/17 by Richard.Wallis
Added Apple override allocator macro - each command encoder type needs it's own allocator queue.
Change 3444787 on 2017/05/17 by Daniel.Wright
Fixed DBuffer decal default normal (used when DBuffer decals enabled, but not decals rendered) not reconstructing zero properly, adding -.008 to WorldNormal which then caused artifacts with forward lighting specular on materials with roughness near 0.
Change 3444882 on 2017/05/17 by Daniel.Wright
Added comment to FClearValueBinding::DefaultNormal8Bit to make the dependency on shader decode clear
Change 3444883 on 2017/05/17 by Brian.Karis
Improved contact shadows
Change 3445048 on 2017/05/17 by Daniel.Wright
Fixed particle lights in forward shading, they were not setting the lighting channel mask properly
Change 3445107 on 2017/05/17 by Michael.Trepka
Changed the order of operations in FMetalStateCache::SetRenderState to work around an issue with some Intel drivers where they would not recalculate the raster state in some edge cases.
#jira UE-43725
Change 3445212 on 2017/05/17 by Uriel.Doyon
Added a -CSV option to ListTextures command
Change 3445947 on 2017/05/18 by Richard.Wallis
Clone of Release-4.16 Stream CL 3437181 and CL 3442450 - fix(s) for black rendering on macOS El Cap with Nvidia GPU. Move sampling of EyeAdaption texture to pixel shader for Mac Metal using shader language version <= 1 only.
Change 3446545 on 2017/05/18 by Chris.Bunner
Removed hardcoded (and unused) MRT write from Decal shaders.
#jira UE-45095
Change 3446568 on 2017/05/18 by Marc.Olano
Sobol and image-based importance sampling C++ functions and blueprint nodes
Change 3446988 on 2017/05/18 by Marc.Olano
Fix build error: missing include
Change 3446990 on 2017/05/18 by Marc.Olano
Cell-indexed Sobol sampling for shaders (in MonteCarlo.usf) and materials (Sobol and TemporalSobol nodes)
Change 3447142 on 2017/05/18 by Rolando.Caloca
DR - RWLock instead of mutex for PSO cache
Change 3447144 on 2017/05/18 by Uriel.Doyon
Moved shading model code to SetGBufferFromShadingModel(). This allows the code to be reused in other shader files.
Change 3447794 on 2017/05/18 by Brian.Karis
Virtual texturing foundation code
Change 3448944 on 2017/05/19 by Arciel.Rekman
Fix non-unity Linux (and Mac, etc) builds.
- Mac fix is tentative, did not try.
Change 3449183 on 2017/05/19 by Marcus.Wassmer
Duplicate fix for reflection captures to happen after sequencer updates.
Change 3449196 on 2017/05/19 by Uriel.Doyon
Handling RCM_MinMax when reading FloatRGBA textures.
This fixes pixel inspector always reading 1 for scene color values greater than one.
Change 3451652 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45245
Change 3451660 on 2017/05/22 by Chris.Bunner
Additional compile fix.
#jira UE-45245
Change 3451897 on 2017/05/22 by Daniel.Wright
Moved RTDF shadow project back after the base pass, since it samples the GBuffer for subsurface shadowing. Removed r.DFShadowAsyncCompute which was relying on the previous ordering.
Change 3452055 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
#jira UE-45265
Change 3452089 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452108 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452179 on 2017/05/22 by Brian.Karis
Exposed dimensions. Fixed static analysis.
Change 3452734 on 2017/05/22 by Daniel.Wright
When post processing is disabled, TPT_TranslucencyAfterDOF translucency gets forced into the standard translucency pass.
Change 3452770 on 2017/05/22 by Daniel.Wright
Static light source shapes drawn into reflection captures handle SourceLength via scaled sphere
Change 3452861 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
Change 3452952 on 2017/05/22 by Brian.Karis
Small VT fixes
Change 3453647 on 2017/05/23 by Richard.Wallis
Fix for tessellation shaders on Mac (Metal v1.2) failing to compile.
#jira UE-45227
Change 3454844 on 2017/05/23 by Uriel.Doyon
Fixed extra X16 on some point lights
#jira UE-45250
Change 3454934 on 2017/05/23 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3457131 on 2017/05/24 by Arne.Schober
DR - [UE-45317] - Fix Depthbuffer not available for resolve in Forward mode
#jira UE-45317
#RB Chris.Bunner
Change 3457141 on 2017/05/24 by Marc.Olano
Sobol bug fixes
Change 3457953 on 2017/05/24 by Brian.Karis
Fix static analysis
#jira UE-45315
#jira UE-45314
#jira UE-45313
Change 3459064 on 2017/05/25 by Chris.Bunner
Fix for out of bounds material translation crash.
#jira UE-45406
Change 3459700 on 2017/05/25 by Brian.Karis
Revert using sprite index buffer because the vert order is different.
Change 3459847 on 2017/05/25 by Chris.Bunner
Fixing ensure in RenderTestMap.
[CL 3461201 by Chris Bunner in Main branch]
2017-05-26 08:22:50 -04:00
# include "SpriteIndexBuffer.h"
2019-10-01 13:03:04 -04:00
# include "PostProcessing.h"
2022-02-01 09:53:17 -05:00
# include "VelocityRendering.h"
2014-03-14 14:13:41 -04:00
2019-06-11 18:27:07 -04:00
namespace
{
2014-06-25 05:47:33 -04:00
# if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
2019-06-11 18:27:07 -04:00
TAutoConsoleVariable < int32 > CVarMotionBlurFiltering (
TEXT ( " r.MotionBlurFiltering " ) ,
0 ,
TEXT ( " Useful developer variable \n " )
TEXT ( " 0: off (default, expected by the shader for better quality) \n " )
TEXT ( " 1: on " ) ,
ECVF_Cheat | ECVF_RenderThreadSafe ) ;
2014-06-25 05:47:33 -04:00
# endif
2014-03-14 14:13:41 -04:00
2019-06-11 18:27:07 -04:00
TAutoConsoleVariable < float > CVarMotionBlur2ndScale (
TEXT ( " r.MotionBlur2ndScale " ) ,
1.0f ,
TEXT ( " " ) ,
ECVF_Cheat | ECVF_RenderThreadSafe ) ;
2015-02-24 16:28:47 -05:00
2019-06-11 18:27:07 -04:00
TAutoConsoleVariable < int32 > CVarMotionBlurScatter (
TEXT ( " r.MotionBlurScatter " ) ,
0 ,
TEXT ( " Forces scatter based max velocity method (slower). " ) ,
ECVF_RenderThreadSafe ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894)
#rb Rendering
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3658809 by Chris.Bunner
Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data.
Change 3658842 by Chris.Bunner
Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults.
Change 3695269 by Arne.Schober
DR - Make clang happy wreorder
Change 3695418 by Guillaume.Abadie
Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp.
Change 3695430 by Guillaume.Abadie
Fixes missing BeginFrame dynamic resolution event in EngineTest.
Change 3695469 by Guillaume.Abadie
Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters.
Change 3696091 by Guillaume.Abadie
Fixes Linux compilation failure in DynamicResolution.cpp
Change 3696593 by Chris.Bunner
Fixed typo in vetex factory enum.
Change 3696596 by Chris.Bunner
Added material attributes type checking to If material expression.
Updated If material expression to validate compilation of inputs.
Change 3696597 by Chris.Bunner
Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3696599 by Chris.Bunner
Fixed material instance parameter visiblity when using nested static switches across functions.
#jira UE-50878
Change 3696734 by Chris.Bunner
Return type fix.
Change 3697123 by Guillaume.Abadie
Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits.
Change 3697125 by Guillaume.Abadie
Fixes compilation failure in MaterialExpressionIf.h
Change 3697127 by Guillaume.Abadie
Fixes compilation failure in DynamicResolution.cpp on shipping build.
Change 3697135 by Guillaume.Abadie
Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest.
Change 3697199 by Guillaume.Abadie
Fixes TAA upsample's shader compilation failure on Mac.
Change 3697220 by Guillaume.Abadie
Makes static analysis happy again.
Change 3697280 by Chris.Bunner
Fixing up invalid casts in material layers validation.
Change 3697366 by Rolando.Caloca
DR - hlslcc - Fix warning
#jira UE-43988
Change 3697451 by Rolando.Caloca
DR - vk - Per pipeline descriptor pools
Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation
Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS
Change 3697477 by Rolando.Caloca
DR - vk - Custom memory allocator
Remove old/unused stats
Change 3697486 by Rolando.Caloca
DR - vk - Fix validation issue
Change 3697488 by Richard.Wallis
Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6. Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame.
Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter.
#jira UE-37553
Change 3697501 by Richard.Wallis
Move audio processing over to audio bus tap. Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework. This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp.
Original Code Review Description:
Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer. This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac. There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled.
- Stuttering Audio Performace issue investiagation: Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one. Basic investigation seems to point to somewhere in the engine audio handing. When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue. I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough. This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec.
#jira UEPLAT-1677
Change 3697517 by Richard.Wallis
XCode 9.0 extra nullability specifiers required.
Change 3697537 by Richard.Wallis
Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp
Change 3697670 by Rolando.Caloca
DR - vk - Fix mapstaging surface
Change 3697846 by Uriel.Doyon
Allow denormalized values when converting float32 to float16.
Change 3697892 by Uriel.Doyon
Fix for unaligned structure elements
Change 3699335 by Richard.Wallis
Mac compile fix - turns out I did need these nullability specifiers here.
Change 3699663 by Guillaume.Abadie
Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries.
Change 3699959 by Rolando.Caloca
DR - Fix barrier in the middle of render pass
Change 3699969 by Rolando.Caloca
DR - vk - Change dump layer location so it prints out validation ids
Change 3700356 by Guillaume.Abadie
Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI.
Change 3701105 by Guillaume.Abadie
Ignore per view automatic mip bias on texture type other than 2d textures.
#jira UE-51396
Change 3702297 by Richard.Wallis
Mac compile fix for nullable specifier. Looks like Obj class using the C++ class also needs this otherwise it throws. Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok.
#jira UE-51386
Change 3702357 by Richard.Wallis
Mac nullability compile fix - again. Looks like I fell foul of that xcode compile caching!
#jira UE-51386
Change 3702424 by Guillaume.Abadie
Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading.
#jira UE-51395
Change 3702464 by Guillaume.Abadie
Fixes wrong viewport to buffer conversion of the distortion.
#jira UE-51406
Change 3702819 by Guillaume.Abadie
Fixes planar reflections with secondary screen percentage for HighDPI editor viewports.
Change 3703732 by Guillaume.Abadie
Removes unecessary check(); when there is more than 2 players with planar reflections.
#jira UE-51436
Change 3704302 by Guillaume.Abadie
Removes unecessary Interface suffix on new dynamic resolution related interfaces
Change 3704390 by Chris.Bunner
Fixed a coincidentally correct define.
Change 3704730 by Rolando.Caloca
DR - vk - Fix map for depth surfaces
Change 3704739 by Rolando.Caloca
DR - Debug label on D3D11 UAVs
- Validate when running -d3debug
Change 3705000 by Chris.Bunner
Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254.
Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties.
Change 3706065 by Guillaume.Abadie
Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView.
Change 3706464 by Chris.Bunner
Fixed material property translate overrides that were generating code in the wrong entry.
Fixed conditions in If material expression GetInputType and IsMA check.
#jira UE-51368
Change 3706641 by Chris.Bunner
Missing "break" in switch statement (which unfortunately needs another bump to resolve).
Change 3706642 by Guillaume.Abadie
Fixes assertion failure when r.TemporalAA.EnableUpscale = 1
Change 3706650 by Gil.Gribb
UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code.
Change 3706733 by Daniel.Wright
Print Embree Build time
Change 3706841 by Daniel.Wright
EmbreeFilterFunc4 now handles masked out intersections properly
Change 3707437 by Rolando.Caloca
DR - vk - Android compile fix
#jira UE-51474
Change 3707785 by Guillaume.Abadie
Fixes viewport issue in bloom setup pass with TAA upsample.
Change 3709623 by Rolando.Caloca
DR - vk - Missing barrier for reading into cpu
Change 3709633 by Rolando.Caloca
DR - vk - Compile fix
Change 3710454 by Mark.Satterthwaite
Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D.
- Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load.
- RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders).
- Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>.
- Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics.
- Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore.
- Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way).
- STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else.
- Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes.
Change 3710456 by Mark.Satterthwaite
Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups.
Change 3710457 by Mark.Satterthwaite
DX11 texture formats for Mac Metal please!
Change 3710480 by Mark.Satterthwaite
Permit RHI thread and parallel execution in Mac -game mode again.
Change 3710522 by Mark.Satterthwaite
MSVC type-mismatch error fixes.
Change 3710580 by Mark.Satterthwaite
Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10).
Change 3710616 by Mark.Satterthwaite
Missing file.
Change 3712972 by Guillaume.Abadie
Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass.
Change 3712979 by Guillaume.Abadie
Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale.
Change 3713406 by Mark.Satterthwaite
Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now.
Change 3713494 by Richard.Wallis
Fix for hitch when PIE unloading sublevel. PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads. However they all just need to read the data not change it. Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention.
Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too.
Also tested again repro in linked bug UE-24711.
#jira UE-40533
Change 3713612 by Mark.Satterthwaite
Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744
This should make Light Propagation Volumes potentially viable on non-Microsoft platforms.
Change 3713623 by Mark.Satterthwaite
Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal.
Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be.
Change 3713636 by Mark.Satterthwaite
Enable LPVs for Mac Metal.
- Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation.
- MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible.
- Turn on LPVs for Metal as it works now.
Change 3714049 by Guillaume.Abadie
Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer.
Change 3714306 by Guillaume.Abadie
Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries.
Change 3714714 by Mark.Satterthwaite
Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains.
Change 3716104 by Mark.Satterthwaite
Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update.
Change 3716120 by Mark.Satterthwaite
Silence static-analysis.
Change 3716158 by Guillaume.Abadie
Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3716271 by Daniel.Wright
Lightmass correctness fixes
* After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions
* Photon density trimming intended for direct photons was affecting indirect photons as well. This caused high noise for point / spot lights with a large attenuation radius. Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality.
* Removed legacy fudge factor on point / spot light photon energy
* Spotlights no longer emit based on indirect photon paths. Fixes excessive photon energy from spot lights as they were emitting outside of the cone.
* Fixed photons computing one more bounce than requested.
* Added an option to use the Radiosity solver for all multibounce, replacing photons. Useful as a reference but generally too much noise indoors.
* Fixed visualization of photons without final gather
Change 3716434 by Mark.Satterthwaite
Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds.
Change 3716491 by Chris.Bunner
Fixing up an edge-case on a recent optimization.
Change 3716611 by Guillaume.Abadie
Allows secondary screen percentage >= 100%.
Change 3716977 by Guillaume.Abadie
Back out changelist 3716158 to unblock QA pass.
#jira UE-51580
Change 3717111 by Arne.Schober
Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/
Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small.
CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready.
Change 3717127 by Mark.Satterthwaite
Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice.
Change 3717178 by Mark.Satterthwaite
Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken.
#jira UE-51583
Change 3717476 by Marcus.Wassmer
Fix PS4 compile. funciton local statics not allowed on PSSL
Also enabled the new atomics method for LPVs for all platforms
Change 3717502 by Arne.Schober
DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries)
Change 3717601 by Arne.Schober
DR - Move cycle counter into more meaningfull locations.
Change 3718054 by Guillaume.Abadie
Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method.
Change 3718066 by Guillaume.Abadie
Reland: Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3718589 by Mark.Satterthwaite
Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled).
Change 3718633 by Guillaume.Abadie
Fixes temporal instability issue of TAA upsample with secondary screen percentage.
Change 3718658 by Arne.Schober
DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on.
Change 3718818 by Mark.Satterthwaite
Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero.
Change 3719004 by Guillaume.Abadie
Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample.
Change 3719375 by Mark.Satterthwaite
Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression.
Change 3720099 by Mark.Satterthwaite
Make the left-hand arguments work in airdiff.
Change 3720413 by Mark.Satterthwaite
Support standalone compute shaders in the mtlpp compiler test app.
Change 3721232 by Mark.Satterthwaite
No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available.
Change 3721244 by Mark.Satterthwaite
Fix incorrect enum handling for Metal features due to overflow.
#jira UE-51643
Change 3721338 by Mark.Satterthwaite
MIssing file from 3721232
Change 3721818 by Mark.Satterthwaite
Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead.
Change 3722139 by Arne.Schober
DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one
#jira UE-51602
Change 3722165 by Rolando.Caloca
DR - Default -opengl to GL4
Change 3722682 by Guillaume.Abadie
Fixes wrong clear color in SSR important for VR that has a HMD mesh.
Change 3722766 by Rolando.Caloca
DR - Fix static analysis
Change 3722943 by Mark.Satterthwaite
Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders.
Change 3723100 by Mark.Satterthwaite
Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version.
Change 3723121 by Mark.Satterthwaite
Fix build error.
Change 3723245 by Daniel.Wright
Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling
Reflection captures with no data use an array index of 0, instead of -1. Might avoid reading uninitialized memory on PS4.
Change 3723387 by Arne.Schober
DR - Metal already applies the instance and vertexoffset in the shader
Change 3723393 by Mark.Satterthwaite
More fixes to the mtlpp compiler test application.
Change 3725258 by Guillaume.Abadie
Improves fast TAA upsample shader permutation by 15% on console.
Change 3725555 by Chris.Bunner
[Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200.
Change 3726845 by Guillaume.Abadie
Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss.
#jira UE-51428
Change 3728014 by Guillaume.Abadie
Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision.
#jira UE-51428
Change 3728053 by Richard.Wallis
Duplicate CL 3727958: Crash fix when using shared material libraries. Initial shader code library offset is not zero'd so all entry offsets were garbage.
Change 3728339 by Guillaume.Abadie
Adds project setting for TAA upample, and officialises TAA upsampling CVar.
Change 3728549 by Guillaume.Abadie
CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers.
Change 3728752 by nick.bullard
Built and re-saved QA-MeshPaint
#jira UE-50978
Change 3728775 by Guillaume.Abadie
Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage.
Change 3729224 by Uriel.Doyon
Hidden levels now keep their last build data when using lighting scenarios.
Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios.
#jira UE-40454
#jira UE-38131
Change 3729243 by Marcus.Wassmer
Update Ansel to 1.4
#github 4159
#jira UE-51545
Change 3729325 by zachary.wilson
Adding indirect lighting to TM-LightingChannels
#jira UE-47069
Change 3729485 by zachary.wilson
Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof.
#jira UE-50972
Change 3729629 by Uriel.Doyon
Fixed crash when using debug view modes.
Fixed d3ddebug error when clearing quad overdraw buffer.
#jira UE-51836
Change 3730053 by Guillaume.Abadie
Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera.
Change 3730308 by Guillaume.Abadie
Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization.
Change 3730355 by Guillaume.Abadie
Sacrifices consistency for good cvar name for TAA upsample.
Change 3731403 by Daniel.Wright
Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values.
Change 3731404 by Daniel.Wright
Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture'
Change 3731407 by Daniel.Wright
Must opt-in for FDistanceFieldSceneData::VerifyIntegrity
Change 3731517 by Guillaume.Abadie
Freezes dynamic resolution heuristic when doing pause.
Change 3732168 by Guillaume.Abadie
Renames TAA upsampling cvar.
Change 3732295 by Guillaume.Abadie
Lets the scene texture's size and texel size return the correct sizes after TAA upsample.
Change 3732313 by Guillaume.Abadie
Implements SceneTexture material expressions' automated tests.
Change 3734928 by Guillaume.Abadie
Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic.
Change 3735966 by Ryan.Vance
Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac.
Change 3736104 by Guillaume.Abadie
Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way.
Change 3736346 by Daniel.Wright
Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results. Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred.
Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly
Change 3736348 by Daniel.Wright
Forward shadowing of directional light for translucency
* Static shadowing and CSM supported with minimal filtering (1 PCF)
* Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode. Forward renderer: affects all translucency.
Change 3736650 by Rolando.Caloca
DR - vk - # of desc pools
Change 3737985 by Guillaume.Abadie
Fixes pixel inspector with primary and secondary screen percentage.
Change 3738638 by Michael.Lentine
Compile fix due to unclear operator precendence.
Change 3739417 by Daniel.Wright
Fixed a few issues with irradiance cache visualization
Change 3739447 by Daniel.Wright
Skip forward static shadowing in projects with static lighting disabled
Change 3739595 by Daniel.Wright
ConditionalPostLoad DistanceFieldReplacementMesh. Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use.
Change 3739598 by Daniel.Wright
Disable capsules shadows on lowest shadow quality
Change 3739611 by Daniel.Wright
Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features
New Lighting Feature show flags for RTDF shadows and Capsule Shadows
Change 3740516 by Guillaume.Abadie
Fixes VR editor rendering only on eye with TAA upsample.
#jira UE-52016
Change 3740580 by Guillaume.Abadie
Fixes chromatic aberration with TAA upsample and multiple view rendering.
#jira UE-51993
Change 3740588 by Guillaume.Abadie
Gives to FXAA a more explicit draw event name for easier UDN support.
Change 3740845 by Michael.Lentine
Fix shipping build.
Change 3740903 by Guillaume.Abadie
Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor.
Change 3741355 by Daniel.Wright
Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component
Change 3741357 by Daniel.Wright
More info on volumetric lightmap import failure
Change 3742535 by Ryan.Vance
Fix for view rect changes.
Change 3743282 by Guillaume.Abadie
Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react.
Change 3743559 by Michael.Lentine
Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated.
Change 3743679 by Guillaume.Abadie
Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144.
#jira UE-51569
Change 3743906 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: Fix for clamping sampled HDR render target values by setting ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax
Change 3744096 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading.
Change 3744253 by Guillaume.Abadie
Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages.
Change 3744953 by Chris.Bunner
Crash workaround.
Change 3745628 by Marcus.Wassmer
Temporarily disable recalctangent normal-smoothing
#jira UE-52166
Change 3745942 by Guillaume.Abadie
Fixes a todo in FCommonViewportClient
Change 3746005 by Guillaume.Abadie
Fixes stat UnitGraph on high DPI monitor.
Change 3746029 by Guillaume.Abadie
Oups.... Fix compilation. :D
Change 3748322 by Guillaume.Abadie
Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands.
Change 3748346 by Chris.Bunner
Potential static analysis fix.
Change 3748349 by Chris.Bunner
Mac feature support flag fix on versions < 10.30.
Change 3749336 by Guillaume.Abadie
Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel!
Change 3749374 by Guillaume.Abadie
Adds a black background on the stat unitgraph so timing curves can be seen no matter the content.
Change 3749437 by Guillaume.Abadie
Final UI polish up for `stat unitgraph`
Change 3749719 by Guillaume.Abadie
Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage.
Change 3750243 by Chris.Bunner
Increasing controller's automated test timeout to allow for slower machines to complete the longest tests.
#jira UE-48494, UE-51907
Change 3750728 by Guillaume.Abadie
Fixes merge collision in chromatic aberration.
#jira UE-52282
Change 3750791 by Guillaume.Abadie
Fixes chromatic baerration R and G channel swap.
Change 3751246 by Guillaume.Abadie
Bypasses screen percentage apply with mobile LDR rendering.
#jira UE-52089
Change 3752624 by Guillaume.Abadie
Simplies dyn res state's event interface to a single virtual method.
Change 3753766 by Chris.Bunner
Rebuilt volumetric baked lighting test map and updated screenshots.
#jira UE-52322
Change 3755108 by Guillaume.Abadie
Fixes a bug where default dynamic resolution state was created at startup of server build.
#jira UE-52345
Change 3755267 by Mark.Satterthwaite
Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems.
#jira UE-52301
Change 3755811 by Chris.Bunner
Disable some new logging that was causing a stack overflow during EnginePreInit.
#jira UE-52345
Change 3756983 by Mark.Satterthwaite
Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities.
#jira UE-52073
Change 3757156 by Guillaume.Abadie
Fixes editor compositing with wireframe rendering.
#jira UE-52017
Change 3757435 by Mark.Satterthwaite
Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer.
#jira UE-52327
Change 3757523 by Uriel.Doyon
Fixed d3ddebug warning with unused inputs
Change 3758318 by Guillaume.Abadie
Cleaner fix for mobile scene captures.
#jira UE-52327
Change 3759541 by Mark.Satterthwaite
Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes.
Change 3695086 by Guillaume.Abadie
Render thread dynamic resolution & TAA upsample.
Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/...
New features breakdown:
- TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles;
- Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly;
- Material texture per view mip bias to produce sharper images with TAA upsample;
- Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics);
- Dynamic resolution in PIE and game builds;
- Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can exactly associate GPU frame times with screen percentages in its history;
- Game user settings to enable/disable dynamic resolution;
- In editor viewport screen percentage config to previsualise and test content at different screen percentage.
Fixes:
- Various fixes for algorithms producing different outputs at different screen percentage.
- Various fixes for algorithms sampling outside view rects.
Refactors:
- TAA shader
- Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing.
Aknowledgements:
- VR plugins are broken
- DFAO still have some artifacts
Premiliminary review: Marcus.Wassmer
Review for TAA refactor and TAA upsample shader: Brian.Karis
Review for dynamic resolution: Brian.Karis
[CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
2019-06-11 18:27:07 -04:00
TAutoConsoleVariable < int32 > CVarMotionBlurSeparable (
TEXT ( " r.MotionBlurSeparable " ) ,
0 ,
TEXT ( " Adds a second motion blur pass that smooths noise for a higher quality blur. " ) ,
ECVF_RenderThreadSafe ) ;
2014-03-14 14:13:41 -04:00
2021-12-03 01:16:55 -05:00
TAutoConsoleVariable < int32 > CVarMotionBlurDirections (
TEXT ( " r.MotionBlur.Directions " ) ,
1 ,
TEXT ( " Number of bluring direction (default = 1). " ) ,
2019-06-11 18:27:07 -04:00
ECVF_RenderThreadSafe ) ;
2015-02-22 17:53:26 -05:00
2021-12-03 12:40:10 -05:00
TAutoConsoleVariable < int32 > CVarMotionBlurHalfResInput (
TEXT ( " r.MotionBlur.HalfResInput " ) , 1 ,
TEXT ( " Whether motion blur also blur with a half resolution input. " ) ,
ECVF_RenderThreadSafe ) ;
TAutoConsoleVariable < int32 > CVarMotionBlurHalfResGather (
TEXT ( " r.MotionBlur.HalfResGather " ) , 1 ,
TEXT ( " Whether to do motion blur filter dynamically at half res under heavy motion. " ) ,
2022-01-31 14:57:52 -05:00
ECVF_Scalability | ECVF_RenderThreadSafe ) ;
2021-12-03 12:40:10 -05:00
2021-12-03 13:05:09 -05:00
TAutoConsoleVariable < int32 > CVarMotionBlurAllowExternalVelocityFlatten (
TEXT ( " r.MotionBlur.AllowExternalVelocityFlatten " ) , 1 ,
TEXT ( " Whether to allow motion blur's velocity flatten into other pass. " ) ,
ECVF_RenderThreadSafe ) ;
2019-06-11 18:27:07 -04:00
TAutoConsoleVariable < int32 > CVarAllowMotionBlurInVR (
TEXT ( " vr.AllowMotionBlurInVR " ) ,
0 ,
TEXT ( " For projects with motion blur enabled, this allows motion blur to be enabled even while in VR. " ) ) ;
2015-11-18 09:31:10 -05:00
2019-06-11 18:27:07 -04:00
FMatrix GetPreviousWorldToClipMatrix ( const FViewInfo & View )
2015-02-22 17:53:26 -05:00
{
2019-06-11 18:27:07 -04:00
if ( View . Family - > EngineShowFlags . CameraInterpolation )
2015-06-22 19:08:33 -04:00
{
2019-06-11 18:27:07 -04:00
// Instead of finding the world space position of the current pixel, calculate the world space position offset by the camera position,
// then translate by the difference between last frame's camera position and this frame's camera position,
// then apply the rest of the transforms. This effectively avoids precision issues near the extents of large levels whose world space position is very large.
FVector ViewOriginDelta = View . ViewMatrices . GetViewOrigin ( ) - View . PrevViewInfo . ViewMatrices . GetViewOrigin ( ) ;
return FTranslationMatrix ( ViewOriginDelta ) * View . PrevViewInfo . ViewMatrices . ComputeViewRotationProjectionMatrix ( ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358140 on 2017/03/22 by Rolando.Caloca
DR - Fix copy to cube face
- Compile fix when using dump layer
- Add new error enum
Change 3358301 on 2017/03/22 by Mitchell.Wilson
Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section.
Change 3358477 on 2017/03/22 by Mitchell.Wilson
Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning.
Change 3358529 on 2017/03/22 by Mark.Satterthwaite
Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code.
Change 3358745 on 2017/03/22 by Mark.Satterthwaite
Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected.
Change 3358837 on 2017/03/22 by Joe.Graf
Merge of pull request #3214 for the RenderDocPlugin
#CodeReview: matt.kuhlenschmidt, marcus.wassmer
#rb: marcus.wassmer
Change 3359112 on 2017/03/22 by Ben.Salem
Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined.
#tests Ran several Showdown test runs with plugin!
Change 3359363 on 2017/03/22 by Joe.Graf
First pass at non-unity & no pch compilation
Change 3359449 on 2017/03/22 by Joe.Graf
Added missing null check when exporting a EXR on Linux (UE-40268)
#CodeReview: dmitry.rekman
#rb: n/a
Change 3360349 on 2017/03/23 by Guillaume.Abadie
Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts.
#jira UE-42920
Change 3360405 on 2017/03/23 by Marcus.Wassmer
Better method for detecting Kepler
Change 3360718 on 2017/03/23 by Daniel.Wright
Planar reflections handle views smaller than the render target in a general way
* Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined)
* Planar reflections are now supported in splitscreen
Change 3360758 on 2017/03/23 by Daniel.Wright
[Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead
Change 3360762 on 2017/03/23 by Daniel.Wright
[Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool
Change 3360768 on 2017/03/23 by Daniel.Wright
[Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram
Change 3360770 on 2017/03/23 by Daniel.Wright
[Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox
Change 3360771 on 2017/03/23 by Daniel.Wright
[Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light.
Change 3360774 on 2017/03/23 by Daniel.Wright
[Copy] Distance field cvar comments
Change 3360782 on 2017/03/23 by Daniel.Wright
[Copy] Disabled selection color on Volume materials
Change 3360795 on 2017/03/23 by Daniel.Wright
[Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density.
Change 3360799 on 2017/03/23 by Daniel.Wright
[Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y
Change 3360806 on 2017/03/23 by Daniel.Wright
[Copy] Fixed volumetric fog being offset when viewport min is not 0
Change 3360809 on 2017/03/23 by Daniel.Wright
[Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale.
Change 3361651 on 2017/03/23 by Brian.Karis
Higher quality sharp SSR at quality 4
Change 3361678 on 2017/03/23 by Brian.Karis
Fresnel darkens diffuse for clearcoat.
Change 3361683 on 2017/03/23 by Brian.Karis
Fixed SSR artifact
Change 3361691 on 2017/03/23 by Brian.Karis
Chagned min roughness limit
Change 3361707 on 2017/03/23 by Brian.Karis
Added inverse film tone map
Change 3361726 on 2017/03/23 by Brian.Karis
Better precision inverse
Change 3361758 on 2017/03/23 by Brian.Karis
Material flag normal curvature to roughness is no longer forward only.
Change 3361765 on 2017/03/23 by Brian.Karis
Update ACES
Change 3361774 on 2017/03/23 by Brian.Karis
Cleaned up alpha support and disabled screen edge clipping.
Change 3362478 on 2017/03/24 by Guillaume.Abadie
Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output.
#author Brian.Karis
#jira UE-42920
Change 3362738 on 2017/03/24 by Rolando.Caloca
DR - Hide scene capture on IF
Change 3362890 on 2017/03/24 by Guillaume.Abadie
Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha
Change 3363665 on 2017/03/24 by Mark.Satterthwaite
PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous)
Change 3363866 on 2017/03/24 by Arne.Schober
DR - Updated NVAPI
#RB Marcus.Wassmer
Change 3364300 on 2017/03/24 by Brian.Karis
SSR use dynamic velocity
Change 3364372 on 2017/03/24 by Brian.Karis
Fix changing off axis projection velocities.
Change 3364373 on 2017/03/24 by Brian.Karis
Enabled velocity drawing in scene captures
Change 3365531 on 2017/03/27 by Guillaume.Abadie
Computes the material's screen position material expression directly from the pixel shader SvPosition
Change 3365764 on 2017/03/27 by Chris.Bunner
Lowering severity of crash for missing values in scalability.ini.
#jira UE-41331
Change 3365916 on 2017/03/27 by Guillaume.Abadie
Exposes the viewport offset within the view property material expression
Change 3365979 on 2017/03/27 by Brian.Karis
Fixed skylight intensity from double applying
Change 3365987 on 2017/03/27 by Brian.Karis
Stopped post process indirect lighting intensity from scaling skylight reflections
Change 3365991 on 2017/03/27 by Brian.Karis
Fix for static analysis
Change 3366028 on 2017/03/27 by Daniel.Wright
Volumetric fog supports static shadowing from Stationary lights
* Using bilinear on static shadowmap depths + 1 PCF to smooth out results
Change 3366029 on 2017/03/27 by Daniel.Wright
Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog
Change 3366055 on 2017/03/27 by Guillaume.Abadie
Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies.
Change 3366447 on 2017/03/27 by Simon.Tourangeau
Fix IES light profile importer.
- Bug in the LM-63-1986 format importer.
Change 3366836 on 2017/03/27 by Brian.Karis
ClearUAV now supports int types
Change 3367435 on 2017/03/28 by Benjamin.Hyder
Submitting Decal Automation map for initial approval
Change 3367572 on 2017/03/28 by Chris.Bunner
Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs.
#jira UE-42989
Change 3367756 on 2017/03/28 by Olaf.Piesche
Niagara material usage flags
Change 3367835 on 2017/03/28 by Marcus.Wassmer
Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene.
Change 3367837 on 2017/03/28 by Marcus.Wassmer
Missed a file.
Change 3367838 on 2017/03/28 by Richard.Wallis
Updated items from original shelved version by Mark Satt:
- Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's
**Description below taken from Mark Satt's original verison of this in CL3343280**
Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries.
Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently.
- All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work.
- With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary.
- For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping.
- File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic.
- This bumps the object version and will cause all content to recook.
- Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller).
Change 3367854 on 2017/03/28 by Mark.Satterthwaite
Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be.
Change 3367877 on 2017/03/28 by Brian.Karis
Fixed linux build hopefully
Change 3368001 on 2017/03/28 by Mark.Satterthwaite
Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves.
Change 3368019 on 2017/03/28 by Mark.Satterthwaite
And another fix for Windows compilation of MetalShaderFormat.
Change 3368042 on 2017/03/28 by Mark.Satterthwaite
And a couple of simpler MSVC errors.
Change 3368271 on 2017/03/28 by Mark.Satterthwaite
Make SceneRenderTargets compile again.
Change 3368691 on 2017/03/28 by Daniel.Wright
[Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis
Change 3369689 on 2017/03/29 by Marcus.Wassmer
Fix non editor compile for now
Change 3369862 on 2017/03/29 by Marcus.Wassmer
Get the rest of the things compiling again.
Change 3369896 on 2017/03/29 by Chris.Bunner
Enabling AMD HDR support by default.
#jira UE-42113
Change 3370535 on 2017/03/29 by Marcus.Wassmer
DR - Fix template explicit instantiation for ClearUAV permutations
#RB Brian.Karis, Arne.Schober
Change 3370704 on 2017/03/29 by Rolando.Caloca
DR - Rewrote GPU Skin Cache
- Per section buffers
- Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB)
Copied from 3370529
Change 3371389 on 2017/03/30 by Richard.Wallis
Remove temp working directories after archive packages built.
Change 3371641 on 2017/03/30 by Rolando.Caloca
DR - Copy 3371640 (fix mem leak)
Change 3372436 on 2017/03/30 by Uriel.Doyon
Added flags in UPrimitiveComponent to keep track of its state in the streaming manager.
This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic.
Removed the limitation of only processing UMeshComponent when handling spawed primitive.
This releases the level manager from having to manage dynamic primitives.
This improves performance by not having to manage dynamic references in the level manager.
Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling
many cases automatically where previously a manual callback to notify would have been required.
Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state
because of lack of references in the streamer.
Change 3372740 on 2017/03/30 by Chris.Bunner
[Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute).
StencilSceneTexture added to deferred list.
A few known issues to be fixed in a follow-up CL.
Change 3372765 on 2017/03/30 by Uriel.Doyon
Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update
Change 3372979 on 2017/03/30 by Richard.Hinckley
#jira UE-43501
The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects.
Change 3373053 on 2017/03/30 by Simon.Tourangeau
LPV Fade support
- mostly integrated from CL 2959511
Change 3373272 on 2017/03/30 by Uriel.Doyon
Added support for the concurrent update of dynamic primitives by the streaming manager.
Change 3373450 on 2017/03/30 by Rolando.Caloca
DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory
Copy 3373364
#jira UE-43492
Change 3373470 on 2017/03/30 by Marcus.Wassmer
Nvidia Aftermath support
Change 3374187 on 2017/03/31 by Chris.Bunner
Volume texture support for CombineLUTs/Tonemap compute pass.
Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS.
Skip compute post process out-of-bounds writes.
Unsigned type conversion fixes.
Trimmed compute post process shader inputs.
Change 3374233 on 2017/03/31 by Chris.Bunner
Removed several redundant post process compute fences and resource transitions.
Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch).
Change 3374412 on 2017/03/31 by Rolando.Caloca
DR - Fix static analysis
Change 3374544 on 2017/03/31 by Richard.Wallis
FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library.
Future Work
- This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver.
- Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state
- This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock
Change 3374588 on 2017/03/31 by Richard.Wallis
Windows Compile Fixes
Change 3374810 on 2017/03/31 by Benjamin.Hyder
updating recommended GPU drivers
Change 3375207 on 2017/03/31 by Rolando.Caloca
DR - vk - Fixed swapchain format selection for some Linux platforms
Change 3375248 on 2017/03/31 by Rolando.Caloca
DR - vk - Prefer D32S8
Change 3375495 on 2017/03/31 by Rolando.Caloca
DR - vk - Update to sdk 1.0.42.2
Change 3375496 on 2017/03/31 by Rolando.Caloca
DR - Force compiling with updated Vulkan SDK
Change 3375636 on 2017/03/31 by Mark.Satterthwaite
Copying Metal improvements from task stream, with some modifications:
- Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts.
- Support for Apple's Instruments "Points of Interest" tool.
- Consolidation of some Mac & iOS compiler, memory and thread handling code.
- Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects.
- Improvements to the internal FMetalDebug layer, still off by default.
- Limited support for Xcode automatic code-signing for iOS/tvOS.
- Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals.
- Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing.
- Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types.
- Smattering of lesser fixes.
Change 3375654 on 2017/03/31 by Mark.Satterthwaite
Incremental Windows build fix.
Change 3375656 on 2017/04/01 by Mark.Satterthwaite
Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...).
Change 3375797 on 2017/04/01 by Mark.Satterthwaite
Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds...
Change 3375798 on 2017/04/01 by Mark.Satterthwaite
Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream.
Change 3375835 on 2017/04/01 by Mark.Satterthwaite
Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly.
Change 3376143 on 2017/04/02 by Mark.Satterthwaite
Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system.
Change 3376324 on 2017/04/03 by Chris.Bunner
Fixed cvar re-registration log spam and flagged a testing-only cvar as such.
Change 3376726 on 2017/04/03 by Benjamin.Hyder
Submitting initial HDR test map (WIP)
Change 3376756 on 2017/04/03 by Guillaume.Abadie
Fixes scene captures ordering's backward compatibility.
Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor.
Change 3377378 on 2017/04/03 by Arne.Schober
DR - Fix ShaderRecompiling over and over again
#RB Chris.Bunner
Change 3377512 on 2017/04/03 by Daniel.Wright
[Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events
Change 3377518 on 2017/04/03 by Daniel.Wright
[Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12
Change 3377526 on 2017/04/03 by Daniel.Wright
[Copy] "Ran out of GPU queries!" log only happens once
Change 3377535 on 2017/04/03 by Daniel.Wright
[Copy] Fixed unreferenced local variable
Change 3377539 on 2017/04/03 by Daniel.Wright
[Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages
Change 3377546 on 2017/04/03 by Daniel.Wright
[Copy] Added r.LightMaxDrawDistanceScale for local light scalability
Change 3377553 on 2017/04/03 by Daniel.Wright
[Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path
Change 3377560 on 2017/04/03 by Daniel.Wright
[Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes
Change 3377565 on 2017/04/03 by Daniel.Wright
[Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false)
Change 3377572 on 2017/04/03 by Daniel.Wright
[Copy] Disabled point / spot lights with MaxDrawDistance on LowPC
Change 3377586 on 2017/04/03 by Daniel.Wright
Fixed compile error
Change 3377699 on 2017/04/03 by David.Hill
FFT Code. Moved over from raven and refactored
#review-3374589 @guillaume.abadie
Change 3377910 on 2017/04/03 by David.Hill
GPU FFT: Fix Linux Build
adding a missing template<> to an IMPLEMENT_SHADER_TYPE
Change 3378751 on 2017/04/04 by Marcus.Wassmer
HQ particle lights now spawn attached to the same socket as their parent module.
Change 3378819 on 2017/04/04 by Richard.Wallis
Should be no need to protect shader cache against RHI thread now.
Change 3378823 on 2017/04/04 by Richard.Wallis
FRHIShaderLibrary Opaque Type
- Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library.
- Assumed that only Native libraries will end up in the RHICreate*Shader functions.
- ShaderCache and ShaderCode Libraries now inherit from a common factory interface.
Change 3378883 on 2017/04/04 by Arne.Schober
DR - Fix DCC build
Change 3378885 on 2017/04/04 by Richard.Wallis
Metal resource cast compile fix post merge.
Change 3378946 on 2017/04/04 by Chris.Bunner
SM4 assert fix.
Change 3378953 on 2017/04/04 by Chris.Bunner
Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users.
Allowed material nodes to opt out of mask-based pin coloration.
#tests Compiled most Paragon materials + QAGame test maps.
#jira UE-39885
Change 3379189 on 2017/04/04 by Arne.Schober
DR - Fix aftermath staging
Change 3379229 on 2017/04/04 by Arne.Schober
DR - Fix missing include
Change 3379374 on 2017/04/04 by Mark.Satterthwaite
Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream.
Change 3379505 on 2017/04/04 by Rolando.Caloca
DR - Fix mismatched interpolators
Change 3379539 on 2017/04/04 by Mark.Satterthwaite
No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right...
#jira UE-43626
Change 3379561 on 2017/04/04 by Rolando.Caloca
DR - Fix root signature issues on D3D12 PC
Change 3379590 on 2017/04/04 by Mark.Satterthwaite
Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture.
#jira UE-43626
Change 3379917 on 2017/04/04 by Uriel.Doyon
Fix to input mismatch
Change 3380578 on 2017/04/05 by Chris.Bunner
Shader type fixes.
#jira UE-43652
Change 3380639 on 2017/04/05 by Rolando.Caloca
DR - Expose GetOrCreate PSO and document
Change 3380821 on 2017/04/05 by Guillaume.Abadie
Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures()
#jira UE-43642
Change 3381092 on 2017/04/05 by Guillaume.Abadie
Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting.
This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations.
Change 3381300 on 2017/04/05 by Mark.Satterthwaite
Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface.
#jira UE-43597
Change 3381359 on 2017/04/05 by Guillaume.Abadie
Back out changelist 3381092
Change 3381421 on 2017/04/05 by Mark.Satterthwaite
Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions.
#jira UE-43689
Change 3381422 on 2017/04/05 by Mark.Satterthwaite
Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery.
#jira UE-43691
Change 3381503 on 2017/04/05 by Daniel.Wright
More intuitive controls for Volumetric Fog
* Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction
* InscatteringColorCubemap is now supported by Volumetric Fog
* Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing
* Tweaked GVolumetricFogDepthDistributionScale better for nearby details
* Volume Materials have twice the interpolators available
Change 3381527 on 2017/04/05 by Mark.Satterthwaite
Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements.
Change 3381671 on 2017/04/05 by Mark.Satterthwaite
Better error message for failure to compile shaders remotely from PC for Metal.
Change 3381769 on 2017/04/05 by Rolando.Caloca
DR - Added lock texture array 2d on Vulkan
Change 3382003 on 2017/04/05 by Mark.Satterthwaite
Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended.
Change 3382030 on 2017/04/05 by Zachary.Wilson
Fix compiling Metal text shaders from PC broken in merge from task stream.
#submitter mark.satterthwaite
#jira UE-43652
Change 3382880 on 2017/04/06 by Mark.Satterthwaite
Michael Trepka's CL #3379927:
VolumetricFogVoxelization implementation for Mac
Change 3383315 on 2017/04/06 by Mark.Satterthwaite
Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory.
#jira UE-43739
Change 3384639 on 2017/04/07 by Marcus.Wassmer
Move ShaderResource version bump to RenderingObjectVersion
Change 3384704 on 2017/04/07 by Mark.Satterthwaite
Compile fix for merge.
Change 3384933 on 2017/04/07 by Rolando.Caloca
DR - Fix skin cache crash with BP (copy 3384714)
Change 3385104 on 2017/04/07 by Mark.Satterthwaite
Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity.
#jira UE-43783
Change 3385105 on 2017/04/07 by Mark.Satterthwaite
Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783
#jira UE-43783
Change 3385118 on 2017/04/07 by Arne.Schober
DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled
#RB none
Change 3385149 on 2017/04/07 by Marcus.Wassmer
Fix skincache motion blur
Change 3385189 on 2017/04/07 by Rolando.Caloca
DR - Fix swapchain format for editor on Vulkan
Change 3385287 on 2017/04/07 by Mark.Satterthwaite
Enable SM5 on Intel as of 10.12.4 and later.
Change 3385347 on 2017/04/07 by Rolando.Caloca
DR - Temp fix for GL4 corruption on editor
#jira UE-43785
Change 3385363 on 2017/04/07 by Rolando.Caloca
DR - Actually fix all win platforms for GL bug
#jira UE-43785
Change 3385557 on 2017/04/07 by Arne.Schober
DR - [UE-43205] - Fix mesh paint
#RB none
Change 3385608 on 2017/04/07 by Daniel.Wright
Fixed SampleCmp being used on a non-depth texture, causing a d3d error
Change 3385980 on 2017/04/10 by Rolando.Caloca
DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture
Change 3386042 on 2017/04/10 by Rolando.Caloca
DR - Fix metal merge issue
Change 3386157 on 2017/04/10 by Rolando.Caloca
DR - Remove VS2013 libs generation off hlslcc & glslang (to match main)
Change 3386356 on 2017/04/10 by Chris.Bunner
Resolving merge errors.
Change 3386414 on 2017/04/10 by Chris.Bunner
Resolved merge issue in RendererScene.cpp.
Change 3386700 on 2017/04/10 by Mark.Satterthwaite
Silence documentation warnings.
Change 3387178 on 2017/04/10 by Chris.Bunner
Removed invalid mask correction on MakeMA material nodes.
Change 3388177 on 2017/04/11 by Marcus.Wassmer
Disable ensure that is no longer relevant now that we bind clear colors on texture creation
Change 3388261 on 2017/04/11 by Chris.Bunner
Static analysis fix.
[CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
}
else
{
2019-06-11 18:27:07 -04:00
return View . ViewMatrices . ComputeViewRotationProjectionMatrix ( ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358140 on 2017/03/22 by Rolando.Caloca
DR - Fix copy to cube face
- Compile fix when using dump layer
- Add new error enum
Change 3358301 on 2017/03/22 by Mitchell.Wilson
Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section.
Change 3358477 on 2017/03/22 by Mitchell.Wilson
Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning.
Change 3358529 on 2017/03/22 by Mark.Satterthwaite
Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code.
Change 3358745 on 2017/03/22 by Mark.Satterthwaite
Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected.
Change 3358837 on 2017/03/22 by Joe.Graf
Merge of pull request #3214 for the RenderDocPlugin
#CodeReview: matt.kuhlenschmidt, marcus.wassmer
#rb: marcus.wassmer
Change 3359112 on 2017/03/22 by Ben.Salem
Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined.
#tests Ran several Showdown test runs with plugin!
Change 3359363 on 2017/03/22 by Joe.Graf
First pass at non-unity & no pch compilation
Change 3359449 on 2017/03/22 by Joe.Graf
Added missing null check when exporting a EXR on Linux (UE-40268)
#CodeReview: dmitry.rekman
#rb: n/a
Change 3360349 on 2017/03/23 by Guillaume.Abadie
Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts.
#jira UE-42920
Change 3360405 on 2017/03/23 by Marcus.Wassmer
Better method for detecting Kepler
Change 3360718 on 2017/03/23 by Daniel.Wright
Planar reflections handle views smaller than the render target in a general way
* Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined)
* Planar reflections are now supported in splitscreen
Change 3360758 on 2017/03/23 by Daniel.Wright
[Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead
Change 3360762 on 2017/03/23 by Daniel.Wright
[Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool
Change 3360768 on 2017/03/23 by Daniel.Wright
[Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram
Change 3360770 on 2017/03/23 by Daniel.Wright
[Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox
Change 3360771 on 2017/03/23 by Daniel.Wright
[Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light.
Change 3360774 on 2017/03/23 by Daniel.Wright
[Copy] Distance field cvar comments
Change 3360782 on 2017/03/23 by Daniel.Wright
[Copy] Disabled selection color on Volume materials
Change 3360795 on 2017/03/23 by Daniel.Wright
[Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density.
Change 3360799 on 2017/03/23 by Daniel.Wright
[Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y
Change 3360806 on 2017/03/23 by Daniel.Wright
[Copy] Fixed volumetric fog being offset when viewport min is not 0
Change 3360809 on 2017/03/23 by Daniel.Wright
[Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale.
Change 3361651 on 2017/03/23 by Brian.Karis
Higher quality sharp SSR at quality 4
Change 3361678 on 2017/03/23 by Brian.Karis
Fresnel darkens diffuse for clearcoat.
Change 3361683 on 2017/03/23 by Brian.Karis
Fixed SSR artifact
Change 3361691 on 2017/03/23 by Brian.Karis
Chagned min roughness limit
Change 3361707 on 2017/03/23 by Brian.Karis
Added inverse film tone map
Change 3361726 on 2017/03/23 by Brian.Karis
Better precision inverse
Change 3361758 on 2017/03/23 by Brian.Karis
Material flag normal curvature to roughness is no longer forward only.
Change 3361765 on 2017/03/23 by Brian.Karis
Update ACES
Change 3361774 on 2017/03/23 by Brian.Karis
Cleaned up alpha support and disabled screen edge clipping.
Change 3362478 on 2017/03/24 by Guillaume.Abadie
Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output.
#author Brian.Karis
#jira UE-42920
Change 3362738 on 2017/03/24 by Rolando.Caloca
DR - Hide scene capture on IF
Change 3362890 on 2017/03/24 by Guillaume.Abadie
Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha
Change 3363665 on 2017/03/24 by Mark.Satterthwaite
PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous)
Change 3363866 on 2017/03/24 by Arne.Schober
DR - Updated NVAPI
#RB Marcus.Wassmer
Change 3364300 on 2017/03/24 by Brian.Karis
SSR use dynamic velocity
Change 3364372 on 2017/03/24 by Brian.Karis
Fix changing off axis projection velocities.
Change 3364373 on 2017/03/24 by Brian.Karis
Enabled velocity drawing in scene captures
Change 3365531 on 2017/03/27 by Guillaume.Abadie
Computes the material's screen position material expression directly from the pixel shader SvPosition
Change 3365764 on 2017/03/27 by Chris.Bunner
Lowering severity of crash for missing values in scalability.ini.
#jira UE-41331
Change 3365916 on 2017/03/27 by Guillaume.Abadie
Exposes the viewport offset within the view property material expression
Change 3365979 on 2017/03/27 by Brian.Karis
Fixed skylight intensity from double applying
Change 3365987 on 2017/03/27 by Brian.Karis
Stopped post process indirect lighting intensity from scaling skylight reflections
Change 3365991 on 2017/03/27 by Brian.Karis
Fix for static analysis
Change 3366028 on 2017/03/27 by Daniel.Wright
Volumetric fog supports static shadowing from Stationary lights
* Using bilinear on static shadowmap depths + 1 PCF to smooth out results
Change 3366029 on 2017/03/27 by Daniel.Wright
Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog
Change 3366055 on 2017/03/27 by Guillaume.Abadie
Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies.
Change 3366447 on 2017/03/27 by Simon.Tourangeau
Fix IES light profile importer.
- Bug in the LM-63-1986 format importer.
Change 3366836 on 2017/03/27 by Brian.Karis
ClearUAV now supports int types
Change 3367435 on 2017/03/28 by Benjamin.Hyder
Submitting Decal Automation map for initial approval
Change 3367572 on 2017/03/28 by Chris.Bunner
Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs.
#jira UE-42989
Change 3367756 on 2017/03/28 by Olaf.Piesche
Niagara material usage flags
Change 3367835 on 2017/03/28 by Marcus.Wassmer
Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene.
Change 3367837 on 2017/03/28 by Marcus.Wassmer
Missed a file.
Change 3367838 on 2017/03/28 by Richard.Wallis
Updated items from original shelved version by Mark Satt:
- Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's
**Description below taken from Mark Satt's original verison of this in CL3343280**
Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries.
Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently.
- All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work.
- With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary.
- For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping.
- File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic.
- This bumps the object version and will cause all content to recook.
- Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller).
Change 3367854 on 2017/03/28 by Mark.Satterthwaite
Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be.
Change 3367877 on 2017/03/28 by Brian.Karis
Fixed linux build hopefully
Change 3368001 on 2017/03/28 by Mark.Satterthwaite
Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves.
Change 3368019 on 2017/03/28 by Mark.Satterthwaite
And another fix for Windows compilation of MetalShaderFormat.
Change 3368042 on 2017/03/28 by Mark.Satterthwaite
And a couple of simpler MSVC errors.
Change 3368271 on 2017/03/28 by Mark.Satterthwaite
Make SceneRenderTargets compile again.
Change 3368691 on 2017/03/28 by Daniel.Wright
[Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis
Change 3369689 on 2017/03/29 by Marcus.Wassmer
Fix non editor compile for now
Change 3369862 on 2017/03/29 by Marcus.Wassmer
Get the rest of the things compiling again.
Change 3369896 on 2017/03/29 by Chris.Bunner
Enabling AMD HDR support by default.
#jira UE-42113
Change 3370535 on 2017/03/29 by Marcus.Wassmer
DR - Fix template explicit instantiation for ClearUAV permutations
#RB Brian.Karis, Arne.Schober
Change 3370704 on 2017/03/29 by Rolando.Caloca
DR - Rewrote GPU Skin Cache
- Per section buffers
- Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB)
Copied from 3370529
Change 3371389 on 2017/03/30 by Richard.Wallis
Remove temp working directories after archive packages built.
Change 3371641 on 2017/03/30 by Rolando.Caloca
DR - Copy 3371640 (fix mem leak)
Change 3372436 on 2017/03/30 by Uriel.Doyon
Added flags in UPrimitiveComponent to keep track of its state in the streaming manager.
This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic.
Removed the limitation of only processing UMeshComponent when handling spawed primitive.
This releases the level manager from having to manage dynamic primitives.
This improves performance by not having to manage dynamic references in the level manager.
Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling
many cases automatically where previously a manual callback to notify would have been required.
Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state
because of lack of references in the streamer.
Change 3372740 on 2017/03/30 by Chris.Bunner
[Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute).
StencilSceneTexture added to deferred list.
A few known issues to be fixed in a follow-up CL.
Change 3372765 on 2017/03/30 by Uriel.Doyon
Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update
Change 3372979 on 2017/03/30 by Richard.Hinckley
#jira UE-43501
The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects.
Change 3373053 on 2017/03/30 by Simon.Tourangeau
LPV Fade support
- mostly integrated from CL 2959511
Change 3373272 on 2017/03/30 by Uriel.Doyon
Added support for the concurrent update of dynamic primitives by the streaming manager.
Change 3373450 on 2017/03/30 by Rolando.Caloca
DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory
Copy 3373364
#jira UE-43492
Change 3373470 on 2017/03/30 by Marcus.Wassmer
Nvidia Aftermath support
Change 3374187 on 2017/03/31 by Chris.Bunner
Volume texture support for CombineLUTs/Tonemap compute pass.
Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS.
Skip compute post process out-of-bounds writes.
Unsigned type conversion fixes.
Trimmed compute post process shader inputs.
Change 3374233 on 2017/03/31 by Chris.Bunner
Removed several redundant post process compute fences and resource transitions.
Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch).
Change 3374412 on 2017/03/31 by Rolando.Caloca
DR - Fix static analysis
Change 3374544 on 2017/03/31 by Richard.Wallis
FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library.
Future Work
- This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver.
- Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state
- This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock
Change 3374588 on 2017/03/31 by Richard.Wallis
Windows Compile Fixes
Change 3374810 on 2017/03/31 by Benjamin.Hyder
updating recommended GPU drivers
Change 3375207 on 2017/03/31 by Rolando.Caloca
DR - vk - Fixed swapchain format selection for some Linux platforms
Change 3375248 on 2017/03/31 by Rolando.Caloca
DR - vk - Prefer D32S8
Change 3375495 on 2017/03/31 by Rolando.Caloca
DR - vk - Update to sdk 1.0.42.2
Change 3375496 on 2017/03/31 by Rolando.Caloca
DR - Force compiling with updated Vulkan SDK
Change 3375636 on 2017/03/31 by Mark.Satterthwaite
Copying Metal improvements from task stream, with some modifications:
- Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts.
- Support for Apple's Instruments "Points of Interest" tool.
- Consolidation of some Mac & iOS compiler, memory and thread handling code.
- Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects.
- Improvements to the internal FMetalDebug layer, still off by default.
- Limited support for Xcode automatic code-signing for iOS/tvOS.
- Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals.
- Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing.
- Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types.
- Smattering of lesser fixes.
Change 3375654 on 2017/03/31 by Mark.Satterthwaite
Incremental Windows build fix.
Change 3375656 on 2017/04/01 by Mark.Satterthwaite
Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...).
Change 3375797 on 2017/04/01 by Mark.Satterthwaite
Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds...
Change 3375798 on 2017/04/01 by Mark.Satterthwaite
Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream.
Change 3375835 on 2017/04/01 by Mark.Satterthwaite
Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly.
Change 3376143 on 2017/04/02 by Mark.Satterthwaite
Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system.
Change 3376324 on 2017/04/03 by Chris.Bunner
Fixed cvar re-registration log spam and flagged a testing-only cvar as such.
Change 3376726 on 2017/04/03 by Benjamin.Hyder
Submitting initial HDR test map (WIP)
Change 3376756 on 2017/04/03 by Guillaume.Abadie
Fixes scene captures ordering's backward compatibility.
Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor.
Change 3377378 on 2017/04/03 by Arne.Schober
DR - Fix ShaderRecompiling over and over again
#RB Chris.Bunner
Change 3377512 on 2017/04/03 by Daniel.Wright
[Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events
Change 3377518 on 2017/04/03 by Daniel.Wright
[Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12
Change 3377526 on 2017/04/03 by Daniel.Wright
[Copy] "Ran out of GPU queries!" log only happens once
Change 3377535 on 2017/04/03 by Daniel.Wright
[Copy] Fixed unreferenced local variable
Change 3377539 on 2017/04/03 by Daniel.Wright
[Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages
Change 3377546 on 2017/04/03 by Daniel.Wright
[Copy] Added r.LightMaxDrawDistanceScale for local light scalability
Change 3377553 on 2017/04/03 by Daniel.Wright
[Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path
Change 3377560 on 2017/04/03 by Daniel.Wright
[Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes
Change 3377565 on 2017/04/03 by Daniel.Wright
[Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false)
Change 3377572 on 2017/04/03 by Daniel.Wright
[Copy] Disabled point / spot lights with MaxDrawDistance on LowPC
Change 3377586 on 2017/04/03 by Daniel.Wright
Fixed compile error
Change 3377699 on 2017/04/03 by David.Hill
FFT Code. Moved over from raven and refactored
#review-3374589 @guillaume.abadie
Change 3377910 on 2017/04/03 by David.Hill
GPU FFT: Fix Linux Build
adding a missing template<> to an IMPLEMENT_SHADER_TYPE
Change 3378751 on 2017/04/04 by Marcus.Wassmer
HQ particle lights now spawn attached to the same socket as their parent module.
Change 3378819 on 2017/04/04 by Richard.Wallis
Should be no need to protect shader cache against RHI thread now.
Change 3378823 on 2017/04/04 by Richard.Wallis
FRHIShaderLibrary Opaque Type
- Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library.
- Assumed that only Native libraries will end up in the RHICreate*Shader functions.
- ShaderCache and ShaderCode Libraries now inherit from a common factory interface.
Change 3378883 on 2017/04/04 by Arne.Schober
DR - Fix DCC build
Change 3378885 on 2017/04/04 by Richard.Wallis
Metal resource cast compile fix post merge.
Change 3378946 on 2017/04/04 by Chris.Bunner
SM4 assert fix.
Change 3378953 on 2017/04/04 by Chris.Bunner
Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users.
Allowed material nodes to opt out of mask-based pin coloration.
#tests Compiled most Paragon materials + QAGame test maps.
#jira UE-39885
Change 3379189 on 2017/04/04 by Arne.Schober
DR - Fix aftermath staging
Change 3379229 on 2017/04/04 by Arne.Schober
DR - Fix missing include
Change 3379374 on 2017/04/04 by Mark.Satterthwaite
Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream.
Change 3379505 on 2017/04/04 by Rolando.Caloca
DR - Fix mismatched interpolators
Change 3379539 on 2017/04/04 by Mark.Satterthwaite
No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right...
#jira UE-43626
Change 3379561 on 2017/04/04 by Rolando.Caloca
DR - Fix root signature issues on D3D12 PC
Change 3379590 on 2017/04/04 by Mark.Satterthwaite
Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture.
#jira UE-43626
Change 3379917 on 2017/04/04 by Uriel.Doyon
Fix to input mismatch
Change 3380578 on 2017/04/05 by Chris.Bunner
Shader type fixes.
#jira UE-43652
Change 3380639 on 2017/04/05 by Rolando.Caloca
DR - Expose GetOrCreate PSO and document
Change 3380821 on 2017/04/05 by Guillaume.Abadie
Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures()
#jira UE-43642
Change 3381092 on 2017/04/05 by Guillaume.Abadie
Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting.
This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations.
Change 3381300 on 2017/04/05 by Mark.Satterthwaite
Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface.
#jira UE-43597
Change 3381359 on 2017/04/05 by Guillaume.Abadie
Back out changelist 3381092
Change 3381421 on 2017/04/05 by Mark.Satterthwaite
Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions.
#jira UE-43689
Change 3381422 on 2017/04/05 by Mark.Satterthwaite
Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery.
#jira UE-43691
Change 3381503 on 2017/04/05 by Daniel.Wright
More intuitive controls for Volumetric Fog
* Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction
* InscatteringColorCubemap is now supported by Volumetric Fog
* Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing
* Tweaked GVolumetricFogDepthDistributionScale better for nearby details
* Volume Materials have twice the interpolators available
Change 3381527 on 2017/04/05 by Mark.Satterthwaite
Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements.
Change 3381671 on 2017/04/05 by Mark.Satterthwaite
Better error message for failure to compile shaders remotely from PC for Metal.
Change 3381769 on 2017/04/05 by Rolando.Caloca
DR - Added lock texture array 2d on Vulkan
Change 3382003 on 2017/04/05 by Mark.Satterthwaite
Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended.
Change 3382030 on 2017/04/05 by Zachary.Wilson
Fix compiling Metal text shaders from PC broken in merge from task stream.
#submitter mark.satterthwaite
#jira UE-43652
Change 3382880 on 2017/04/06 by Mark.Satterthwaite
Michael Trepka's CL #3379927:
VolumetricFogVoxelization implementation for Mac
Change 3383315 on 2017/04/06 by Mark.Satterthwaite
Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory.
#jira UE-43739
Change 3384639 on 2017/04/07 by Marcus.Wassmer
Move ShaderResource version bump to RenderingObjectVersion
Change 3384704 on 2017/04/07 by Mark.Satterthwaite
Compile fix for merge.
Change 3384933 on 2017/04/07 by Rolando.Caloca
DR - Fix skin cache crash with BP (copy 3384714)
Change 3385104 on 2017/04/07 by Mark.Satterthwaite
Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity.
#jira UE-43783
Change 3385105 on 2017/04/07 by Mark.Satterthwaite
Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783
#jira UE-43783
Change 3385118 on 2017/04/07 by Arne.Schober
DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled
#RB none
Change 3385149 on 2017/04/07 by Marcus.Wassmer
Fix skincache motion blur
Change 3385189 on 2017/04/07 by Rolando.Caloca
DR - Fix swapchain format for editor on Vulkan
Change 3385287 on 2017/04/07 by Mark.Satterthwaite
Enable SM5 on Intel as of 10.12.4 and later.
Change 3385347 on 2017/04/07 by Rolando.Caloca
DR - Temp fix for GL4 corruption on editor
#jira UE-43785
Change 3385363 on 2017/04/07 by Rolando.Caloca
DR - Actually fix all win platforms for GL bug
#jira UE-43785
Change 3385557 on 2017/04/07 by Arne.Schober
DR - [UE-43205] - Fix mesh paint
#RB none
Change 3385608 on 2017/04/07 by Daniel.Wright
Fixed SampleCmp being used on a non-depth texture, causing a d3d error
Change 3385980 on 2017/04/10 by Rolando.Caloca
DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture
Change 3386042 on 2017/04/10 by Rolando.Caloca
DR - Fix metal merge issue
Change 3386157 on 2017/04/10 by Rolando.Caloca
DR - Remove VS2013 libs generation off hlslcc & glslang (to match main)
Change 3386356 on 2017/04/10 by Chris.Bunner
Resolving merge errors.
Change 3386414 on 2017/04/10 by Chris.Bunner
Resolved merge issue in RendererScene.cpp.
Change 3386700 on 2017/04/10 by Mark.Satterthwaite
Silence documentation warnings.
Change 3387178 on 2017/04/10 by Chris.Bunner
Removed invalid mask correction on MakeMA material nodes.
Change 3388177 on 2017/04/11 by Marcus.Wassmer
Disable ensure that is no longer relevant now that we bind clear colors on texture creation
Change 3388261 on 2017/04/11 by Chris.Bunner
Static analysis fix.
[CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
}
2015-02-22 17:53:26 -05:00
}
2019-06-11 18:27:07 -04:00
int32 GetMotionBlurQualityFromCVar ( )
{
int32 MotionBlurQuality ;
static const auto ICVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.MotionBlurQuality " ) ) ;
MotionBlurQuality = FMath : : Clamp ( ICVar - > GetValueOnRenderThread ( ) , 0 , 4 ) ;
return MotionBlurQuality ;
}
2021-12-03 01:31:15 -05:00
DECLARE_GPU_STAT ( MotionBlur )
2019-06-11 18:27:07 -04:00
}
2021-12-03 13:05:09 -05:00
const int32 kMotionBlurFlattenTileSize = FVelocityFlattenTextures : : kTileSize ;
2021-12-03 12:40:10 -05:00
const int32 kMotionBlurFilterTileSize = 16 ;
2019-06-11 18:27:07 -04:00
const int32 kMotionBlurComputeTileSizeX = 8 ;
const int32 kMotionBlurComputeTileSizeY = 8 ;
bool IsMotionBlurEnabled ( const FViewInfo & View )
{
if ( View . GetFeatureLevel ( ) < ERHIFeatureLevel : : SM5 )
{
return false ;
}
const int32 MotionBlurQuality = GetMotionBlurQualityFromCVar ( ) ;
const FSceneViewFamily & ViewFamily = * View . Family ;
return ViewFamily . EngineShowFlags . PostProcessing
& & ViewFamily . EngineShowFlags . MotionBlur
& & View . FinalPostProcessSettings . MotionBlurAmount > 0.001f
& & View . FinalPostProcessSettings . MotionBlurMax > 0.001f
& & ViewFamily . bRealtimeUpdate
& & MotionBlurQuality > 0
& & ! IsSimpleForwardShadingEnabled ( GShaderPlatformForFeatureLevel [ View . GetFeatureLevel ( ) ] )
2020-06-23 18:40:00 -04:00
& & ( CVarAllowMotionBlurInVR - > GetInt ( ) ! = 0 | | ! GEngine - > StereoRenderingDevice . IsValid ( ) | | ! GEngine - > StereoRenderingDevice - > IsStereoEnabled ( ) ) ;
2019-06-11 18:27:07 -04:00
}
2019-09-14 09:45:25 -04:00
bool IsVisualizeMotionBlurEnabled ( const FViewInfo & View )
{
return View . Family - > EngineShowFlags . VisualizeMotionBlur & & View . GetFeatureLevel ( ) > = ERHIFeatureLevel : : SM5 ;
}
2019-06-11 18:27:07 -04:00
bool IsMotionBlurScatterRequired ( const FViewInfo & View , const FScreenPassTextureViewport & SceneViewport )
{
const FSceneViewState * ViewState = View . ViewState ;
2019-09-17 19:14:36 -04:00
const float ViewportWidth = SceneViewport . Rect . Width ( ) ;
2019-06-11 18:27:07 -04:00
// Normalize percentage value.
const float VelocityMax = View . FinalPostProcessSettings . MotionBlurMax / 100.0f ;
// Scale by 0.5 due to blur samples going both ways and convert to tiles.
2019-09-17 19:14:36 -04:00
const float VelocityMaxInTiles = VelocityMax * ViewportWidth * ( 0.5f / 16.0f ) ;
2019-06-11 18:27:07 -04:00
// Compute path only supports the immediate neighborhood of tiles.
const float TileDistanceMaxGathered = 3.0f ;
// Scatter is used when maximum velocity exceeds the distance supported by the gather approach.
const bool bIsScatterRequiredByVelocityLength = VelocityMaxInTiles > TileDistanceMaxGathered ;
// Cinematic is paused.
const bool bInPausedCinematic = ( ViewState & & ViewState - > SequencerState = = ESS_Paused ) ;
// Use the scatter approach if requested by cvar or we're in a paused cinematic (higher quality).
const bool bIsScatterRequiredByUser = CVarMotionBlurScatter . GetValueOnRenderThread ( ) = = 1 | | bInPausedCinematic ;
return bIsScatterRequiredByUser | | bIsScatterRequiredByVelocityLength ;
}
2019-09-17 19:14:36 -04:00
FIntPoint GetMotionBlurTileCount ( FIntPoint SizeInPixels )
2019-06-11 18:27:07 -04:00
{
2021-12-03 12:40:10 -05:00
const uint32 TilesX = FMath : : DivideAndRoundUp ( SizeInPixels . X , kMotionBlurFlattenTileSize ) ;
const uint32 TilesY = FMath : : DivideAndRoundUp ( SizeInPixels . Y , kMotionBlurFlattenTileSize ) ;
2019-06-11 18:27:07 -04:00
return FIntPoint ( TilesX , TilesY ) ;
}
2021-12-03 12:40:10 -05:00
bool DoesMotionBlurNeedsHalfResInput ( )
{
return CVarMotionBlurHalfResInput . GetValueOnRenderThread ( ) ! = 0 ;
}
2019-06-11 18:27:07 -04:00
EMotionBlurQuality GetMotionBlurQuality ( )
{
// Quality levels begin at 1. 0 is reserved for 'off'.
const int32 Quality = FMath : : Clamp ( GetMotionBlurQualityFromCVar ( ) , 1 , static_cast < int32 > ( EMotionBlurQuality : : MAX ) ) ;
return static_cast < EMotionBlurQuality > ( Quality - 1 ) ;
}
2020-03-20 13:59:19 -04:00
EMotionBlurFilter GetMotionBlurFilter ( )
{
return CVarMotionBlurSeparable . GetValueOnRenderThread ( ) ! = 0 ? EMotionBlurFilter : : Separable : EMotionBlurFilter : : Unified ;
}
2021-12-03 01:16:55 -05:00
int32 GetMotionBlurDirections ( )
{
return FMath : : Clamp ( CVarMotionBlurDirections . GetValueOnRenderThread ( ) , 1 , 2 ) ;
}
2021-12-03 13:05:09 -05:00
// static
2022-02-24 14:50:42 -05:00
bool FVelocityFlattenTextures : : AllowExternal ( const FViewInfo & View )
2021-12-03 13:05:09 -05:00
{
2022-02-24 14:50:42 -05:00
const bool bEnableCameraMotionBlur = View . bCameraMotionBlur . Get ( true ) ;
const bool bOverrideCameraMotionBlur = View . ClipToPrevClipOverride . IsSet ( ) ;
// Do not use external velocity flatten passes if the camera motion blur needs to be modified.
if ( ! bEnableCameraMotionBlur | | bOverrideCameraMotionBlur )
{
return false ;
}
2021-12-03 13:05:09 -05:00
return CVarMotionBlurAllowExternalVelocityFlatten . GetValueOnRenderThread ( ) ! = 0 ;
}
2019-06-11 18:27:07 -04:00
FRHISamplerState * GetMotionBlurColorSampler ( )
{
bool bFiltered = false ;
# if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
bFiltered = CVarMotionBlurFiltering . GetValueOnRenderThread ( ) ! = 0 ;
# endif // !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
if ( bFiltered )
{
return TStaticSamplerState < SF_Bilinear , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
}
2015-02-22 17:53:26 -05:00
else
{
2019-06-11 18:27:07 -04:00
return TStaticSamplerState < SF_Point , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358140 on 2017/03/22 by Rolando.Caloca
DR - Fix copy to cube face
- Compile fix when using dump layer
- Add new error enum
Change 3358301 on 2017/03/22 by Mitchell.Wilson
Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section.
Change 3358477 on 2017/03/22 by Mitchell.Wilson
Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning.
Change 3358529 on 2017/03/22 by Mark.Satterthwaite
Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code.
Change 3358745 on 2017/03/22 by Mark.Satterthwaite
Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected.
Change 3358837 on 2017/03/22 by Joe.Graf
Merge of pull request #3214 for the RenderDocPlugin
#CodeReview: matt.kuhlenschmidt, marcus.wassmer
#rb: marcus.wassmer
Change 3359112 on 2017/03/22 by Ben.Salem
Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined.
#tests Ran several Showdown test runs with plugin!
Change 3359363 on 2017/03/22 by Joe.Graf
First pass at non-unity & no pch compilation
Change 3359449 on 2017/03/22 by Joe.Graf
Added missing null check when exporting a EXR on Linux (UE-40268)
#CodeReview: dmitry.rekman
#rb: n/a
Change 3360349 on 2017/03/23 by Guillaume.Abadie
Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts.
#jira UE-42920
Change 3360405 on 2017/03/23 by Marcus.Wassmer
Better method for detecting Kepler
Change 3360718 on 2017/03/23 by Daniel.Wright
Planar reflections handle views smaller than the render target in a general way
* Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined)
* Planar reflections are now supported in splitscreen
Change 3360758 on 2017/03/23 by Daniel.Wright
[Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead
Change 3360762 on 2017/03/23 by Daniel.Wright
[Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool
Change 3360768 on 2017/03/23 by Daniel.Wright
[Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram
Change 3360770 on 2017/03/23 by Daniel.Wright
[Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox
Change 3360771 on 2017/03/23 by Daniel.Wright
[Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light.
Change 3360774 on 2017/03/23 by Daniel.Wright
[Copy] Distance field cvar comments
Change 3360782 on 2017/03/23 by Daniel.Wright
[Copy] Disabled selection color on Volume materials
Change 3360795 on 2017/03/23 by Daniel.Wright
[Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density.
Change 3360799 on 2017/03/23 by Daniel.Wright
[Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y
Change 3360806 on 2017/03/23 by Daniel.Wright
[Copy] Fixed volumetric fog being offset when viewport min is not 0
Change 3360809 on 2017/03/23 by Daniel.Wright
[Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale.
Change 3361651 on 2017/03/23 by Brian.Karis
Higher quality sharp SSR at quality 4
Change 3361678 on 2017/03/23 by Brian.Karis
Fresnel darkens diffuse for clearcoat.
Change 3361683 on 2017/03/23 by Brian.Karis
Fixed SSR artifact
Change 3361691 on 2017/03/23 by Brian.Karis
Chagned min roughness limit
Change 3361707 on 2017/03/23 by Brian.Karis
Added inverse film tone map
Change 3361726 on 2017/03/23 by Brian.Karis
Better precision inverse
Change 3361758 on 2017/03/23 by Brian.Karis
Material flag normal curvature to roughness is no longer forward only.
Change 3361765 on 2017/03/23 by Brian.Karis
Update ACES
Change 3361774 on 2017/03/23 by Brian.Karis
Cleaned up alpha support and disabled screen edge clipping.
Change 3362478 on 2017/03/24 by Guillaume.Abadie
Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output.
#author Brian.Karis
#jira UE-42920
Change 3362738 on 2017/03/24 by Rolando.Caloca
DR - Hide scene capture on IF
Change 3362890 on 2017/03/24 by Guillaume.Abadie
Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha
Change 3363665 on 2017/03/24 by Mark.Satterthwaite
PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous)
Change 3363866 on 2017/03/24 by Arne.Schober
DR - Updated NVAPI
#RB Marcus.Wassmer
Change 3364300 on 2017/03/24 by Brian.Karis
SSR use dynamic velocity
Change 3364372 on 2017/03/24 by Brian.Karis
Fix changing off axis projection velocities.
Change 3364373 on 2017/03/24 by Brian.Karis
Enabled velocity drawing in scene captures
Change 3365531 on 2017/03/27 by Guillaume.Abadie
Computes the material's screen position material expression directly from the pixel shader SvPosition
Change 3365764 on 2017/03/27 by Chris.Bunner
Lowering severity of crash for missing values in scalability.ini.
#jira UE-41331
Change 3365916 on 2017/03/27 by Guillaume.Abadie
Exposes the viewport offset within the view property material expression
Change 3365979 on 2017/03/27 by Brian.Karis
Fixed skylight intensity from double applying
Change 3365987 on 2017/03/27 by Brian.Karis
Stopped post process indirect lighting intensity from scaling skylight reflections
Change 3365991 on 2017/03/27 by Brian.Karis
Fix for static analysis
Change 3366028 on 2017/03/27 by Daniel.Wright
Volumetric fog supports static shadowing from Stationary lights
* Using bilinear on static shadowmap depths + 1 PCF to smooth out results
Change 3366029 on 2017/03/27 by Daniel.Wright
Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog
Change 3366055 on 2017/03/27 by Guillaume.Abadie
Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies.
Change 3366447 on 2017/03/27 by Simon.Tourangeau
Fix IES light profile importer.
- Bug in the LM-63-1986 format importer.
Change 3366836 on 2017/03/27 by Brian.Karis
ClearUAV now supports int types
Change 3367435 on 2017/03/28 by Benjamin.Hyder
Submitting Decal Automation map for initial approval
Change 3367572 on 2017/03/28 by Chris.Bunner
Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs.
#jira UE-42989
Change 3367756 on 2017/03/28 by Olaf.Piesche
Niagara material usage flags
Change 3367835 on 2017/03/28 by Marcus.Wassmer
Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene.
Change 3367837 on 2017/03/28 by Marcus.Wassmer
Missed a file.
Change 3367838 on 2017/03/28 by Richard.Wallis
Updated items from original shelved version by Mark Satt:
- Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's
**Description below taken from Mark Satt's original verison of this in CL3343280**
Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries.
Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently.
- All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work.
- With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary.
- For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping.
- File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic.
- This bumps the object version and will cause all content to recook.
- Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller).
Change 3367854 on 2017/03/28 by Mark.Satterthwaite
Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be.
Change 3367877 on 2017/03/28 by Brian.Karis
Fixed linux build hopefully
Change 3368001 on 2017/03/28 by Mark.Satterthwaite
Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves.
Change 3368019 on 2017/03/28 by Mark.Satterthwaite
And another fix for Windows compilation of MetalShaderFormat.
Change 3368042 on 2017/03/28 by Mark.Satterthwaite
And a couple of simpler MSVC errors.
Change 3368271 on 2017/03/28 by Mark.Satterthwaite
Make SceneRenderTargets compile again.
Change 3368691 on 2017/03/28 by Daniel.Wright
[Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis
Change 3369689 on 2017/03/29 by Marcus.Wassmer
Fix non editor compile for now
Change 3369862 on 2017/03/29 by Marcus.Wassmer
Get the rest of the things compiling again.
Change 3369896 on 2017/03/29 by Chris.Bunner
Enabling AMD HDR support by default.
#jira UE-42113
Change 3370535 on 2017/03/29 by Marcus.Wassmer
DR - Fix template explicit instantiation for ClearUAV permutations
#RB Brian.Karis, Arne.Schober
Change 3370704 on 2017/03/29 by Rolando.Caloca
DR - Rewrote GPU Skin Cache
- Per section buffers
- Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB)
Copied from 3370529
Change 3371389 on 2017/03/30 by Richard.Wallis
Remove temp working directories after archive packages built.
Change 3371641 on 2017/03/30 by Rolando.Caloca
DR - Copy 3371640 (fix mem leak)
Change 3372436 on 2017/03/30 by Uriel.Doyon
Added flags in UPrimitiveComponent to keep track of its state in the streaming manager.
This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic.
Removed the limitation of only processing UMeshComponent when handling spawed primitive.
This releases the level manager from having to manage dynamic primitives.
This improves performance by not having to manage dynamic references in the level manager.
Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling
many cases automatically where previously a manual callback to notify would have been required.
Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state
because of lack of references in the streamer.
Change 3372740 on 2017/03/30 by Chris.Bunner
[Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute).
StencilSceneTexture added to deferred list.
A few known issues to be fixed in a follow-up CL.
Change 3372765 on 2017/03/30 by Uriel.Doyon
Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update
Change 3372979 on 2017/03/30 by Richard.Hinckley
#jira UE-43501
The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects.
Change 3373053 on 2017/03/30 by Simon.Tourangeau
LPV Fade support
- mostly integrated from CL 2959511
Change 3373272 on 2017/03/30 by Uriel.Doyon
Added support for the concurrent update of dynamic primitives by the streaming manager.
Change 3373450 on 2017/03/30 by Rolando.Caloca
DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory
Copy 3373364
#jira UE-43492
Change 3373470 on 2017/03/30 by Marcus.Wassmer
Nvidia Aftermath support
Change 3374187 on 2017/03/31 by Chris.Bunner
Volume texture support for CombineLUTs/Tonemap compute pass.
Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS.
Skip compute post process out-of-bounds writes.
Unsigned type conversion fixes.
Trimmed compute post process shader inputs.
Change 3374233 on 2017/03/31 by Chris.Bunner
Removed several redundant post process compute fences and resource transitions.
Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch).
Change 3374412 on 2017/03/31 by Rolando.Caloca
DR - Fix static analysis
Change 3374544 on 2017/03/31 by Richard.Wallis
FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library.
Future Work
- This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver.
- Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state
- This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock
Change 3374588 on 2017/03/31 by Richard.Wallis
Windows Compile Fixes
Change 3374810 on 2017/03/31 by Benjamin.Hyder
updating recommended GPU drivers
Change 3375207 on 2017/03/31 by Rolando.Caloca
DR - vk - Fixed swapchain format selection for some Linux platforms
Change 3375248 on 2017/03/31 by Rolando.Caloca
DR - vk - Prefer D32S8
Change 3375495 on 2017/03/31 by Rolando.Caloca
DR - vk - Update to sdk 1.0.42.2
Change 3375496 on 2017/03/31 by Rolando.Caloca
DR - Force compiling with updated Vulkan SDK
Change 3375636 on 2017/03/31 by Mark.Satterthwaite
Copying Metal improvements from task stream, with some modifications:
- Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts.
- Support for Apple's Instruments "Points of Interest" tool.
- Consolidation of some Mac & iOS compiler, memory and thread handling code.
- Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects.
- Improvements to the internal FMetalDebug layer, still off by default.
- Limited support for Xcode automatic code-signing for iOS/tvOS.
- Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals.
- Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing.
- Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types.
- Smattering of lesser fixes.
Change 3375654 on 2017/03/31 by Mark.Satterthwaite
Incremental Windows build fix.
Change 3375656 on 2017/04/01 by Mark.Satterthwaite
Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...).
Change 3375797 on 2017/04/01 by Mark.Satterthwaite
Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds...
Change 3375798 on 2017/04/01 by Mark.Satterthwaite
Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream.
Change 3375835 on 2017/04/01 by Mark.Satterthwaite
Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly.
Change 3376143 on 2017/04/02 by Mark.Satterthwaite
Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system.
Change 3376324 on 2017/04/03 by Chris.Bunner
Fixed cvar re-registration log spam and flagged a testing-only cvar as such.
Change 3376726 on 2017/04/03 by Benjamin.Hyder
Submitting initial HDR test map (WIP)
Change 3376756 on 2017/04/03 by Guillaume.Abadie
Fixes scene captures ordering's backward compatibility.
Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor.
Change 3377378 on 2017/04/03 by Arne.Schober
DR - Fix ShaderRecompiling over and over again
#RB Chris.Bunner
Change 3377512 on 2017/04/03 by Daniel.Wright
[Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events
Change 3377518 on 2017/04/03 by Daniel.Wright
[Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12
Change 3377526 on 2017/04/03 by Daniel.Wright
[Copy] "Ran out of GPU queries!" log only happens once
Change 3377535 on 2017/04/03 by Daniel.Wright
[Copy] Fixed unreferenced local variable
Change 3377539 on 2017/04/03 by Daniel.Wright
[Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages
Change 3377546 on 2017/04/03 by Daniel.Wright
[Copy] Added r.LightMaxDrawDistanceScale for local light scalability
Change 3377553 on 2017/04/03 by Daniel.Wright
[Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path
Change 3377560 on 2017/04/03 by Daniel.Wright
[Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes
Change 3377565 on 2017/04/03 by Daniel.Wright
[Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false)
Change 3377572 on 2017/04/03 by Daniel.Wright
[Copy] Disabled point / spot lights with MaxDrawDistance on LowPC
Change 3377586 on 2017/04/03 by Daniel.Wright
Fixed compile error
Change 3377699 on 2017/04/03 by David.Hill
FFT Code. Moved over from raven and refactored
#review-3374589 @guillaume.abadie
Change 3377910 on 2017/04/03 by David.Hill
GPU FFT: Fix Linux Build
adding a missing template<> to an IMPLEMENT_SHADER_TYPE
Change 3378751 on 2017/04/04 by Marcus.Wassmer
HQ particle lights now spawn attached to the same socket as their parent module.
Change 3378819 on 2017/04/04 by Richard.Wallis
Should be no need to protect shader cache against RHI thread now.
Change 3378823 on 2017/04/04 by Richard.Wallis
FRHIShaderLibrary Opaque Type
- Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library.
- Assumed that only Native libraries will end up in the RHICreate*Shader functions.
- ShaderCache and ShaderCode Libraries now inherit from a common factory interface.
Change 3378883 on 2017/04/04 by Arne.Schober
DR - Fix DCC build
Change 3378885 on 2017/04/04 by Richard.Wallis
Metal resource cast compile fix post merge.
Change 3378946 on 2017/04/04 by Chris.Bunner
SM4 assert fix.
Change 3378953 on 2017/04/04 by Chris.Bunner
Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users.
Allowed material nodes to opt out of mask-based pin coloration.
#tests Compiled most Paragon materials + QAGame test maps.
#jira UE-39885
Change 3379189 on 2017/04/04 by Arne.Schober
DR - Fix aftermath staging
Change 3379229 on 2017/04/04 by Arne.Schober
DR - Fix missing include
Change 3379374 on 2017/04/04 by Mark.Satterthwaite
Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream.
Change 3379505 on 2017/04/04 by Rolando.Caloca
DR - Fix mismatched interpolators
Change 3379539 on 2017/04/04 by Mark.Satterthwaite
No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right...
#jira UE-43626
Change 3379561 on 2017/04/04 by Rolando.Caloca
DR - Fix root signature issues on D3D12 PC
Change 3379590 on 2017/04/04 by Mark.Satterthwaite
Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture.
#jira UE-43626
Change 3379917 on 2017/04/04 by Uriel.Doyon
Fix to input mismatch
Change 3380578 on 2017/04/05 by Chris.Bunner
Shader type fixes.
#jira UE-43652
Change 3380639 on 2017/04/05 by Rolando.Caloca
DR - Expose GetOrCreate PSO and document
Change 3380821 on 2017/04/05 by Guillaume.Abadie
Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures()
#jira UE-43642
Change 3381092 on 2017/04/05 by Guillaume.Abadie
Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting.
This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations.
Change 3381300 on 2017/04/05 by Mark.Satterthwaite
Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface.
#jira UE-43597
Change 3381359 on 2017/04/05 by Guillaume.Abadie
Back out changelist 3381092
Change 3381421 on 2017/04/05 by Mark.Satterthwaite
Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions.
#jira UE-43689
Change 3381422 on 2017/04/05 by Mark.Satterthwaite
Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery.
#jira UE-43691
Change 3381503 on 2017/04/05 by Daniel.Wright
More intuitive controls for Volumetric Fog
* Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction
* InscatteringColorCubemap is now supported by Volumetric Fog
* Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing
* Tweaked GVolumetricFogDepthDistributionScale better for nearby details
* Volume Materials have twice the interpolators available
Change 3381527 on 2017/04/05 by Mark.Satterthwaite
Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements.
Change 3381671 on 2017/04/05 by Mark.Satterthwaite
Better error message for failure to compile shaders remotely from PC for Metal.
Change 3381769 on 2017/04/05 by Rolando.Caloca
DR - Added lock texture array 2d on Vulkan
Change 3382003 on 2017/04/05 by Mark.Satterthwaite
Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended.
Change 3382030 on 2017/04/05 by Zachary.Wilson
Fix compiling Metal text shaders from PC broken in merge from task stream.
#submitter mark.satterthwaite
#jira UE-43652
Change 3382880 on 2017/04/06 by Mark.Satterthwaite
Michael Trepka's CL #3379927:
VolumetricFogVoxelization implementation for Mac
Change 3383315 on 2017/04/06 by Mark.Satterthwaite
Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory.
#jira UE-43739
Change 3384639 on 2017/04/07 by Marcus.Wassmer
Move ShaderResource version bump to RenderingObjectVersion
Change 3384704 on 2017/04/07 by Mark.Satterthwaite
Compile fix for merge.
Change 3384933 on 2017/04/07 by Rolando.Caloca
DR - Fix skin cache crash with BP (copy 3384714)
Change 3385104 on 2017/04/07 by Mark.Satterthwaite
Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity.
#jira UE-43783
Change 3385105 on 2017/04/07 by Mark.Satterthwaite
Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783
#jira UE-43783
Change 3385118 on 2017/04/07 by Arne.Schober
DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled
#RB none
Change 3385149 on 2017/04/07 by Marcus.Wassmer
Fix skincache motion blur
Change 3385189 on 2017/04/07 by Rolando.Caloca
DR - Fix swapchain format for editor on Vulkan
Change 3385287 on 2017/04/07 by Mark.Satterthwaite
Enable SM5 on Intel as of 10.12.4 and later.
Change 3385347 on 2017/04/07 by Rolando.Caloca
DR - Temp fix for GL4 corruption on editor
#jira UE-43785
Change 3385363 on 2017/04/07 by Rolando.Caloca
DR - Actually fix all win platforms for GL bug
#jira UE-43785
Change 3385557 on 2017/04/07 by Arne.Schober
DR - [UE-43205] - Fix mesh paint
#RB none
Change 3385608 on 2017/04/07 by Daniel.Wright
Fixed SampleCmp being used on a non-depth texture, causing a d3d error
Change 3385980 on 2017/04/10 by Rolando.Caloca
DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture
Change 3386042 on 2017/04/10 by Rolando.Caloca
DR - Fix metal merge issue
Change 3386157 on 2017/04/10 by Rolando.Caloca
DR - Remove VS2013 libs generation off hlslcc & glslang (to match main)
Change 3386356 on 2017/04/10 by Chris.Bunner
Resolving merge errors.
Change 3386414 on 2017/04/10 by Chris.Bunner
Resolved merge issue in RendererScene.cpp.
Change 3386700 on 2017/04/10 by Mark.Satterthwaite
Silence documentation warnings.
Change 3387178 on 2017/04/10 by Chris.Bunner
Removed invalid mask correction on MakeMA material nodes.
Change 3388177 on 2017/04/11 by Marcus.Wassmer
Disable ensure that is no longer relevant now that we bind clear colors on texture creation
Change 3388261 on 2017/04/11 by Chris.Bunner
Static analysis fix.
[CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
}
}
2019-06-11 18:27:07 -04:00
FRHISamplerState * GetMotionBlurVelocitySampler ( )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3358140 on 2017/03/22 by Rolando.Caloca
DR - Fix copy to cube face
- Compile fix when using dump layer
- Add new error enum
Change 3358301 on 2017/03/22 by Mitchell.Wilson
Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section.
Change 3358477 on 2017/03/22 by Mitchell.Wilson
Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning.
Change 3358529 on 2017/03/22 by Mark.Satterthwaite
Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code.
Change 3358745 on 2017/03/22 by Mark.Satterthwaite
Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected.
Change 3358837 on 2017/03/22 by Joe.Graf
Merge of pull request #3214 for the RenderDocPlugin
#CodeReview: matt.kuhlenschmidt, marcus.wassmer
#rb: marcus.wassmer
Change 3359112 on 2017/03/22 by Ben.Salem
Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined.
#tests Ran several Showdown test runs with plugin!
Change 3359363 on 2017/03/22 by Joe.Graf
First pass at non-unity & no pch compilation
Change 3359449 on 2017/03/22 by Joe.Graf
Added missing null check when exporting a EXR on Linux (UE-40268)
#CodeReview: dmitry.rekman
#rb: n/a
Change 3360349 on 2017/03/23 by Guillaume.Abadie
Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts.
#jira UE-42920
Change 3360405 on 2017/03/23 by Marcus.Wassmer
Better method for detecting Kepler
Change 3360718 on 2017/03/23 by Daniel.Wright
Planar reflections handle views smaller than the render target in a general way
* Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined)
* Planar reflections are now supported in splitscreen
Change 3360758 on 2017/03/23 by Daniel.Wright
[Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead
Change 3360762 on 2017/03/23 by Daniel.Wright
[Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool
Change 3360768 on 2017/03/23 by Daniel.Wright
[Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram
Change 3360770 on 2017/03/23 by Daniel.Wright
[Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox
Change 3360771 on 2017/03/23 by Daniel.Wright
[Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light.
Change 3360774 on 2017/03/23 by Daniel.Wright
[Copy] Distance field cvar comments
Change 3360782 on 2017/03/23 by Daniel.Wright
[Copy] Disabled selection color on Volume materials
Change 3360795 on 2017/03/23 by Daniel.Wright
[Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density.
Change 3360799 on 2017/03/23 by Daniel.Wright
[Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y
Change 3360806 on 2017/03/23 by Daniel.Wright
[Copy] Fixed volumetric fog being offset when viewport min is not 0
Change 3360809 on 2017/03/23 by Daniel.Wright
[Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale.
Change 3361651 on 2017/03/23 by Brian.Karis
Higher quality sharp SSR at quality 4
Change 3361678 on 2017/03/23 by Brian.Karis
Fresnel darkens diffuse for clearcoat.
Change 3361683 on 2017/03/23 by Brian.Karis
Fixed SSR artifact
Change 3361691 on 2017/03/23 by Brian.Karis
Chagned min roughness limit
Change 3361707 on 2017/03/23 by Brian.Karis
Added inverse film tone map
Change 3361726 on 2017/03/23 by Brian.Karis
Better precision inverse
Change 3361758 on 2017/03/23 by Brian.Karis
Material flag normal curvature to roughness is no longer forward only.
Change 3361765 on 2017/03/23 by Brian.Karis
Update ACES
Change 3361774 on 2017/03/23 by Brian.Karis
Cleaned up alpha support and disabled screen edge clipping.
Change 3362478 on 2017/03/24 by Guillaume.Abadie
Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output.
#author Brian.Karis
#jira UE-42920
Change 3362738 on 2017/03/24 by Rolando.Caloca
DR - Hide scene capture on IF
Change 3362890 on 2017/03/24 by Guillaume.Abadie
Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha
Change 3363665 on 2017/03/24 by Mark.Satterthwaite
PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous)
Change 3363866 on 2017/03/24 by Arne.Schober
DR - Updated NVAPI
#RB Marcus.Wassmer
Change 3364300 on 2017/03/24 by Brian.Karis
SSR use dynamic velocity
Change 3364372 on 2017/03/24 by Brian.Karis
Fix changing off axis projection velocities.
Change 3364373 on 2017/03/24 by Brian.Karis
Enabled velocity drawing in scene captures
Change 3365531 on 2017/03/27 by Guillaume.Abadie
Computes the material's screen position material expression directly from the pixel shader SvPosition
Change 3365764 on 2017/03/27 by Chris.Bunner
Lowering severity of crash for missing values in scalability.ini.
#jira UE-41331
Change 3365916 on 2017/03/27 by Guillaume.Abadie
Exposes the viewport offset within the view property material expression
Change 3365979 on 2017/03/27 by Brian.Karis
Fixed skylight intensity from double applying
Change 3365987 on 2017/03/27 by Brian.Karis
Stopped post process indirect lighting intensity from scaling skylight reflections
Change 3365991 on 2017/03/27 by Brian.Karis
Fix for static analysis
Change 3366028 on 2017/03/27 by Daniel.Wright
Volumetric fog supports static shadowing from Stationary lights
* Using bilinear on static shadowmap depths + 1 PCF to smooth out results
Change 3366029 on 2017/03/27 by Daniel.Wright
Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog
Change 3366055 on 2017/03/27 by Guillaume.Abadie
Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies.
Change 3366447 on 2017/03/27 by Simon.Tourangeau
Fix IES light profile importer.
- Bug in the LM-63-1986 format importer.
Change 3366836 on 2017/03/27 by Brian.Karis
ClearUAV now supports int types
Change 3367435 on 2017/03/28 by Benjamin.Hyder
Submitting Decal Automation map for initial approval
Change 3367572 on 2017/03/28 by Chris.Bunner
Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs.
#jira UE-42989
Change 3367756 on 2017/03/28 by Olaf.Piesche
Niagara material usage flags
Change 3367835 on 2017/03/28 by Marcus.Wassmer
Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene.
Change 3367837 on 2017/03/28 by Marcus.Wassmer
Missed a file.
Change 3367838 on 2017/03/28 by Richard.Wallis
Updated items from original shelved version by Mark Satt:
- Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's
**Description below taken from Mark Satt's original verison of this in CL3343280**
Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries.
Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently.
- All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work.
- With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary.
- For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping.
- File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic.
- This bumps the object version and will cause all content to recook.
- Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller).
Change 3367854 on 2017/03/28 by Mark.Satterthwaite
Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be.
Change 3367877 on 2017/03/28 by Brian.Karis
Fixed linux build hopefully
Change 3368001 on 2017/03/28 by Mark.Satterthwaite
Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves.
Change 3368019 on 2017/03/28 by Mark.Satterthwaite
And another fix for Windows compilation of MetalShaderFormat.
Change 3368042 on 2017/03/28 by Mark.Satterthwaite
And a couple of simpler MSVC errors.
Change 3368271 on 2017/03/28 by Mark.Satterthwaite
Make SceneRenderTargets compile again.
Change 3368691 on 2017/03/28 by Daniel.Wright
[Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis
Change 3369689 on 2017/03/29 by Marcus.Wassmer
Fix non editor compile for now
Change 3369862 on 2017/03/29 by Marcus.Wassmer
Get the rest of the things compiling again.
Change 3369896 on 2017/03/29 by Chris.Bunner
Enabling AMD HDR support by default.
#jira UE-42113
Change 3370535 on 2017/03/29 by Marcus.Wassmer
DR - Fix template explicit instantiation for ClearUAV permutations
#RB Brian.Karis, Arne.Schober
Change 3370704 on 2017/03/29 by Rolando.Caloca
DR - Rewrote GPU Skin Cache
- Per section buffers
- Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB)
Copied from 3370529
Change 3371389 on 2017/03/30 by Richard.Wallis
Remove temp working directories after archive packages built.
Change 3371641 on 2017/03/30 by Rolando.Caloca
DR - Copy 3371640 (fix mem leak)
Change 3372436 on 2017/03/30 by Uriel.Doyon
Added flags in UPrimitiveComponent to keep track of its state in the streaming manager.
This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic.
Removed the limitation of only processing UMeshComponent when handling spawed primitive.
This releases the level manager from having to manage dynamic primitives.
This improves performance by not having to manage dynamic references in the level manager.
Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling
many cases automatically where previously a manual callback to notify would have been required.
Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state
because of lack of references in the streamer.
Change 3372740 on 2017/03/30 by Chris.Bunner
[Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute).
StencilSceneTexture added to deferred list.
A few known issues to be fixed in a follow-up CL.
Change 3372765 on 2017/03/30 by Uriel.Doyon
Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update
Change 3372979 on 2017/03/30 by Richard.Hinckley
#jira UE-43501
The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects.
Change 3373053 on 2017/03/30 by Simon.Tourangeau
LPV Fade support
- mostly integrated from CL 2959511
Change 3373272 on 2017/03/30 by Uriel.Doyon
Added support for the concurrent update of dynamic primitives by the streaming manager.
Change 3373450 on 2017/03/30 by Rolando.Caloca
DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory
Copy 3373364
#jira UE-43492
Change 3373470 on 2017/03/30 by Marcus.Wassmer
Nvidia Aftermath support
Change 3374187 on 2017/03/31 by Chris.Bunner
Volume texture support for CombineLUTs/Tonemap compute pass.
Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS.
Skip compute post process out-of-bounds writes.
Unsigned type conversion fixes.
Trimmed compute post process shader inputs.
Change 3374233 on 2017/03/31 by Chris.Bunner
Removed several redundant post process compute fences and resource transitions.
Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch).
Change 3374412 on 2017/03/31 by Rolando.Caloca
DR - Fix static analysis
Change 3374544 on 2017/03/31 by Richard.Wallis
FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library.
Future Work
- This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver.
- Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state
- This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock
Change 3374588 on 2017/03/31 by Richard.Wallis
Windows Compile Fixes
Change 3374810 on 2017/03/31 by Benjamin.Hyder
updating recommended GPU drivers
Change 3375207 on 2017/03/31 by Rolando.Caloca
DR - vk - Fixed swapchain format selection for some Linux platforms
Change 3375248 on 2017/03/31 by Rolando.Caloca
DR - vk - Prefer D32S8
Change 3375495 on 2017/03/31 by Rolando.Caloca
DR - vk - Update to sdk 1.0.42.2
Change 3375496 on 2017/03/31 by Rolando.Caloca
DR - Force compiling with updated Vulkan SDK
Change 3375636 on 2017/03/31 by Mark.Satterthwaite
Copying Metal improvements from task stream, with some modifications:
- Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts.
- Support for Apple's Instruments "Points of Interest" tool.
- Consolidation of some Mac & iOS compiler, memory and thread handling code.
- Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects.
- Improvements to the internal FMetalDebug layer, still off by default.
- Limited support for Xcode automatic code-signing for iOS/tvOS.
- Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals.
- Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing.
- Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types.
- Smattering of lesser fixes.
Change 3375654 on 2017/03/31 by Mark.Satterthwaite
Incremental Windows build fix.
Change 3375656 on 2017/04/01 by Mark.Satterthwaite
Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...).
Change 3375797 on 2017/04/01 by Mark.Satterthwaite
Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds...
Change 3375798 on 2017/04/01 by Mark.Satterthwaite
Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream.
Change 3375835 on 2017/04/01 by Mark.Satterthwaite
Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly.
Change 3376143 on 2017/04/02 by Mark.Satterthwaite
Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system.
Change 3376324 on 2017/04/03 by Chris.Bunner
Fixed cvar re-registration log spam and flagged a testing-only cvar as such.
Change 3376726 on 2017/04/03 by Benjamin.Hyder
Submitting initial HDR test map (WIP)
Change 3376756 on 2017/04/03 by Guillaume.Abadie
Fixes scene captures ordering's backward compatibility.
Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor.
Change 3377378 on 2017/04/03 by Arne.Schober
DR - Fix ShaderRecompiling over and over again
#RB Chris.Bunner
Change 3377512 on 2017/04/03 by Daniel.Wright
[Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events
Change 3377518 on 2017/04/03 by Daniel.Wright
[Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12
Change 3377526 on 2017/04/03 by Daniel.Wright
[Copy] "Ran out of GPU queries!" log only happens once
Change 3377535 on 2017/04/03 by Daniel.Wright
[Copy] Fixed unreferenced local variable
Change 3377539 on 2017/04/03 by Daniel.Wright
[Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages
Change 3377546 on 2017/04/03 by Daniel.Wright
[Copy] Added r.LightMaxDrawDistanceScale for local light scalability
Change 3377553 on 2017/04/03 by Daniel.Wright
[Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path
Change 3377560 on 2017/04/03 by Daniel.Wright
[Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes
Change 3377565 on 2017/04/03 by Daniel.Wright
[Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false)
Change 3377572 on 2017/04/03 by Daniel.Wright
[Copy] Disabled point / spot lights with MaxDrawDistance on LowPC
Change 3377586 on 2017/04/03 by Daniel.Wright
Fixed compile error
Change 3377699 on 2017/04/03 by David.Hill
FFT Code. Moved over from raven and refactored
#review-3374589 @guillaume.abadie
Change 3377910 on 2017/04/03 by David.Hill
GPU FFT: Fix Linux Build
adding a missing template<> to an IMPLEMENT_SHADER_TYPE
Change 3378751 on 2017/04/04 by Marcus.Wassmer
HQ particle lights now spawn attached to the same socket as their parent module.
Change 3378819 on 2017/04/04 by Richard.Wallis
Should be no need to protect shader cache against RHI thread now.
Change 3378823 on 2017/04/04 by Richard.Wallis
FRHIShaderLibrary Opaque Type
- Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library.
- Assumed that only Native libraries will end up in the RHICreate*Shader functions.
- ShaderCache and ShaderCode Libraries now inherit from a common factory interface.
Change 3378883 on 2017/04/04 by Arne.Schober
DR - Fix DCC build
Change 3378885 on 2017/04/04 by Richard.Wallis
Metal resource cast compile fix post merge.
Change 3378946 on 2017/04/04 by Chris.Bunner
SM4 assert fix.
Change 3378953 on 2017/04/04 by Chris.Bunner
Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users.
Allowed material nodes to opt out of mask-based pin coloration.
#tests Compiled most Paragon materials + QAGame test maps.
#jira UE-39885
Change 3379189 on 2017/04/04 by Arne.Schober
DR - Fix aftermath staging
Change 3379229 on 2017/04/04 by Arne.Schober
DR - Fix missing include
Change 3379374 on 2017/04/04 by Mark.Satterthwaite
Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream.
Change 3379505 on 2017/04/04 by Rolando.Caloca
DR - Fix mismatched interpolators
Change 3379539 on 2017/04/04 by Mark.Satterthwaite
No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right...
#jira UE-43626
Change 3379561 on 2017/04/04 by Rolando.Caloca
DR - Fix root signature issues on D3D12 PC
Change 3379590 on 2017/04/04 by Mark.Satterthwaite
Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture.
#jira UE-43626
Change 3379917 on 2017/04/04 by Uriel.Doyon
Fix to input mismatch
Change 3380578 on 2017/04/05 by Chris.Bunner
Shader type fixes.
#jira UE-43652
Change 3380639 on 2017/04/05 by Rolando.Caloca
DR - Expose GetOrCreate PSO and document
Change 3380821 on 2017/04/05 by Guillaume.Abadie
Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures()
#jira UE-43642
Change 3381092 on 2017/04/05 by Guillaume.Abadie
Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting.
This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations.
Change 3381300 on 2017/04/05 by Mark.Satterthwaite
Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface.
#jira UE-43597
Change 3381359 on 2017/04/05 by Guillaume.Abadie
Back out changelist 3381092
Change 3381421 on 2017/04/05 by Mark.Satterthwaite
Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions.
#jira UE-43689
Change 3381422 on 2017/04/05 by Mark.Satterthwaite
Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery.
#jira UE-43691
Change 3381503 on 2017/04/05 by Daniel.Wright
More intuitive controls for Volumetric Fog
* Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction
* InscatteringColorCubemap is now supported by Volumetric Fog
* Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing
* Tweaked GVolumetricFogDepthDistributionScale better for nearby details
* Volume Materials have twice the interpolators available
Change 3381527 on 2017/04/05 by Mark.Satterthwaite
Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements.
Change 3381671 on 2017/04/05 by Mark.Satterthwaite
Better error message for failure to compile shaders remotely from PC for Metal.
Change 3381769 on 2017/04/05 by Rolando.Caloca
DR - Added lock texture array 2d on Vulkan
Change 3382003 on 2017/04/05 by Mark.Satterthwaite
Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended.
Change 3382030 on 2017/04/05 by Zachary.Wilson
Fix compiling Metal text shaders from PC broken in merge from task stream.
#submitter mark.satterthwaite
#jira UE-43652
Change 3382880 on 2017/04/06 by Mark.Satterthwaite
Michael Trepka's CL #3379927:
VolumetricFogVoxelization implementation for Mac
Change 3383315 on 2017/04/06 by Mark.Satterthwaite
Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory.
#jira UE-43739
Change 3384639 on 2017/04/07 by Marcus.Wassmer
Move ShaderResource version bump to RenderingObjectVersion
Change 3384704 on 2017/04/07 by Mark.Satterthwaite
Compile fix for merge.
Change 3384933 on 2017/04/07 by Rolando.Caloca
DR - Fix skin cache crash with BP (copy 3384714)
Change 3385104 on 2017/04/07 by Mark.Satterthwaite
Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity.
#jira UE-43783
Change 3385105 on 2017/04/07 by Mark.Satterthwaite
Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783
#jira UE-43783
Change 3385118 on 2017/04/07 by Arne.Schober
DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled
#RB none
Change 3385149 on 2017/04/07 by Marcus.Wassmer
Fix skincache motion blur
Change 3385189 on 2017/04/07 by Rolando.Caloca
DR - Fix swapchain format for editor on Vulkan
Change 3385287 on 2017/04/07 by Mark.Satterthwaite
Enable SM5 on Intel as of 10.12.4 and later.
Change 3385347 on 2017/04/07 by Rolando.Caloca
DR - Temp fix for GL4 corruption on editor
#jira UE-43785
Change 3385363 on 2017/04/07 by Rolando.Caloca
DR - Actually fix all win platforms for GL bug
#jira UE-43785
Change 3385557 on 2017/04/07 by Arne.Schober
DR - [UE-43205] - Fix mesh paint
#RB none
Change 3385608 on 2017/04/07 by Daniel.Wright
Fixed SampleCmp being used on a non-depth texture, causing a d3d error
Change 3385980 on 2017/04/10 by Rolando.Caloca
DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture
Change 3386042 on 2017/04/10 by Rolando.Caloca
DR - Fix metal merge issue
Change 3386157 on 2017/04/10 by Rolando.Caloca
DR - Remove VS2013 libs generation off hlslcc & glslang (to match main)
Change 3386356 on 2017/04/10 by Chris.Bunner
Resolving merge errors.
Change 3386414 on 2017/04/10 by Chris.Bunner
Resolved merge issue in RendererScene.cpp.
Change 3386700 on 2017/04/10 by Mark.Satterthwaite
Silence documentation warnings.
Change 3387178 on 2017/04/10 by Chris.Bunner
Removed invalid mask correction on MakeMA material nodes.
Change 3388177 on 2017/04/11 by Marcus.Wassmer
Disable ensure that is no longer relevant now that we bind clear colors on texture creation
Change 3388261 on 2017/04/11 by Chris.Bunner
Static analysis fix.
[CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
{
2019-06-11 18:27:07 -04:00
return TStaticSamplerState < SF_Point , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
2015-02-22 17:53:26 -05:00
}
2021-05-19 02:09:02 -04:00
FRHISamplerState * GetPostMotionBlurTranslucencySampler ( bool bUpscale )
{
if ( bUpscale )
{
return TStaticSamplerState < SF_Point , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
}
else
{
return TStaticSamplerState < SF_Bilinear , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
}
}
2021-12-03 01:16:55 -05:00
FRDGTextureUAVRef CreateDebugUAV ( FRDGBuilder & GraphBuilder , const FIntPoint & Extent , const TCHAR * DebugName )
{
# if !UE_BUILD_SHIPPING
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
Extent ,
PF_FloatRGBA ,
FClearValueBinding : : None ,
TexCreate_ShaderResource | TexCreate_UAV ) ;
FRDGTextureRef Texture = GraphBuilder . CreateTexture ( Desc , DebugName ) ;
return GraphBuilder . CreateUAV ( Texture ) ;
# else
return nullptr ;
# endif
}
BEGIN_SHADER_PARAMETER_STRUCT ( FVecocityTileTextures , )
2021-12-03 13:05:09 -05:00
SHADER_PARAMETER_RDG_TEXTURE_ARRAY ( Texture2D , Textures , [ FVelocityFlattenTextures : : kMaxVelocityTileTextureCount ] )
2021-12-03 01:16:55 -05:00
END_SHADER_PARAMETER_STRUCT ( )
BEGIN_SHADER_PARAMETER_STRUCT ( FVecocityTileUAVs , )
2021-12-03 13:05:09 -05:00
SHADER_PARAMETER_RDG_TEXTURE_UAV_ARRAY ( RWTexture2D , Textures , [ FVelocityFlattenTextures : : kMaxVelocityTileTextureCount ] )
2021-12-03 01:16:55 -05:00
END_SHADER_PARAMETER_STRUCT ( )
FVecocityTileTextures CreateVecocityTileTextures ( FRDGBuilder & GraphBuilder , FIntPoint VelocityTileCount , const TCHAR * DebugName , bool ScatterDilatation = false )
{
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
VelocityTileCount ,
PF_FloatRGBA ,
FClearValueBinding : : None ,
GFastVRamConfig . MotionBlur | TexCreate_ShaderResource | ( ScatterDilatation ? TexCreate_RenderTargetable : TexCreate_UAV ) ) ;
FVecocityTileTextures Textures ;
Textures . Textures [ 0 ] = GraphBuilder . CreateTexture ( Desc , DebugName ) ;
Desc . Format = PF_G16R16F ;
Textures . Textures [ 1 ] = GraphBuilder . CreateTexture ( Desc , DebugName ) ;
return Textures ;
}
FVecocityTileUAVs CreateUAVs ( FRDGBuilder & GraphBuilder , FVecocityTileTextures VecocityTileTextures )
{
FVecocityTileUAVs UAVs ;
for ( int32 i = 0 ; i < UAVs . Textures . Num ( ) ; i + + )
{
if ( VecocityTileTextures . Textures [ i ] )
{
UAVs . Textures [ i ] = GraphBuilder . CreateUAV ( VecocityTileTextures . Textures [ i ] ) ;
}
}
return UAVs ;
}
2019-06-11 18:27:07 -04:00
// Base class for a motion blur / velocity shader.
class FMotionBlurShader : public FGlobalShader
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
{
2019-06-11 18:27:07 -04:00
public :
static bool ShouldCompilePermutation ( const FGlobalShaderPermutationParameters & Parameters )
{
return IsFeatureLevelSupported ( Parameters . Platform , ERHIFeatureLevel : : SM5 ) ;
}
FMotionBlurShader ( ) = default ;
FMotionBlurShader ( const ShaderMetaType : : CompiledShaderInitializerType & Initializer )
: FGlobalShader ( Initializer )
{ }
} ;
2021-12-03 01:16:55 -05:00
class FMotionBlurDirections : SHADER_PERMUTATION_SPARSE_INT ( " DIM_BLUR_DIRECTIONS " , 1 , 2 ) ;
2019-06-11 18:27:07 -04:00
class FMotionBlurVelocityFlattenCS : public FMotionBlurShader
{
public :
2019-10-18 16:29:26 -04:00
static const uint32 ThreadGroupSize = 16 ;
2022-02-24 14:50:42 -05:00
using FPermutationDomain = TShaderPermutationDomain < FMotionBlurDirections > ;
2021-04-29 19:32:06 -04:00
2019-06-11 18:27:07 -04:00
DECLARE_GLOBAL_SHADER ( FMotionBlurVelocityFlattenCS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurVelocityFlattenCS , FMotionBlurShader ) ;
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
SHADER_PARAMETER_STRUCT_REF ( FViewUniformShaderParameters , View )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , Velocity )
2021-12-03 13:05:09 -05:00
SHADER_PARAMETER_STRUCT_INCLUDE ( FVelocityFlattenParameters , VelocityFlattenParameters )
2021-12-03 01:16:55 -05:00
SHADER_PARAMETER ( FMatrix44f , ClipToPrevClipOverride )
2022-02-24 14:50:42 -05:00
SHADER_PARAMETER ( int32 , bCancelCameraMotion )
SHADER_PARAMETER ( int32 , bAddCustomCameraMotion )
2021-12-03 01:16:55 -05:00
2019-06-11 18:27:07 -04:00
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , VelocityTexture )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , DepthTexture )
2021-12-03 01:16:55 -05:00
2019-06-11 18:27:07 -04:00
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , OutVelocityFlatTexture )
2021-12-03 01:16:55 -05:00
SHADER_PARAMETER_STRUCT ( FVecocityTileUAVs , OutVelocityTile )
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , DebugOutput )
2019-06-11 18:27:07 -04:00
END_SHADER_PARAMETER_STRUCT ( )
} ;
BEGIN_SHADER_PARAMETER_STRUCT ( FMotionBlurVelocityDilateParameters , )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , VelocityTile )
2021-12-03 01:16:55 -05:00
SHADER_PARAMETER_STRUCT ( FVecocityTileTextures , VelocityTileTextures )
2021-12-03 12:40:10 -05:00
SHADER_PARAMETER ( float , VelocityScaleForFlattenTiles )
2019-06-11 18:27:07 -04:00
END_SHADER_PARAMETER_STRUCT ( )
class FMotionBlurVelocityDilateGatherCS : public FMotionBlurShader
{
public :
2019-10-18 16:29:26 -04:00
static const uint32 ThreadGroupSize = 16 ;
2019-06-11 18:27:07 -04:00
DECLARE_GLOBAL_SHADER ( FMotionBlurVelocityDilateGatherCS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurVelocityDilateGatherCS , FMotionBlurShader ) ;
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
SHADER_PARAMETER_STRUCT_INCLUDE ( FMotionBlurVelocityDilateParameters , Dilate )
2021-12-03 01:16:55 -05:00
SHADER_PARAMETER_STRUCT ( FVecocityTileTextures , CenterVelocityTileTextures )
SHADER_PARAMETER_STRUCT ( FVecocityTileUAVs , OutVelocityTile )
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , DebugOutput )
2019-06-11 18:27:07 -04:00
END_SHADER_PARAMETER_STRUCT ( )
2021-12-03 01:16:55 -05:00
using FPermutationDomain = TShaderPermutationDomain < FMotionBlurDirections > ;
2019-06-11 18:27:07 -04:00
} ;
enum class EMotionBlurVelocityScatterPass : uint32
{
DrawMin ,
DrawMax ,
MAX
} ;
class FMotionBlurVelocityDilateScatterVS : public FMotionBlurShader
{
DECLARE_GLOBAL_SHADER ( FMotionBlurVelocityDilateScatterVS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurVelocityDilateScatterVS , FMotionBlurShader ) ;
2021-12-03 12:40:10 -05:00
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
SHADER_PARAMETER ( uint32 , ScatterPass )
SHADER_PARAMETER_STRUCT_INCLUDE ( FMotionBlurVelocityDilateParameters , Dilate )
RENDER_TARGET_BINDING_SLOTS ( )
END_SHADER_PARAMETER_STRUCT ( )
2019-06-11 18:27:07 -04:00
} ;
class FMotionBlurVelocityDilateScatterPS : public FMotionBlurShader
{
DECLARE_GLOBAL_SHADER ( FMotionBlurVelocityDilateScatterPS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurVelocityDilateScatterPS , FMotionBlurShader ) ;
2021-12-02 23:58:29 -05:00
2021-12-03 12:40:10 -05:00
using FParameters = FEmptyShaderParameters ;
2019-06-11 18:27:07 -04:00
} ;
2021-12-03 12:40:10 -05:00
class FMotionBlurFilterTileClassifyCS : public FMotionBlurShader
2019-06-11 18:27:07 -04:00
{
2021-12-03 12:40:10 -05:00
DECLARE_GLOBAL_SHADER ( FMotionBlurFilterTileClassifyCS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurFilterTileClassifyCS , FMotionBlurShader ) ;
using FPermutationDomain = TShaderPermutationDomain < FMotionBlurDirections > ;
2019-06-11 18:27:07 -04:00
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
2021-12-03 12:40:10 -05:00
SHADER_PARAMETER ( FScreenTransform , FilterTileIdToFlattenTileId )
SHADER_PARAMETER ( FIntPoint , FlattenTileMaxId )
SHADER_PARAMETER ( FIntPoint , FilterTileCount )
SHADER_PARAMETER ( int32 , bAllowHalfResGather )
SHADER_PARAMETER ( int32 , TileListMaxSize )
SHADER_PARAMETER ( float , HalfResPixelVelocityThreshold )
SHADER_PARAMETER_STRUCT ( FVecocityTileTextures , VelocityTileTextures )
SHADER_PARAMETER_RDG_BUFFER_UAV ( RWStructuredBuffer < uint > , TileListsOutput )
SHADER_PARAMETER_RDG_BUFFER_UAV ( RWStructuredBuffer < uint > , TileListsSizeOutput )
2021-12-03 01:16:55 -05:00
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , DebugOutput )
2019-06-11 18:27:07 -04:00
END_SHADER_PARAMETER_STRUCT ( )
2021-12-03 12:40:10 -05:00
} ;
class FSetupMotionBlurFilterCS : public FMotionBlurShader
{
DECLARE_GLOBAL_SHADER ( FSetupMotionBlurFilterCS ) ;
SHADER_USE_PARAMETER_STRUCT ( FSetupMotionBlurFilterCS , FMotionBlurShader ) ;
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
2021-12-03 12:54:45 -05:00
SHADER_PARAMETER_RDG_BUFFER_SRV ( StructuredBuffer < uint > , TileListsSizeBuffer )
2021-12-03 12:40:10 -05:00
SHADER_PARAMETER_RDG_BUFFER_UAV ( RWStructuredBuffer < uint > , DispatchParametersOutput )
END_SHADER_PARAMETER_STRUCT ( )
2019-06-11 18:27:07 -04:00
static void ModifyCompilationEnvironment ( const FGlobalShaderPermutationParameters & Parameters , FShaderCompilerEnvironment & OutEnvironment )
{
2021-12-03 12:40:10 -05:00
OutEnvironment . SetDefine ( TEXT ( " DIM_BLUR_DIRECTIONS " ) , 1 ) ;
OutEnvironment . SetDefine ( TEXT ( " SETUP_PASS " ) , 1 ) ;
}
} ;
class FMotionBlurFilterCS : public FMotionBlurShader
{
DECLARE_GLOBAL_SHADER ( FMotionBlurFilterCS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurFilterCS , FMotionBlurShader ) ;
enum class ETileClassification
{
GatherHalfRes ,
GatherFullRes ,
ScatterAsGatherOneVelocityHalfRes ,
ScatterAsGatherOneVelocityFullRes ,
ScatterAsGatherTwoVelocityFullRes ,
MAX
} ;
static bool IsHalfResTileClassification ( ETileClassification TileClassification )
{
return TileClassification = = ETileClassification : : GatherHalfRes | | TileClassification = = ETileClassification : : ScatterAsGatherOneVelocityHalfRes ;
}
class FTileClassificationDim : SHADER_PERMUTATION_ENUM_CLASS ( " DIM_TILE_CLASSIFICATION " , ETileClassification ) ;
using FPermutationDomain = TShaderPermutationDomain < FMotionBlurDirections , FTileClassificationDim > ;
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , Color )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , Velocity )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , VelocityTile )
SHADER_PARAMETER ( FScreenTransform , ColorToVelocity )
SHADER_PARAMETER ( int32 , MaxSampleCount )
2021-12-03 12:54:09 -05:00
SHADER_PARAMETER ( int32 , OutputMip1 )
SHADER_PARAMETER ( int32 , OutputMip2 )
2021-12-03 12:40:10 -05:00
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , ColorTexture )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , VelocityFlatTexture )
SHADER_PARAMETER_STRUCT ( FVecocityTileTextures , VelocityTileTextures )
SHADER_PARAMETER_SAMPLER ( SamplerState , ColorSampler )
SHADER_PARAMETER_SAMPLER ( SamplerState , VelocitySampler )
SHADER_PARAMETER_SAMPLER ( SamplerState , VelocityTileSampler )
SHADER_PARAMETER_SAMPLER ( SamplerState , VelocityFlatSampler )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , TranslucencyTexture )
SHADER_PARAMETER_SAMPLER ( SamplerState , TranslucencySampler )
SHADER_PARAMETER ( FScreenTransform , ColorToTranslucency )
SHADER_PARAMETER ( FVector2f , TranslucencyUVMin )
SHADER_PARAMETER ( FVector2f , TranslucencyUVMax )
SHADER_PARAMETER ( FVector2f , TranslucencyExtentInverse )
SHADER_PARAMETER ( int32 , TileListOffset )
2021-12-03 12:54:45 -05:00
SHADER_PARAMETER_RDG_BUFFER_SRV ( StructuredBuffer < uint > , TileListsBuffer )
SHADER_PARAMETER_RDG_BUFFER_SRV ( StructuredBuffer < uint > , TileListsSizeBuffer )
2021-12-03 12:40:10 -05:00
RDG_BUFFER_ACCESS ( DispatchParameters , ERHIAccess : : IndirectArgs )
2021-12-03 12:54:09 -05:00
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , SceneColorOutputMip0 )
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , SceneColorOutputMip1 )
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , SceneColorOutputMip2 )
2021-12-03 12:40:10 -05:00
SHADER_PARAMETER_RDG_TEXTURE_UAV ( RWTexture2D < float4 > , DebugOutput )
END_SHADER_PARAMETER_STRUCT ( )
static FPermutationDomain RemapPermutation ( FPermutationDomain PermutationVector )
{
if ( PermutationVector . Get < FTileClassificationDim > ( ) = = ETileClassification : : ScatterAsGatherTwoVelocityFullRes )
{
PermutationVector . Set < FMotionBlurDirections > ( 2 ) ;
}
else
{
PermutationVector . Set < FMotionBlurDirections > ( 1 ) ;
}
return PermutationVector ;
}
static bool ShouldCompilePermutation ( const FGlobalShaderPermutationParameters & Parameters )
{
FPermutationDomain PermutationVector ( Parameters . PermutationId ) ;
if ( RemapPermutation ( PermutationVector ) ! = PermutationVector )
{
return false ;
}
return FMotionBlurShader : : ShouldCompilePermutation ( Parameters ) ;
2019-06-11 18:27:07 -04:00
}
} ;
class FMotionBlurVisualizePS : public FMotionBlurShader
{
DECLARE_GLOBAL_SHADER ( FMotionBlurVisualizePS ) ;
SHADER_USE_PARAMETER_STRUCT ( FMotionBlurVisualizePS , FMotionBlurShader ) ;
BEGIN_SHADER_PARAMETER_STRUCT ( FParameters , )
2021-05-05 15:07:25 -04:00
SHADER_PARAMETER ( FMatrix44f , WorldToClipPrev )
2019-06-11 18:27:07 -04:00
SHADER_PARAMETER_STRUCT_REF ( FViewUniformShaderParameters , View )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , ColorTexture )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , DepthTexture )
SHADER_PARAMETER_RDG_TEXTURE ( Texture2D , VelocityTexture )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , Color )
SHADER_PARAMETER_STRUCT ( FScreenPassTextureViewportParameters , Velocity )
SHADER_PARAMETER_SAMPLER ( SamplerState , ColorSampler )
SHADER_PARAMETER_SAMPLER ( SamplerState , VelocitySampler )
SHADER_PARAMETER_SAMPLER ( SamplerState , DepthSampler )
RENDER_TARGET_BINDING_SLOTS ( )
END_SHADER_PARAMETER_STRUCT ( )
} ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2021-12-03 12:40:10 -05:00
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurVelocityFlattenCS , " /Engine/Private/MotionBlur/MotionBlurVelocityFlatten.usf " , " MainCS " , SF_Compute ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurVelocityDilateGatherCS , " /Engine/Private/MotionBlur/MotionBlurTileGather.usf " , " MainCS " , SF_Compute ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurVelocityDilateScatterVS , " /Engine/Private/MotionBlur/MotionBlurTileScatter.usf " , " MainVS " , SF_Vertex ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurVelocityDilateScatterPS , " /Engine/Private/MotionBlur/MotionBlurTileScatter.usf " , " MainPS " , SF_Pixel ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurFilterTileClassifyCS , " /Engine/Private/MotionBlur/MotionBlurFilterTileClassify.usf " , " MainCS " , SF_Compute ) ;
IMPLEMENT_GLOBAL_SHADER ( FSetupMotionBlurFilterCS , " /Engine/Private/MotionBlur/MotionBlurFilterTileClassify.usf " , " MainCS " , SF_Compute ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurFilterCS , " /Engine/Private/MotionBlur/MotionBlurApply.usf " , " MainCS " , SF_Compute ) ;
IMPLEMENT_GLOBAL_SHADER ( FMotionBlurVisualizePS , " /Engine/Private/MotionBlur/MotionBlurVisualize.usf " , " MainPS " , SF_Pixel ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2019-06-11 18:27:07 -04:00
TGlobalResource < FSpriteIndexBuffer < 8 > > GScatterQuadIndexBuffer ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2019-06-11 18:27:07 -04:00
enum class EMotionBlurFilterPass : uint32
{
Separable0 ,
Separable1 ,
Unified ,
MAX
} ;
struct FMotionBlurViewports
{
FMotionBlurViewports (
2020-03-20 13:59:19 -04:00
FScreenPassTextureViewport InColorViewport ,
FScreenPassTextureViewport InVelocityViewport )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
{
2019-06-11 18:27:07 -04:00
Color = InColorViewport ;
Velocity = InVelocityViewport ;
VelocityTile = FScreenPassTextureViewport (
FIntRect (
FIntPoint : : ZeroValue ,
GetMotionBlurTileCount ( Velocity . Rect . Size ( ) ) ) ) ;
ColorParameters = GetScreenPassTextureViewportParameters ( Color ) ;
VelocityParameters = GetScreenPassTextureViewportParameters ( Velocity ) ;
VelocityTileParameters = GetScreenPassTextureViewportParameters ( VelocityTile ) ;
2021-04-26 11:28:05 -04:00
ColorToVelocityTransform = FScreenTransform : : ChangeTextureUVCoordinateFromTo ( Color , Velocity ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
}
2019-06-11 18:27:07 -04:00
FScreenPassTextureViewport Color ;
FScreenPassTextureViewport Velocity ;
FScreenPassTextureViewport VelocityTile ;
FScreenPassTextureViewportParameters ColorParameters ;
FScreenPassTextureViewportParameters VelocityParameters ;
FScreenPassTextureViewportParameters VelocityTileParameters ;
2021-04-26 11:28:05 -04:00
FScreenTransform ColorToVelocityTransform ;
2019-06-11 18:27:07 -04:00
} ;
2021-12-03 13:05:09 -05:00
FVelocityFlattenParameters GetVelocityFlattenParameters ( const FViewInfo & View )
{
const FSceneViewState * ViewState = View . ViewState ;
const float SceneViewportSizeX = View . GetSecondaryViewRectSize ( ) . X ;
const float SceneViewportSizeY = View . GetSecondaryViewRectSize ( ) . Y ;
const float MotionBlurTimeScale = ViewState ? ViewState - > MotionBlurTimeScale : 1.0f ;
// Scale by 0.5 due to blur samples going both ways.
const float VelocityScale = MotionBlurTimeScale * View . FinalPostProcessSettings . MotionBlurAmount * 0.5f ;
// 0:no 1:full screen width, percent conversion
const float UVVelocityMax = View . FinalPostProcessSettings . MotionBlurMax / 100.0f ;
FVelocityFlattenParameters VelocityFlattenParameters ;
VelocityFlattenParameters . VelocityScale . X = SceneViewportSizeX * 0.5f * VelocityScale ;
VelocityFlattenParameters . VelocityScale . Y = - SceneViewportSizeY * 0.5f * VelocityScale ;
VelocityFlattenParameters . VelocityMax = SceneViewportSizeX * 0.5f * UVVelocityMax ;
return VelocityFlattenParameters ;
}
2019-10-01 13:03:04 -04:00
void AddMotionBlurVelocityPass (
2019-06-11 18:27:07 -04:00
FRDGBuilder & GraphBuilder ,
2019-10-01 13:03:04 -04:00
const FViewInfo & View ,
2019-06-11 18:27:07 -04:00
const FMotionBlurViewports & Viewports ,
2021-12-03 13:05:09 -05:00
const FMotionBlurInputs & Inputs ,
2019-06-11 18:27:07 -04:00
FRDGTextureRef * VelocityFlatTextureOutput ,
2021-12-03 01:16:55 -05:00
FVecocityTileTextures * VelocityTileTexturesOutput )
2019-06-11 18:27:07 -04:00
{
check ( VelocityFlatTextureOutput ) ;
2021-12-03 01:16:55 -05:00
check ( VelocityTileTexturesOutput ) ;
const int32 BlurDirections = GetMotionBlurDirections ( ) ;
2019-06-11 18:27:07 -04:00
const FIntPoint VelocityTileCount = Viewports . VelocityTile . Extent ;
2021-12-03 13:05:09 -05:00
// Velocity flatten pass: combines depth / velocity into a single target for sampling efficiency.
FRDGTextureRef VelocityFlatTexture = nullptr ;
FVecocityTileTextures VelocityTileTexturesSetup ;
if ( Inputs . VelocityFlattenTextures . IsValid ( ) )
{
ensure ( Inputs . VelocityFlattenTextures . VelocityFlatten . ViewRect = = View . ViewRect ) ;
ensure ( Inputs . VelocityFlattenTextures . VelocityTile [ 0 ] . ViewRect = = FIntRect ( FIntPoint : : ZeroValue , VelocityTileCount ) ) ;
VelocityFlatTexture = Inputs . VelocityFlattenTextures . VelocityFlatten . Texture ;
for ( int32 i = 0 ; i < FVelocityFlattenTextures : : kMaxVelocityTileTextureCount ; i + + )
{
VelocityTileTexturesSetup . Textures [ i ] = Inputs . VelocityFlattenTextures . VelocityTile [ i ] . Texture ;
}
}
else
{
{
// NOTE: Use scene depth's dimensions because velocity can actually be a 1x1 black texture when there are no moving objects in sight.
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
Inputs . SceneDepth . Texture - > Desc . Extent ,
2019-06-11 18:27:07 -04:00
PF_FloatR11G11B10 ,
FClearValueBinding : : None ,
2021-12-03 13:05:09 -05:00
GFastVRamConfig . VelocityFlat | TexCreate_ShaderResource | TexCreate_UAV ) ;
2019-06-11 18:27:07 -04:00
2021-12-08 13:30:42 -05:00
VelocityFlatTexture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.VelocityFlatten " ) ) ;
2021-12-03 13:05:09 -05:00
}
VelocityTileTexturesSetup = CreateVecocityTileTextures (
GraphBuilder , VelocityTileCount , TEXT ( " MotionBlur.VelocityTile " ) ) ;
2019-06-11 18:27:07 -04:00
2021-04-29 19:32:06 -04:00
const bool bEnableCameraMotionBlur = View . bCameraMotionBlur . Get ( true ) ;
const bool bOverrideCameraMotionBlur = View . ClipToPrevClipOverride . IsSet ( ) ;
2019-06-11 18:27:07 -04:00
FMotionBlurVelocityFlattenCS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurVelocityFlattenCS : : FParameters > ( ) ;
PassParameters - > View = View . ViewUniformBuffer ;
2021-12-03 13:05:09 -05:00
PassParameters - > VelocityFlattenParameters = GetVelocityFlattenParameters ( View ) ;
2022-02-24 14:50:42 -05:00
PassParameters - > bCancelCameraMotion = ! bEnableCameraMotionBlur | | bOverrideCameraMotionBlur ;
PassParameters - > bAddCustomCameraMotion = bOverrideCameraMotionBlur ;
if ( PassParameters - > bAddCustomCameraMotion )
2021-04-29 19:32:06 -04:00
{
2022-02-24 14:50:42 -05:00
PassParameters - > ClipToPrevClipOverride = FMatrix44f ( View . ClipToPrevClipOverride . GetValue ( ) ) ;
2021-04-29 19:32:06 -04:00
}
2019-06-11 18:27:07 -04:00
2021-12-03 01:16:55 -05:00
PassParameters - > Velocity = Viewports . VelocityParameters ;
2021-12-03 13:05:09 -05:00
PassParameters - > DepthTexture = Inputs . SceneDepth . Texture ;
PassParameters - > VelocityTexture = Inputs . SceneVelocity . Texture ;
2021-12-03 01:16:55 -05:00
PassParameters - > OutVelocityFlatTexture = GraphBuilder . CreateUAV ( VelocityFlatTexture ) ;
PassParameters - > OutVelocityTile = CreateUAVs ( GraphBuilder , VelocityTileTexturesSetup ) ;
PassParameters - > DebugOutput = CreateDebugUAV ( GraphBuilder , VelocityFlatTexture - > Desc . Extent , TEXT ( " Debug.MotionBlur.Flatten " ) ) ;
2021-04-29 19:32:06 -04:00
FMotionBlurVelocityFlattenCS : : FPermutationDomain PermutationVector ;
2021-12-03 01:16:55 -05:00
PermutationVector . Set < FMotionBlurDirections > ( BlurDirections ) ;
2021-04-29 19:32:06 -04:00
TShaderMapRef < FMotionBlurVelocityFlattenCS > ComputeShader ( View . ShaderMap , PermutationVector ) ;
2019-06-11 18:27:07 -04:00
FComputeShaderUtils : : AddPass (
GraphBuilder ,
2021-12-03 12:40:10 -05:00
RDG_EVENT_NAME ( " Velocity Flatten(CameraMotionBlur%s) %dx%d " ,
bEnableCameraMotionBlur ? ( bOverrideCameraMotionBlur ? TEXT ( " Override " ) : TEXT ( " On " ) ) : TEXT ( " Off " ) ,
Viewports . Velocity . Rect . Width ( ) , Viewports . Velocity . Rect . Height ( ) ) ,
2020-02-06 13:13:41 -05:00
ComputeShader ,
2019-06-11 18:27:07 -04:00
PassParameters ,
2019-10-18 16:29:26 -04:00
FComputeShaderUtils : : GetGroupCount ( Viewports . Velocity . Rect . Size ( ) , FMotionBlurVelocityFlattenCS : : ThreadGroupSize ) ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
}
2019-09-14 09:45:25 -04:00
bool ScatterDilatation = IsMotionBlurScatterRequired ( View , Viewports . Color ) ;
2019-06-11 18:27:07 -04:00
FMotionBlurVelocityDilateParameters VelocityDilateParameters ;
VelocityDilateParameters . VelocityTile = Viewports . VelocityTileParameters ;
2021-12-03 01:16:55 -05:00
VelocityDilateParameters . VelocityTileTextures = VelocityTileTexturesSetup ;
2021-12-03 12:40:10 -05:00
VelocityDilateParameters . VelocityScaleForFlattenTiles = ( 1.0f / float ( kMotionBlurFlattenTileSize ) ) * ( float ( Viewports . Velocity . Rect . Width ( ) ) / float ( Viewports . Color . Rect . Width ( ) ) ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 01:16:55 -05:00
FVecocityTileTextures VelocityTileTextures ;
2019-09-14 09:45:25 -04:00
if ( ScatterDilatation )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
{
2021-12-03 01:16:55 -05:00
VelocityTileTextures = CreateVecocityTileTextures (
GraphBuilder , VelocityTileCount , TEXT ( " MotionBlur.ScatteredVelocityTile " ) , /* ScatterDilatation = */ true ) ;
2019-06-11 18:27:07 -04:00
FRDGTextureRef VelocityTileDepthTexture =
GraphBuilder . CreateTexture (
2020-09-24 00:43:27 -04:00
FRDGTextureDesc : : Create2D (
2019-06-11 18:27:07 -04:00
VelocityTileCount ,
PF_ShadowDepth ,
FClearValueBinding : : DepthOne ,
2020-09-24 00:43:27 -04:00
TexCreate_DepthStencilTargetable ) ,
2021-01-29 06:49:13 -04:00
TEXT ( " MotionBlur.DilatedVelocityDepth " ) ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2021-12-03 12:40:10 -05:00
FMotionBlurVelocityDilateScatterVS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurVelocityDilateScatterVS : : FParameters > ( ) ;
2019-06-11 18:27:07 -04:00
PassParameters - > Dilate = VelocityDilateParameters ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2019-06-11 18:27:07 -04:00
PassParameters - > RenderTargets . DepthStencil =
FDepthStencilBinding (
VelocityTileDepthTexture ,
2019-08-07 13:06:42 -04:00
ERenderTargetLoadAction : : EClear ,
2019-06-11 18:27:07 -04:00
ERenderTargetLoadAction : : ENoAction ,
FExclusiveDepthStencil : : DepthWrite_StencilNop ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2019-06-11 18:27:07 -04:00
PassParameters - > RenderTargets [ 0 ] =
FRenderTargetBinding (
2021-12-03 01:16:55 -05:00
VelocityTileTextures . Textures [ 0 ] ,
2019-09-14 09:45:25 -04:00
ERenderTargetLoadAction : : ENoAction ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2019-06-11 18:27:07 -04:00
TShaderMapRef < FMotionBlurVelocityDilateScatterVS > VertexShader ( View . ShaderMap ) ;
TShaderMapRef < FMotionBlurVelocityDilateScatterPS > PixelShader ( View . ShaderMap ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
2021-12-03 12:40:10 -05:00
ClearUnusedGraphResources ( VertexShader , PassParameters ) ;
2019-06-11 18:27:07 -04:00
GraphBuilder . AddPass (
RDG_EVENT_NAME ( " VelocityTileScatter %dx%d " , VelocityTileCount . X , VelocityTileCount . Y ) ,
PassParameters ,
2019-07-19 14:19:12 -04:00
ERDGPassFlags : : Raster ,
2021-07-13 12:38:37 -04:00
[ VertexShader , PixelShader , VelocityTileCount , PassParameters ] ( FRHICommandList & RHICmdList )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2998063)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2981877 on 2016/05/18 by Rolando.Caloca
DR - Fix some PVS warnings
- Removed 'uniform' as a keyword on hlslcc as it's ignored/causes issues/doesn't really optimize
#jira UE-30996
Change 2981966 on 2016/05/18 by Rolando.Caloca
DR - Fix OpenGL crash quitting editor
#jira UE-25549
Change 2982072 on 2016/05/18 by Uriel.Doyon
Fixed a "Build Texture Streaming" crash related to custom outputs.
Fixed issue with debug view mode and translucent primitives
Fix bug with visibility that made some texture low res.
Enabled per instance visibility in the texture streaming order (in game only).
Improved InvestigateTexture Logs.
Tweaked the mip computations from screen size.
Change 2982077 on 2016/05/18 by Uriel.Doyon
Removed debug options!
Change 2982108 on 2016/05/18 by Olaf.Piesche
#jira UE-30772
moving AMD hacks to console variables
Change 2982422 on 2016/05/18 by Gil.Gribb
UE4 - Potential crash fix on foliage occlusion queries and reflection captures.
Change 2982547 on 2016/05/18 by Martin.Mittring
UE-26409 Crash when Light Propagation Volume Plugin is disabled on a Project
Change 2982548 on 2016/05/18 by Martin.Mittring
Refactored MRT and outer Pixel Shader output to a struct
to allow it passed in/out of functions allowing for a more readable code (less #ifdefs, reducing the boolean hell)
Needed for upcoming MeshDecals
Change 2982601 on 2016/05/18 by Daniel.Wright
Movable skylight now matches stationary for subsurface shading models
* Two sided was broken in 4.11, Subsurface had never been handled
Change 2982603 on 2016/05/18 by Daniel.Wright
DrawMaterialToRenderTarget / BeginDrawCanvasToRenderTarget now work correctly with material parameter collections and Time
* FCanvas stores an optional scene to render to, UWorld caches the UCanvas needed for implementing these functions
Change 2982618 on 2016/05/18 by Daniel.Wright
Better categories for some Rendering project settings
Change 2982619 on 2016/05/18 by Daniel.Wright
Scene capture 2d improvements
* Orthographic projection supported
* Opacity is now captured in alpha, allows partial rendering in a scene capture and compositing into another scene later
* Various GBuffer attributes are now available to be captured, including depth
* Changed Blueprint capture function to CaptureScene, which happens immediately (was previously deferred), allowing multiple captures with different parameters
Change 2982664 on 2016/05/18 by Daniel.Wright
Fading out planar reflections based on roughness since they don't have support for variable roughness (fade starts at .2 roughness, ends at .3)
Change 2982684 on 2016/05/18 by Martin.Mittring
polish ImageValidator
Change 2982685 on 2016/05/18 by Martin.Mittring
show testimage on sm4 as well
Change 2982736 on 2016/05/18 by Uriel.Doyon
Improved overbudget retention logic.
Updated ListStreamingTextures stats.
Change 2982854 on 2016/05/18 by Martin.Mittring
ImageValidator can now save/load IVxml file
Change 2982863 on 2016/05/18 by Daniel.Wright
Fixed shader compile error
Change 2982864 on 2016/05/18 by Daniel.Wright
Removed deprecation message
Change 2982927 on 2016/05/18 by Martin.Mittring
ImageValidator is now sorting by time
Change 2983743 on 2016/05/19 by Chris.Bunner
Saturated tri-planar UV function outputs to prevent negative blending
#jira UE-30964
Change 2983747 on 2016/05/19 by Martin.Wilson
Fix for morph curves not getting applied to meshes in cooked builds (smart names were not being corrected).
Change 2984008 on 2016/05/19 by Brian.Karis
New contact shadows feature.
Hair uses ray cast for nonshadow lights
Change 2984009 on 2016/05/19 by Brian.Karis
changed to ShadowedBits
Change 2984054 on 2016/05/19 by Brian.Karis
Deleted old motion blur
Change 2984420 on 2016/05/19 by Daniel.Wright
Shorter display name for WorldPosition material node
Change 2984423 on 2016/05/19 by Daniel.Wright
Fixed WorldPosition and ScreenPosition for downsampled separate translucency by scaling SvPosition before those computations. The View uniform buffer still contains incorrect buffer sizes for this pass.
Change 2984432 on 2016/05/19 by Rolando.Caloca
DR - Disable PPCombineLUT for Vulkan to work around glslang issue (will need to be reenabled when adding SM4/5 path)
Change 2985415 on 2016/05/20 by Daniel.Wright
Added a Texture2D exporter for .hdr
Texture2D exporters now implement SupportsObject properly, so you only see extensions that are valid based on the format
Change 2985439 on 2016/05/20 by Daniel.Wright
Scene color alpha clear value validation
Change 2987173 on 2016/05/23 by Martin.Mittring
ImageValidator Report with Thumbnail (cannot be copied and pasted into email), non Thumbnail version could be.
Change 2987248 on 2016/05/23 by Martin.Mittring
ImageValidator: added Summary, removed timer hack
Change 2987369 on 2016/05/23 by Martin.Mittring
ImageValidator polish
Change 2987390 on 2016/05/23 by Brian.Karis
Improvement to temporal aa sharpness and speed.
Change 2988038 on 2016/05/24 by Gil.Gribb
Merging //UE4/Dev-Main@2987977 to Dev-Rendering (//UE4/Dev-Rendering)
Change 2988304 on 2016/05/24 by Martin.Mittring
added const to prevent coding errors
Change 2988332 on 2016/05/24 by Brian.Karis
Fixed motion blur crash on SM4
Change 2988446 on 2016/05/24 by Martin.Mittring
nicer UI
Change 2988990 on 2016/05/24 by Martin.Mittring
fixed UE-31227 Building lighting produces bad results
#jira:UE-31227
Change 2989729 on 2016/05/25 by Uriel.Doyon
Fixed lightmaps and shadowmaps having low resolutions after building the lighting.
#jira UE-31254
Change 2989752 on 2016/05/25 by Olaf.Piesche
CVar to disable/freeze GPU particle simulation
Change 2989811 on 2016/05/25 by Daniel.Wright
Making use of MATERIALBLENDING_ANY_TRANSLUCENT
Change 2989812 on 2016/05/25 by Daniel.Wright
Hide DFGI show flags from UI
Change 2989901 on 2016/05/25 by Daniel.Wright
Height fog now works properly in planar reflections
* The ray used for computing fog is first clipped by the reflection plane
Change 2989904 on 2016/05/25 by Daniel.Wright
Always use PF_FloatRGBA for LightAccumulation to guarantee alpha channel and negative range
Change 2989991 on 2016/05/25 by Daniel.Wright
Improved usability for DBuffer Decals
* 'Show Decals' works correctly, previously would fetch from uninitialized textures
* DBuffer being enabled forces a full prepass, previously decals would render incorrectly unless correct settings of r.EarlyZPass were used
* Improved the PrePass draw event to indicate whether it's full or partial
* Materials using DBuffer blend modes will fail to compile when the DBuffer project setting is disabled, instead of just being invisible
* r.EarlyZPass can now be changed at runtime, which is useful for profiling
Change 2990008 on 2016/05/25 by Daniel.Wright
Fixed capsule shadows on skeletal meshes with scaling
Change 2990274 on 2016/05/25 by Daniel.Wright
Fixed DFAO (from cl 2961310)
Change 2990304 on 2016/05/25 by Martin.Mittring
OR-22233 GPU Sprites invisible unless solo'd
#jira:OR-22233
Change 2990309 on 2016/05/25 by Martin.Mittring
Added SubDSurface actor (using CPU code of OpenSubDiv), component, asset as starting point for more work in that direction,
(Early work in progress)
Change 2990363 on 2016/05/25 by Daniel.Wright
Spreading precomputed visibility to neighbors now uses a 2d grid to find neighbors, speeds up the process for 800k cells from 40 mins to 20s
Change 2990392 on 2016/05/25 by Daniel.Wright
Added r.AOSpecularOcclusionMode, which determines how specular should be occluded by DFAO
0: Apply non-directional AO to specular.
1: (default) Intersect the reflection cone with the unoccluded cone produced by DFAO. This gives more accurate occlusion than 0, but can bring out DFAO sampling artifacts.
2: (experimental) Cone trace through distance fields along the reflection vector. Costs about the same as DFAO again because more cone tracing is done, but produces more accurate occlusion.
Change 2990454 on 2016/05/25 by Martin.Mittring
polish readme
Change 2990610 on 2016/05/25 by Martin.Mittring
fixed building with VS2015, the right OpenSubDiv .lib files are missing, temporarily disabled the relevant code
#code_review:Shane.Caudle
Change 2990754 on 2016/05/25 by Zabir.Hoque
Fix compiler warning: C4456: declaration of 'NewStaticMesh' hides previous local declaration.
#CodeReview: Martin.Mittring
Change 2990801 on 2016/05/25 by Zabir.Hoque
Only allocate reflection capture cubemaps if we are actually doing a reflection capture. The old approach always allocated based on CVar and worked with a warning on D3D since if SRC was larger than the DST, the extra SRC area was dropped. New approach only allocates when necessary and is correctly sized everytime. Also hardened access to CVar and what users are allowed to set.
#CodeReview Marcus.Wassmer, Rolando.Caloca, Daniel.Wright, Martin.Mittring
Change 2991169 on 2016/05/26 by Martin.Mittring
fixed compiler warning
WARNING: Non-editor build cannot depend on non-redistributable modules. Details:
#lockdown: gil.gribb
Change 2991238 on 2016/05/26 by Martin.Mittring
fixed build
fatal error C1083: Cannot open include file: 'RawMesh.h': No such file or directory (when RawMesh is not part of PrivateDependencyModuleNames in Engine.Build.cs)
#lockdown:Gil.Gribb
Change 2991726 on 2016/05/26 by Daniel.Wright
Subsurface materials are now handled with simple forward shading
#jira OR-22237
#lockdown gil.gribb
Change 2991727 on 2016/05/26 by Daniel.Wright
Emissive decals are now supported with simple forward shading
#jira OR-22282
#lockdown Gil.Gribb
Change 2994849 on 2016/05/31 by Daniel.Wright
Disabled fix for WorldPosition and ScreenPosition in downsampled separate translucency, since it breaks GetScreenAlignedUV (used in DepthFade), since the uniform buffer still contains full res buffer sizes
#lockdown Gil.Gribb
Change 2997243 on 2016/06/01 by Gil.Gribb
Merging //UE4/Dev-Main@2996565 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
[CL 2998067 by Gil Gribb in Main branch]
2016-06-02 13:13:43 -04:00
{
2020-02-06 13:13:41 -05:00
FRHIVertexShader * RHIVertexShader = VertexShader . GetVertexShader ( ) ;
2019-06-11 18:27:07 -04:00
FGraphicsPipelineStateInitializer GraphicsPSOInit ;
GraphicsPSOInit . BoundShaderState . VertexDeclarationRHI = GEmptyVertexDeclaration . VertexDeclarationRHI ;
GraphicsPSOInit . BoundShaderState . VertexShaderRHI = RHIVertexShader ;
2020-02-06 13:13:41 -05:00
GraphicsPSOInit . BoundShaderState . PixelShaderRHI = PixelShader . GetPixelShader ( ) ;
2019-06-11 18:27:07 -04:00
GraphicsPSOInit . PrimitiveType = PT_TriangleList ;
GraphicsPSOInit . RasterizerState = TStaticRasterizerState < > : : GetRHI ( ) ;
RHICmdList . ApplyCachedRenderTargets ( GraphicsPSOInit ) ;
// Max >= Min so no need to clear on second pass
RHICmdList . SetViewport ( 0 , 0 , 0.0f , VelocityTileCount . X , VelocityTileCount . Y , 1.0f ) ;
// Min, Max
for ( uint32 ScatterPassIndex = 0 ; ScatterPassIndex < static_cast < uint32 > ( EMotionBlurVelocityScatterPass : : MAX ) ; ScatterPassIndex + + )
{
const EMotionBlurVelocityScatterPass ScatterPass = static_cast < EMotionBlurVelocityScatterPass > ( ScatterPassIndex ) ;
if ( ScatterPass = = EMotionBlurVelocityScatterPass : : DrawMin )
{
GraphicsPSOInit . BlendState = TStaticBlendStateWriteMask < CW_RGBA > : : GetRHI ( ) ;
GraphicsPSOInit . DepthStencilState = TStaticDepthStencilState < true , CF_Less > : : GetRHI ( ) ;
}
else
{
GraphicsPSOInit . BlendState = TStaticBlendStateWriteMask < CW_BA > : : GetRHI ( ) ;
GraphicsPSOInit . DepthStencilState = TStaticDepthStencilState < true , CF_Greater > : : GetRHI ( ) ;
}
2021-09-03 12:04:52 -04:00
SetGraphicsPipelineState ( RHICmdList , GraphicsPSOInit , 0 ) ;
2019-06-11 18:27:07 -04:00
PassParameters - > ScatterPass = ScatterPassIndex ;
2020-02-06 13:13:41 -05:00
SetShaderParameters ( RHICmdList , VertexShader , RHIVertexShader , * PassParameters ) ;
2019-06-11 18:27:07 -04:00
// Needs to be the same on shader side (faster on NVIDIA and AMD)
const int32 QuadsPerInstance = 8 ;
RHICmdList . SetStreamSource ( 0 , nullptr , 0 ) ;
RHICmdList . DrawIndexedPrimitive ( GScatterQuadIndexBuffer . IndexBufferRHI , 0 , 0 , 32 , 0 , 2 * QuadsPerInstance , FMath : : DivideAndRoundUp ( VelocityTileCount . X * VelocityTileCount . Y , QuadsPerInstance ) ) ;
}
} ) ;
}
2021-12-03 01:16:55 -05:00
// ScatterGather the dilatation
if ( ! ScatterDilatation | | BlurDirections > 1 )
2019-06-11 18:27:07 -04:00
{
2021-12-03 01:16:55 -05:00
FVecocityTileTextures DilatedTileTextures = CreateVecocityTileTextures (
GraphBuilder , VelocityTileCount , TEXT ( " MotionBlur.GatheredVelocityTile " ) ) ;
2019-06-11 18:27:07 -04:00
FMotionBlurVelocityDilateGatherCS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurVelocityDilateGatherCS : : FParameters > ( ) ;
PassParameters - > Dilate = VelocityDilateParameters ;
2021-12-03 01:16:55 -05:00
if ( ScatterDilatation )
{
check ( BlurDirections > 1 ) ;
// Feed the scattered min max to make sure ReducePolarVelocityRange() is aware the highest velocity might be coming from tiles further away
PassParameters - > CenterVelocityTileTextures . Textures [ 0 ] = VelocityTileTextures . Textures [ 0 ] ;
PassParameters - > CenterVelocityTileTextures . Textures [ 1 ] = VelocityTileTexturesSetup . Textures [ 1 ] ;
}
else
{
PassParameters - > CenterVelocityTileTextures = VelocityTileTexturesSetup ;
}
PassParameters - > OutVelocityTile = CreateUAVs ( GraphBuilder , DilatedTileTextures ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 01:16:55 -05:00
FMotionBlurVelocityDilateGatherCS : : FPermutationDomain PermutationVector ;
PermutationVector . Set < FMotionBlurDirections > ( BlurDirections ) ;
TShaderMapRef < FMotionBlurVelocityDilateGatherCS > ComputeShader ( View . ShaderMap , PermutationVector ) ;
2019-06-11 18:27:07 -04:00
FComputeShaderUtils : : AddPass (
GraphBuilder ,
RDG_EVENT_NAME ( " VelocityTileGatherCS %dx%d " , VelocityTileCount . X , VelocityTileCount . Y ) ,
2020-02-06 13:13:41 -05:00
ComputeShader ,
2019-06-11 18:27:07 -04:00
PassParameters ,
2019-10-18 16:29:26 -04:00
FComputeShaderUtils : : GetGroupCount ( VelocityTileCount , FMotionBlurVelocityDilateGatherCS : : ThreadGroupSize ) ) ;
2021-12-03 01:16:55 -05:00
if ( ! ScatterDilatation )
{
VelocityTileTextures = DilatedTileTextures ;
}
else if ( BlurDirections > 1 )
{
// VelocityTileTextures.Textures[0] is actually scattered.
GraphBuilder . RemoveUnusedTextureWarning ( DilatedTileTextures . Textures [ 0 ] ) ;
VelocityTileTextures . Textures [ 1 ] = DilatedTileTextures . Textures [ 1 ] ;
}
2019-06-11 18:27:07 -04:00
}
* VelocityFlatTextureOutput = VelocityFlatTexture ;
2021-12-03 01:16:55 -05:00
* VelocityTileTexturesOutput = VelocityTileTextures ;
2019-06-11 18:27:07 -04:00
}
2021-12-03 12:54:09 -05:00
FMotionBlurOutputs AddMotionBlurFilterPass (
2019-06-11 18:27:07 -04:00
FRDGBuilder & GraphBuilder ,
2019-10-01 13:03:04 -04:00
const FViewInfo & View ,
2021-12-03 12:54:09 -05:00
const FMotionBlurInputs & Inputs ,
2019-06-11 18:27:07 -04:00
const FMotionBlurViewports & Viewports ,
FRDGTextureRef ColorTexture ,
FRDGTextureRef VelocityFlatTexture ,
2021-12-03 01:16:55 -05:00
FVecocityTileTextures VelocityTileTextures ,
2021-05-19 02:09:02 -04:00
FRDGTextureRef PostMotionBlurTranslucency ,
const FIntPoint & PostMotionBlurTranslucencySize ,
2019-06-11 18:27:07 -04:00
EMotionBlurFilterPass MotionBlurFilterPass ,
EMotionBlurQuality MotionBlurQuality )
{
check ( ColorTexture ) ;
check ( VelocityFlatTexture ) ;
check ( MotionBlurFilterPass ! = EMotionBlurFilterPass : : MAX ) ;
check ( MotionBlurQuality ! = EMotionBlurQuality : : MAX ) ;
2021-12-03 01:16:55 -05:00
const int32 BlurDirections = GetMotionBlurDirections ( ) ;
2019-06-11 18:27:07 -04:00
const float MotionBlur2ndScale = CVarMotionBlur2ndScale . GetValueOnRenderThread ( ) ;
2019-10-01 13:03:04 -04:00
const bool bUseCompute = View . bUseComputePasses ;
2019-06-11 18:27:07 -04:00
const float BlurScaleLUT [ static_cast < uint32 > ( EMotionBlurFilterPass : : MAX ) ] [ static_cast < uint32 > ( EMotionBlurQuality : : MAX ) ] =
{
// Separable0
{
1.0f - 0.5f / 4.0f ,
1.0f - 0.5f / 6.0f ,
1.0f - 0.5f / 8.0f ,
1.0f - 0.5f / 16.0f
} ,
// Separable1
{
1.0f / 4.0f * MotionBlur2ndScale ,
1.0f / 6.0f * MotionBlur2ndScale ,
1.0f / 8.0f * MotionBlur2ndScale ,
1.0f / 16.0f * MotionBlur2ndScale
} ,
// Unified
{
1.0f ,
1.0f ,
1.0f ,
1.0f
}
} ;
2021-12-03 12:40:10 -05:00
static int32 kMaxSampleCountPerQuality [ ] = { 4 , 8 , 12 , 16 } ;
static_assert ( UE_ARRAY_COUNT ( kMaxSampleCountPerQuality ) = = int32 ( EMotionBlurQuality : : MAX ) , " Fix me! " ) ;
const int32 MaxSampleCount = kMaxSampleCountPerQuality [ int32 ( MotionBlurQuality ) ] ;
2019-06-11 18:27:07 -04:00
const float BlurScale = BlurScaleLUT [ static_cast < uint32 > ( MotionBlurFilterPass ) ] [ static_cast < uint32 > ( MotionBlurQuality ) ] ;
2021-12-03 12:40:10 -05:00
const FIntVector FilterTileCount = FComputeShaderUtils : : GetGroupCount ( Viewports . Color . Rect . Size ( ) , kMotionBlurFilterTileSize ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:40:10 -05:00
int32 TileListMaxSize = FilterTileCount . X * FilterTileCount . Y ;
// Tile classify the filtering
FRDGBufferRef TileListsBuffer ;
FRDGBufferRef TileListsSizeBuffer ;
2021-05-19 02:09:02 -04:00
{
2021-12-03 12:40:10 -05:00
TileListsBuffer = GraphBuilder . CreateBuffer (
FRDGBufferDesc : : CreateStructuredDesc ( sizeof ( uint32 ) , TileListMaxSize * int32 ( FMotionBlurFilterCS : : ETileClassification : : MAX ) ) ,
TEXT ( " MotionBlur.TileOffsets " ) ) ;
TileListsSizeBuffer = GraphBuilder . CreateBuffer (
FRDGBufferDesc : : CreateStructuredDesc ( sizeof ( uint32 ) , int32 ( FMotionBlurFilterCS : : ETileClassification : : MAX ) ) ,
TEXT ( " MotionBlur.TileCounters " ) ) ;
AddClearUAVPass ( GraphBuilder , GraphBuilder . CreateUAV ( TileListsSizeBuffer ) , 0 ) ;
FMotionBlurFilterTileClassifyCS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurFilterTileClassifyCS : : FParameters > ( ) ;
PassParameters - > FilterTileIdToFlattenTileId = ( FScreenTransform : : Identity + 0.5f ) * ( float ( kMotionBlurFilterTileSize * Viewports . Velocity . Rect . Width ( ) ) / float ( kMotionBlurFlattenTileSize * Viewports . Color . Rect . Width ( ) ) ) ;
PassParameters - > FlattenTileMaxId = Viewports . VelocityTile . Rect . Size ( ) - 1 ;
PassParameters - > FilterTileCount = FIntPoint ( FilterTileCount . X , FilterTileCount . Y ) ;
PassParameters - > TileListMaxSize = TileListMaxSize ;
PassParameters - > HalfResPixelVelocityThreshold = FMath : : Square ( float ( MaxSampleCount ) ) ;
PassParameters - > bAllowHalfResGather = CVarMotionBlurHalfResGather . GetValueOnRenderThread ( ) ? 1 : 0 ;
PassParameters - > VelocityTileTextures = VelocityTileTextures ;
PassParameters - > TileListsOutput = GraphBuilder . CreateUAV ( TileListsBuffer ) ;
PassParameters - > TileListsSizeOutput = GraphBuilder . CreateUAV ( TileListsSizeBuffer ) ;
PassParameters - > DebugOutput = CreateDebugUAV ( GraphBuilder , PassParameters - > FilterTileCount , TEXT ( " Debug.MotionBlur.FilterTileClassify " ) ) ;
FMotionBlurFilterTileClassifyCS : : FPermutationDomain PermutationVector ;
PermutationVector . Set < FMotionBlurDirections > ( BlurDirections ) ;
TShaderMapRef < FMotionBlurFilterTileClassifyCS > ComputeShader ( View . ShaderMap , PermutationVector ) ;
FComputeShaderUtils : : AddPass (
GraphBuilder ,
RDG_EVENT_NAME ( " MotionBlur FilterTileClassify %dx%d " , FilterTileCount . X , FilterTileCount . Y ) ,
ComputeShader ,
PassParameters ,
FComputeShaderUtils : : GetGroupCount ( FilterTileCount , 8 ) ) ;
2021-05-19 02:09:02 -04:00
}
2021-12-03 12:40:10 -05:00
// Setup the filter's dispatch parameters.
FRDGBufferRef DispatchParameters ;
{
DispatchParameters = GraphBuilder . CreateBuffer (
FRDGBufferDesc : : CreateIndirectDesc < FRHIDispatchIndirectParameters > ( int32 ( FMotionBlurFilterCS : : ETileClassification : : MAX ) ) ,
TEXT ( " MotionBlur.FilterDispatchParameters " ) ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:40:10 -05:00
FSetupMotionBlurFilterCS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FSetupMotionBlurFilterCS : : FParameters > ( ) ;
PassParameters - > TileListsSizeBuffer = GraphBuilder . CreateSRV ( TileListsSizeBuffer ) ;
PassParameters - > DispatchParametersOutput = GraphBuilder . CreateUAV ( DispatchParameters ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:40:10 -05:00
TShaderMapRef < FSetupMotionBlurFilterCS > ComputeShader ( View . ShaderMap ) ;
FComputeShaderUtils : : AddPass (
GraphBuilder ,
RDG_EVENT_NAME ( " MotionBlur SetupFilter " ) ,
ComputeShader ,
PassParameters ,
FIntVector ( 1 , 1 , 1 ) ) ;
}
2019-06-11 18:27:07 -04:00
2021-12-03 12:54:09 -05:00
2021-12-03 12:40:10 -05:00
// Apply the filter.
2021-12-03 12:54:09 -05:00
FMotionBlurOutputs Output ;
2021-12-03 12:40:10 -05:00
{
static const TCHAR * kTileClassificationNames [ ] = {
TEXT ( " GatherHalfRes " ) ,
TEXT ( " GatherFullRes " ) ,
TEXT ( " ScatterAsGatherOneVelocityHalfRes " ) ,
TEXT ( " ScatterAsGatherOneVelocityFullRes " ) ,
TEXT ( " ScatterAsGatherTwoVelocityFullRes " ) ,
} ;
static_assert ( UE_ARRAY_COUNT ( kTileClassificationNames ) = = int32 ( FMotionBlurFilterCS : : ETileClassification : : MAX ) , " Fix me! " ) ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:40:10 -05:00
FMotionBlurFilterCS : : FParameters OriginalPassParameters ;
OriginalPassParameters . Color = Viewports . ColorParameters ;
OriginalPassParameters . Velocity = Viewports . VelocityParameters ;
OriginalPassParameters . VelocityTile = Viewports . VelocityTileParameters ;
OriginalPassParameters . ColorToVelocity = Viewports . ColorToVelocityTransform ;
OriginalPassParameters . MaxSampleCount = MaxSampleCount ;
2021-12-03 12:54:09 -05:00
OriginalPassParameters . OutputMip1 = Inputs . bOutputHalfRes ? 1 : 0 ;
OriginalPassParameters . OutputMip2 = Inputs . bOutputQuarterRes ? 1 : 0 ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:40:10 -05:00
OriginalPassParameters . ColorTexture = ColorTexture ;
OriginalPassParameters . VelocityFlatTexture = VelocityFlatTexture ;
OriginalPassParameters . VelocityTileTextures = VelocityTileTextures ;
OriginalPassParameters . ColorSampler = GetMotionBlurColorSampler ( ) ;
OriginalPassParameters . VelocitySampler = GetMotionBlurVelocitySampler ( ) ;
OriginalPassParameters . VelocityTileSampler = GetMotionBlurVelocitySampler ( ) ;
OriginalPassParameters . VelocityFlatSampler = GetMotionBlurVelocitySampler ( ) ;
OriginalPassParameters . TileListsBuffer = GraphBuilder . CreateSRV ( TileListsBuffer ) ;
OriginalPassParameters . TileListsSizeBuffer = GraphBuilder . CreateSRV ( TileListsSizeBuffer ) ;
OriginalPassParameters . DispatchParameters = DispatchParameters ;
if ( PostMotionBlurTranslucency ! = nullptr )
{
// TODO: broken with split screen
const bool bScaleTranslucency = Viewports . Color . Rect . Size ( ) ! = PostMotionBlurTranslucencySize ;
const FVector2f OutputSize ( Viewports . Color . Rect . Size ( ) ) ;
const FVector2f OutputSizeInv = FVector2f ( 1.0f , 1.0f ) / OutputSize ;
const FVector2f PostMotionBlurTranslucencyExtent ( PostMotionBlurTranslucency - > Desc . Extent ) ;
const FVector2f PostMotionBlurTranslucencyExtentInv = FVector2f ( 1.0f , 1.0f ) / PostMotionBlurTranslucencyExtent ;
OriginalPassParameters . TranslucencyTexture = PostMotionBlurTranslucency ;
OriginalPassParameters . TranslucencySampler = GetPostMotionBlurTranslucencySampler ( bScaleTranslucency ) ;
OriginalPassParameters . ColorToTranslucency = FScreenTransform : : ChangeTextureUVCoordinateFromTo (
Viewports . Color ,
FScreenPassTextureViewport ( PostMotionBlurTranslucency - > Desc . Extent , FIntRect ( FIntPoint : : ZeroValue , PostMotionBlurTranslucencySize ) ) ) ;
OriginalPassParameters . TranslucencyUVMin = FVector2f ( 0.0f , 0.0f ) ;
OriginalPassParameters . TranslucencyUVMax = ( FVector2f ( PostMotionBlurTranslucencySize ) - FVector2f ( 0.5f , 0.5f ) ) * PostMotionBlurTranslucencyExtentInv ;
OriginalPassParameters . TranslucencyExtentInverse = PostMotionBlurTranslucencyExtentInv ;
}
else
{
OriginalPassParameters . TranslucencyTexture = GSystemTextures . GetBlackAlphaOneDummy ( GraphBuilder ) ;
OriginalPassParameters . TranslucencySampler = TStaticSamplerState < SF_Point , AM_Clamp , AM_Clamp , AM_Clamp > : : GetRHI ( ) ;
OriginalPassParameters . ColorToTranslucency = FScreenTransform : : Identity ;
OriginalPassParameters . TranslucencyUVMin = FVector2f ( 0.0f , 0.0f ) ;
OriginalPassParameters . TranslucencyUVMax = FVector2f ( 0.0f , 0.0f ) ;
OriginalPassParameters . TranslucencyExtentInverse = FVector2f ( 0.0f , 0.0f ) ;
}
{
2021-12-03 12:54:09 -05:00
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
2021-12-03 12:40:10 -05:00
ColorTexture - > Desc . Extent ,
IsPostProcessingWithAlphaChannelSupported ( ) ? PF_FloatRGBA : PF_FloatRGB ,
FClearValueBinding : : None ,
TexCreate_UAV | TexCreate_ShaderResource | GFastVRamConfig . MotionBlur ) ;
2021-12-03 12:54:09 -05:00
Output . FullRes . Texture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.SceneColor " ) ) ;
Output . FullRes . ViewRect = Viewports . Color . Rect ;
OriginalPassParameters . SceneColorOutputMip0 = GraphBuilder . CreateUAV ( Output . FullRes . Texture , ERDGUnorderedAccessViewFlags : : SkipBarrier ) ;
2021-12-03 12:40:10 -05:00
}
2021-12-03 12:54:09 -05:00
if ( OriginalPassParameters . OutputMip1 )
{
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
Output . FullRes . Texture - > Desc . Extent / 2 ,
Output . FullRes . Texture - > Desc . Format ,
FClearValueBinding : : None ,
TexCreate_UAV | TexCreate_ShaderResource ) ;
2021-12-03 12:40:10 -05:00
2021-12-03 12:54:09 -05:00
Output . HalfRes . Texture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.SceneColor.HalfRes " ) ) ;
Output . HalfRes . ViewRect . Min = Viewports . Color . Rect . Min / 2 ;
Output . HalfRes . ViewRect . Max = Output . HalfRes . ViewRect . Min + FIntPoint : : DivideAndRoundUp ( Viewports . Color . Rect . Size ( ) , 2 ) ;
OriginalPassParameters . SceneColorOutputMip1 = GraphBuilder . CreateUAV ( Output . HalfRes . Texture , ERDGUnorderedAccessViewFlags : : SkipBarrier ) ;
}
else
{
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
FIntPoint ( 1 , 1 ) ,
PF_FloatR11G11B10 ,
FClearValueBinding : : None ,
/* InFlags = */ TexCreate_ShaderResource | TexCreate_UAV ) ;
FRDGTextureRef DummyTexture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.DummyOutput " ) ) ;
OriginalPassParameters . SceneColorOutputMip1 = GraphBuilder . CreateUAV ( DummyTexture , ERDGUnorderedAccessViewFlags : : SkipBarrier ) ;
GraphBuilder . RemoveUnusedTextureWarning ( DummyTexture ) ;
}
if ( OriginalPassParameters . OutputMip2 )
{
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
Output . FullRes . Texture - > Desc . Extent / 4 ,
Output . FullRes . Texture - > Desc . Format ,
FClearValueBinding : : None ,
TexCreate_UAV | TexCreate_ShaderResource ) ;
Output . QuarterRes . Texture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.SceneColor.QuarterRes " ) ) ;
Output . QuarterRes . ViewRect . Min = Viewports . Color . Rect . Min / 4 ;
Output . QuarterRes . ViewRect . Max = Output . QuarterRes . ViewRect . Min + FIntPoint : : DivideAndRoundUp ( Viewports . Color . Rect . Size ( ) , 4 ) ;
OriginalPassParameters . SceneColorOutputMip2 = GraphBuilder . CreateUAV ( Output . QuarterRes . Texture , ERDGUnorderedAccessViewFlags : : SkipBarrier ) ;
}
else
{
FRDGTextureDesc Desc = FRDGTextureDesc : : Create2D (
FIntPoint ( 1 , 1 ) ,
PF_FloatR11G11B10 ,
FClearValueBinding : : None ,
/* InFlags = */ TexCreate_ShaderResource | TexCreate_UAV ) ;
FRDGTextureRef DummyTexture = GraphBuilder . CreateTexture ( Desc , TEXT ( " MotionBlur.DummyOutput " ) ) ;
OriginalPassParameters . SceneColorOutputMip2 = GraphBuilder . CreateUAV ( DummyTexture , ERDGUnorderedAccessViewFlags : : SkipBarrier ) ;
GraphBuilder . RemoveUnusedTextureWarning ( DummyTexture ) ;
}
OriginalPassParameters . DebugOutput = CreateDebugUAV ( GraphBuilder , Output . FullRes . Texture - > Desc . Extent , TEXT ( " Debug.MotionBlur.Filter " ) ) ;
RDG_EVENT_SCOPE ( GraphBuilder , " MotionBlur FullResFilter(BlurDirections=%d MaxSamples=%d%s%s%s) %dx%d " ,
2021-12-03 12:40:10 -05:00
BlurDirections , OriginalPassParameters . MaxSampleCount ,
PostMotionBlurTranslucency ? TEXT ( " ComposeTranslucency " ) : TEXT ( " " ) ,
2021-12-03 12:54:09 -05:00
OriginalPassParameters . OutputMip1 ? TEXT ( " OutputMip1 " ) : TEXT ( " " ) ,
OriginalPassParameters . OutputMip2 ? TEXT ( " OutputMip2 " ) : TEXT ( " " ) ,
2021-12-03 12:40:10 -05:00
Viewports . Color . Rect . Width ( ) , Viewports . Color . Rect . Height ( ) ) ;
for ( int32 TileClassifcation = 0 ; TileClassifcation < int32 ( FMotionBlurFilterCS : : ETileClassification : : MAX ) ; TileClassifcation + + )
{
FMotionBlurFilterCS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurFilterCS : : FParameters > ( ) ;
* PassParameters = OriginalPassParameters ;
PassParameters - > TileListOffset = TileListMaxSize * TileClassifcation ;
FMotionBlurFilterCS : : FPermutationDomain PermutationVector ;
PermutationVector . Set < FMotionBlurFilterCS : : FTileClassificationDim > ( FMotionBlurFilterCS : : ETileClassification ( TileClassifcation ) ) ;
PermutationVector . Set < FMotionBlurDirections > ( BlurDirections ) ;
PermutationVector = FMotionBlurFilterCS : : RemapPermutation ( PermutationVector ) ;
if ( PermutationVector . Get < FMotionBlurDirections > ( ) > BlurDirections )
{
continue ;
}
TShaderMapRef < FMotionBlurFilterCS > ComputeShader ( View . ShaderMap , PermutationVector ) ;
FComputeShaderUtils : : AddPass (
GraphBuilder ,
RDG_EVENT_NAME ( " MotionBlur Filter(%s) " , kTileClassificationNames [ int32 ( PermutationVector . Get < FMotionBlurFilterCS : : FTileClassificationDim > ( ) ) ] ) ,
ComputeShader ,
PassParameters ,
DispatchParameters ,
/* IndirectArgsOffset = */ sizeof ( FRHIDispatchIndirectParameters ) * TileClassifcation ) ;
}
}
2019-06-11 18:27:07 -04:00
2021-12-03 12:54:09 -05:00
return Output ;
2019-06-11 18:27:07 -04:00
}
2020-03-20 13:59:19 -04:00
FScreenPassTexture AddVisualizeMotionBlurPass ( FRDGBuilder & GraphBuilder , const FViewInfo & View , const FMotionBlurInputs & Inputs )
2019-06-11 18:27:07 -04:00
{
2020-03-20 13:59:19 -04:00
check ( Inputs . SceneColor . IsValid ( ) ) ;
check ( Inputs . SceneDepth . IsValid ( ) ) ;
check ( Inputs . SceneVelocity . IsValid ( ) ) ;
checkf ( Inputs . SceneDepth . ViewRect = = Inputs . SceneVelocity . ViewRect , TEXT ( " The implementation requires that depth and velocity have the same viewport. " ) ) ;
2019-06-11 18:27:07 -04:00
2020-03-20 13:59:19 -04:00
FScreenPassRenderTarget Output = Inputs . OverrideOutput ;
2019-09-14 09:45:25 -04:00
2020-03-20 13:59:19 -04:00
if ( ! Output . IsValid ( ) )
{
2021-01-29 06:49:13 -04:00
Output = FScreenPassRenderTarget : : CreateFromInput ( GraphBuilder , Inputs . SceneColor , View . GetOverwriteLoadAction ( ) , TEXT ( " MotionBlur.Visualize " ) ) ;
2020-03-20 13:59:19 -04:00
}
2020-09-24 00:43:27 -04:00
// NOTE: Scene depth is used as the velocity viewport because velocity can actually be a 1x1 black texture.
const FMotionBlurViewports Viewports ( FScreenPassTextureViewport ( Inputs . SceneColor ) , FScreenPassTextureViewport ( Inputs . SceneDepth ) ) ;
2019-06-11 18:27:07 -04:00
FMotionBlurVisualizePS : : FParameters * PassParameters = GraphBuilder . AllocParameters < FMotionBlurVisualizePS : : FParameters > ( ) ;
2022-01-27 07:20:20 -05:00
PassParameters - > WorldToClipPrev = FMatrix44f ( GetPreviousWorldToClipMatrix ( View ) ) ; // LWC_TODO: Precision loss
2019-06-11 18:27:07 -04:00
PassParameters - > View = View . ViewUniformBuffer ;
2020-03-20 13:59:19 -04:00
PassParameters - > ColorTexture = Inputs . SceneColor . Texture ;
PassParameters - > DepthTexture = Inputs . SceneDepth . Texture ;
PassParameters - > VelocityTexture = Inputs . SceneVelocity . Texture ;
2019-06-11 18:27:07 -04:00
PassParameters - > Color = Viewports . ColorParameters ;
PassParameters - > Velocity = Viewports . VelocityParameters ;
PassParameters - > ColorSampler = GetMotionBlurColorSampler ( ) ;
PassParameters - > VelocitySampler = GetMotionBlurVelocitySampler ( ) ;
PassParameters - > DepthSampler = GetMotionBlurVelocitySampler ( ) ;
2019-10-01 13:03:04 -04:00
PassParameters - > RenderTargets [ 0 ] = Output . GetRenderTargetBinding ( ) ;
2019-06-11 18:27:07 -04:00
TShaderMapRef < FMotionBlurVisualizePS > PixelShader ( View . ShaderMap ) ;
2020-03-20 13:59:19 -04:00
AddDrawScreenPass ( GraphBuilder , RDG_EVENT_NAME ( " Visualizer " ) , View , Viewports . Color , Viewports . Color , PixelShader , PassParameters ) ;
2019-10-01 13:03:04 -04:00
Output . LoadAction = ERenderTargetLoadAction : : ELoad ;
AddDrawCanvasPass ( GraphBuilder , RDG_EVENT_NAME ( " Overlay " ) , View , Output ,
[ & View ] ( FCanvas & Canvas )
2019-06-11 18:27:07 -04:00
{
2019-10-01 13:03:04 -04:00
float X = 20 ;
float Y = 38 ;
const float YStep = 14 ;
const float ColumnWidth = 200 ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
FString Line ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
Line = FString : : Printf ( TEXT ( " Visualize MotionBlur " ) ) ;
Canvas . DrawShadowedString ( X , Y + = YStep , * Line , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
static const auto MotionBlurDebugVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.MotionBlurDebug " ) ) ;
const int32 MotionBlurDebug = MotionBlurDebugVar ? MotionBlurDebugVar - > GetValueOnRenderThread ( ) : 0 ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
Line = FString : : Printf ( TEXT ( " %d, %d " ) , View . Family - > FrameNumber , MotionBlurDebug ) ;
Canvas . DrawShadowedString ( X , Y + = YStep , TEXT ( " FrameNo, r.MotionBlurDebug: " ) , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
Canvas . DrawShadowedString ( X + ColumnWidth , Y , * Line , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
static const auto VelocityTestVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.VelocityTest " ) ) ;
const int32 VelocityTest = VelocityTestVar ? VelocityTestVar - > GetValueOnRenderThread ( ) : 0 ;
2019-06-11 18:27:07 -04:00
2022-02-01 09:53:17 -05:00
Line = FString : : Printf ( TEXT ( " %d, %d, %d " ) , View . Family - > bWorldIsPaused , VelocityTest , FVelocityRendering : : IsParallelVelocity ( View . GetShaderPlatform ( ) ) ) ;
2019-10-01 13:03:04 -04:00
Canvas . DrawShadowedString ( X , Y + = YStep , TEXT ( " Paused, r.VelocityTest, Parallel: " ) , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
Canvas . DrawShadowedString ( X + ColumnWidth , Y , * Line , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
const FScene * Scene = ( const FScene * ) View . Family - > Scene ;
const FSceneViewState * SceneViewState = ( const FSceneViewState * ) View . State ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
Line = FString : : Printf ( TEXT ( " View=%.4x PrevView=%.4x " ) ,
View . ViewMatrices . GetViewMatrix ( ) . ComputeHash ( ) & 0xffff ,
View . PrevViewInfo . ViewMatrices . GetViewMatrix ( ) . ComputeHash ( ) & 0xffff ) ;
Canvas . DrawShadowedString ( X , Y + = YStep , TEXT ( " ViewMatrix: " ) , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
Canvas . DrawShadowedString ( X + ColumnWidth , Y , * Line , GetStatsFont ( ) , FLinearColor ( 1 , 1 , 0 ) ) ;
2019-06-11 18:27:07 -04:00
} ) ;
2020-03-20 14:51:24 -04:00
return MoveTemp ( Output ) ;
2019-06-11 18:27:07 -04:00
}
2021-12-03 12:54:09 -05:00
FMotionBlurOutputs AddMotionBlurPass ( FRDGBuilder & GraphBuilder , const FViewInfo & View , const FMotionBlurInputs & Inputs )
2019-06-11 18:27:07 -04:00
{
2020-03-20 13:59:19 -04:00
check ( Inputs . SceneColor . IsValid ( ) ) ;
check ( Inputs . SceneDepth . IsValid ( ) ) ;
check ( Inputs . SceneVelocity . IsValid ( ) ) ;
checkf ( Inputs . SceneDepth . ViewRect = = Inputs . SceneVelocity . ViewRect , TEXT ( " The motion blur depth and velocity must have the same viewport. " ) ) ;
checkf ( ! Inputs . OverrideOutput . IsValid ( ) , TEXT ( " The motion blur override output support is unimplemented. " ) ) ;
2019-09-14 09:45:25 -04:00
2021-03-18 15:20:03 -04:00
// NOTE: Use SceneDepth as the velocity viewport because SceneVelocity can actually be a 1x1 black texture when there are no moving objects in sight.
const FMotionBlurViewports Viewports ( FScreenPassTextureViewport ( Inputs . SceneColor ) , FScreenPassTextureViewport ( Inputs . SceneDepth ) ) ;
2019-09-14 09:45:25 -04:00
RDG_EVENT_SCOPE ( GraphBuilder , " MotionBlur " ) ;
2021-12-03 01:31:15 -05:00
RDG_GPU_STAT_SCOPE ( GraphBuilder , MotionBlur ) ;
2019-09-14 09:45:25 -04:00
FRDGTextureRef VelocityFlatTexture = nullptr ;
2021-12-03 01:16:55 -05:00
FVecocityTileTextures VelocityTileTextures ;
2019-10-01 13:03:04 -04:00
AddMotionBlurVelocityPass (
2019-09-14 09:45:25 -04:00
GraphBuilder ,
2019-10-01 13:03:04 -04:00
View ,
2019-09-14 09:45:25 -04:00
Viewports ,
2021-12-03 13:05:09 -05:00
Inputs ,
2019-09-14 09:45:25 -04:00
& VelocityFlatTexture ,
2021-12-03 01:16:55 -05:00
& VelocityTileTextures ) ;
2019-09-14 09:45:25 -04:00
2021-12-03 12:54:09 -05:00
FMotionBlurOutputs Output ;
2020-03-20 13:59:19 -04:00
if ( Inputs . Filter = = EMotionBlurFilter : : Separable )
2019-06-11 18:27:07 -04:00
{
2019-09-14 09:45:25 -04:00
FRDGTextureRef MotionBlurFilterTexture = AddMotionBlurFilterPass (
GraphBuilder ,
2019-10-01 13:03:04 -04:00
View ,
2021-12-03 12:54:09 -05:00
Inputs ,
2019-09-14 09:45:25 -04:00
Viewports ,
2020-03-20 13:59:19 -04:00
Inputs . SceneColor . Texture ,
2019-09-14 09:45:25 -04:00
VelocityFlatTexture ,
2021-12-03 01:16:55 -05:00
VelocityTileTextures ,
2021-05-19 02:09:02 -04:00
nullptr ,
FIntPoint ( 0 , 0 ) ,
2019-09-14 09:45:25 -04:00
EMotionBlurFilterPass : : Separable0 ,
2021-12-03 12:54:09 -05:00
Inputs . Quality ) . FullRes . Texture ;
2019-06-11 18:27:07 -04:00
2021-12-03 12:54:09 -05:00
Output = AddMotionBlurFilterPass (
2019-09-14 09:45:25 -04:00
GraphBuilder ,
2019-10-01 13:03:04 -04:00
View ,
2021-12-03 12:54:09 -05:00
Inputs ,
2019-09-14 09:45:25 -04:00
Viewports ,
MotionBlurFilterTexture ,
VelocityFlatTexture ,
2021-12-03 01:16:55 -05:00
VelocityTileTextures ,
2022-01-28 08:13:09 -05:00
Inputs . PostMotionBlurTranslucency . ColorTexture . Resolve ,
2021-05-19 02:09:02 -04:00
Inputs . PostMotionBlurTranslucency . ViewRect . Size ( ) ,
2019-09-14 09:45:25 -04:00
EMotionBlurFilterPass : : Separable1 ,
2020-03-20 13:59:19 -04:00
Inputs . Quality ) ;
2019-09-14 09:45:25 -04:00
}
else
{
2021-12-03 12:54:09 -05:00
Output = AddMotionBlurFilterPass (
2019-09-14 09:45:25 -04:00
GraphBuilder ,
2019-10-01 13:03:04 -04:00
View ,
2021-12-03 12:54:09 -05:00
Inputs ,
2019-09-14 09:45:25 -04:00
Viewports ,
2020-03-20 13:59:19 -04:00
Inputs . SceneColor . Texture ,
2019-09-14 09:45:25 -04:00
VelocityFlatTexture ,
2021-12-03 01:16:55 -05:00
VelocityTileTextures ,
2022-01-28 08:13:09 -05:00
Inputs . PostMotionBlurTranslucency . ColorTexture . Resolve ,
2021-05-19 02:09:02 -04:00
Inputs . PostMotionBlurTranslucency . ViewRect . Size ( ) ,
2019-09-14 09:45:25 -04:00
EMotionBlurFilterPass : : Unified ,
2020-03-20 13:59:19 -04:00
Inputs . Quality ) ;
2019-09-14 09:45:25 -04:00
}
2020-03-20 13:59:19 -04:00
return Output ;
2021-04-29 19:32:06 -04:00
}
2021-05-12 18:10:03 -04:00