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/PostProcessing.h"
# include "PostProcess/PostProcessAA.h"
2016-04-07 16:16:52 -04:00
# if WITH_EDITOR
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/PostProcessBufferInspector.h"
2016-04-07 16:16:52 -04:00
# endif
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4041614)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3774677 by Arne.Schober
DR - Deprecated SetLocal from the RHICmdlist
Fixed some unnecessary PSO collisions.
Change 3809579 by Chris.Bunner
Back out changelist 3774677.
#jira UE-53483
Change 3810363 by Mark.Satterthwaite
More random fixes to mtlpp: most important is the extension to Buffer that allows creation of sub-buffers that are merely views onto a sub-range of the parent. These sub-buffers are valid to use throughout the mtlpp API with two exceptions: they may not be used for visibilityResultsBuffers and Set*BufferOffset functions cannot take this offset into account (as the encoder does not hold onto the buffers and I don't want it to). In the case of Set*BufferOffset the caller has to know what is going on and in the case of visibilityResultsBuffers it'll just assert as it isn't sensible.
This makes it *much* easier to do things like sub-buffer allocation, though the caller must be aware of the alignment restrictions of their intended usage as they are not possible to enforce. For example, a call to SetVertexBuffer requires an offset alignment must match the alignment of the data-type in the shader for "device" resources, or for "constant" data it must be max(4, sizeof(datatype)) on iOS and 256 on macOS. This should allow for much more tightly packed sub-allocations than earlier approaches, though older drivers (e.g. Mac OS X 10.11) enforce only the coarser "constant" data restriction everywhere.
Change 3810407 by Marcus.Wassmer
PR #4322: ShadowSetup Bug Fix: Only stencil mask drawn meshes (Contributed by DSDambuster)
Change 3810676 by Guillaume.Abadie
Makes r.Test.SecondaryUpscaleOverride work with any arbitrary pixel size.
Change 3810696 by Guillaume.Abadie
Adds support for #include "../MyFile.ush" in the shader compiler.
Change 3810698 by Guillaume.Abadie
Implements enum class based shader permutation dimension.
Change 3810699 by Guillaume.Abadie
Implements Diaphragm DOF ground work.
Change 3811536 by Guillaume.Abadie
Pulls the trigger on CircleDOF's setup pass for DiaphragmDOF.
Change 3811958 by Mark.Satterthwaite
More fixes for mtlpp.
Change 3811964 by Mark.Satterthwaite
Only views onto a mtlpp::Buffer should return a valid parent-buffer.
Change 3812604 by Guillaume.Abadie
Changes Diaphragm DOF's source file layout.
Change 3812827 by Mark.Satterthwaite
More missing/broken functionality in mtlpp fixed and fixed obvious leaks.
Change 3812920 by Guillaume.Abadie
Adds support for per mip level UAV in FSceneRenderTarget.
Change 3812926 by Mark.Satterthwaite
Change the way we handle mtlpp resource construction to avoid leaks.
Change 3812960 by Rolando.Caloca
DR - vk - Disable DFGI
Change 3812968 by Rolando.Caloca
DR - Linker fix
Change 3813318 by Mark.Satterthwaite
Fix linear texture allocation from a buffer sub-view.
Change 3813326 by Mark.Satterthwaite
Fix another Metal mtlpp sub-buffer allocation failure.
Change 3813328 by Guillaume.Abadie
Removes global samplers in TAA for GL4, Vulkan and Switch.
Change 3813937 by Rolando.Caloca
DR - Fix logs not getting dumped when r.DumpSCWQueuedJobs is on
Change 3813947 by Rolando.Caloca
DR - noshaderworker should override r.XGEShaderCompile
Change 3817017 by Uriel.Doyon
Fixed texture editor black screen
#jira UE-53653
Change 3818568 by Rolando.Caloca
DR - Fix log when shader jobs crash
- Move log10 to common
- Added COMPILER_VULKAN define
Change 3818603 by Uriel.Doyon
Fix to static analysis warning
Change 3818623 by Rolando.Caloca
DR - Workaround hlslcc loop unrolling bug
Change 3819070 by Uriel.Doyon
Fix to stat duplication.
Change 3819105 by Uriel.Doyon
Refactored volume sample shader to avoid using texture dimension.
Change 3819136 by Rolando.Caloca
DR - vk - Per platform files (empty)
Change 3819180 by Rolando.Caloca
DR - vk - Move defines out of config into per platform
Change 3819247 by Rolando.Caloca
DR - vk - Remove more defines into platform settings
Change 3819318 by Rolando.Caloca
DR - vk - Fixes for linking
Change 3819868 by Rolando.Caloca
DR - vk - Linux & Android fixes
Change 3819873 by Guillaume.Abadie
Adds support for PermutationId on r.DumpShaderDebugInfo=1
Change 3819940 by Rolando.Caloca
DR - vk - Fix Linux issues
Change 3819956 by Rolando.Caloca
DR - vk - Invalid check
Change 3819961 by Michael.Lentine
Hide attributes when plugin is not present
Change 3819980 by Rolando.Caloca
DR - vk - Standard validation always
Change 3820039 by Rolando.Caloca
DR - vk - Fix invalid ensure
Change 3820326 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3820422 by Michael.Lentine
Add back GBufferAO.
Change 3820433 by Rolando.Caloca
DR - Fix D3D12 crash on 20 thread (10x2 cores) machines
Change 3821677 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3821961 by Rolando.Caloca
DR - Vulkan uses real UB by default on non-Android
Change 3821968 by Rolando.Caloca
DR - vk - Update glslang 1.0.65.1
Change 3821969 by Uriel.Doyon
Added support for stat groups that must be sorted by name. Defined by DECLARE_STATS_GROUP_SORTBYNAME.
Change 3821983 by Rolando.Caloca
DR - vk - Change to static array (0.1ms on 10k draw calls)
Change 3824141 by Rolando.Caloca
DR - vk - Fix static analysis
- Bumped up some (c) 2017->2018
Change 3824355 by Rolando.Caloca
DR - vk - Accessor to find out if a cmd buffer has been submitted
Change 3824420 by Rolando.Caloca
DR - Sanity check number of queries per batch on D3D11 as to not break other RHIs
Change 3824463 by Rolando.Caloca
DR - Removed dummy ensure for D3D12
Change 3824609 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3826074 by Mark.Satterthwaite
Start IMP-caching the various descriptor types in mtlpp.
Change 3826098 by Rolando.Caloca
DR - vk - Dump layer compile fixes
Change 3826113 by Rolando.Caloca
DR - vk - Missing dump functions
Change 3826302 by Rolando.Caloca
DR - vk - Compile fix
- Change dump handles to %p
Change 3826635 by Mark.Satterthwaite
Forward declarations required for mtlpp compilation without exposing Metal headers - plus fixes to the mtlpp test compiler.
Change 3827072 by Mark.Satterthwaite
Switch some more mtlpp descriptors over to IMPTables from objc_msgSend.
Change 3827909 by Guillaume.Abadie
Replaces diaphragm DOF's prefiltering with LDS bank coherent bilateral reduction, and implements 1/8 res background gathering pass.
Change 3827952 by Guillaume.Abadie
Updates copy right to year 2018 on diaphragm DOF's new files.
Change 3828055 by Rolando.Caloca
DR - vk - Rename in prep for changes
Change 3828229 by Guillaume.Abadie
Avoids to log multiple time global shader type name that have multiple permutations when verifying global shader map.
Change 3828427 by Guillaume.Abadie
Reimplements Max3x3 gathering post filtering for Diaphragm DOF with proper shader permutation.
Change 3829979 by Guillaume.Abadie
Fixes a color NaN source in diaphragm DOF's TAA pass.
Change 3830116 by Rolando.Caloca
DR - vk - Fix GPU queries/frame time on old system
- New system in place, disabled temporarily
Change 3830169 by Rolando.Caloca
DR - vk - Fix async pso creation crash
Change 3830193 by Rolando.Caloca
DR - vk - CPU RHI thread improvement
Change 3830291 by Guillaume.Abadie
Automatically lower the number of gathering rings on background half res gather pass as far CoC is getting smaller.
Change 3830300 by Rolando.Caloca
DR - vk - Static analysis fix: Split VulkanCommon.h out of VulkanConfiguration.h
Change 3830589 by Mark.Satterthwaite
In mtlpp cache the IMPTables for all the Metal @protocol's that are dependent on the MTLDevice, this avoids a mutex & map lookup. Also make all the concrete types store their IMPTable statically as it won't change.
Change 3830793 by Mark.Satterthwaite
Fix a small number of bugs introduced with the mtlpp descriptor and table caching.
Change 3831491 by Jian.Ru
Fix driver version unknown
#jira UE-53688
Change 3832335 by Rolando.Caloca
DR - vk - Change include
Change 3832550 by Rolando.Caloca
DR - vk - Occlusion query rewrite WIP
Change 3832589 by Rolando.Caloca
DR - vk - Minor refactor to pools in prep for timestamps
Change 3832618 by Rolando.Caloca
DR - vk - Do not block timestamp queries
Change 3832636 by Rolando.Caloca
DR - vk - Fix old timestamp queries
Change 3833138 by Rolando.Caloca
DR - vk - Fix timestamp queries
Change 3833249 by Rolando.Caloca
DR - vk - Test lock
Change 3833667 by Rolando.Caloca
DR - vk - Old queries wait on the RHI thread now instead of the driver (disabled)
Change 3833907 by Daniel.Wright
Fixed NextStartOffset UAV index out of bounds
Change 3833918 by Daniel.Wright
D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC or Xbox. The refcounting was heavy on performance as reported by a licensee because FRHIResource uses atomics for refcounting, which is only necessary when GRHINeedsExtraDeletionLatency is disabled.
Change 3834852 by Rolando.Caloca
DR - vk - Missing file
Change 3834858 by Guillaume.Abadie
Implements r.DOF.MinimalFullresBlurringRadius
Change 3834979 by Rolando.Caloca
DR - vk - Fix
Change 3836117 by Rolando.Caloca
DR - vk - Update to 1.0.65.1
Change 3836122 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOcclusionBatchCmdBuffer
- Added new error codes/messages
Change 3836421 by Mark.Satterthwaite
For the purposes of debugging and conformance testing mtlpp make it possible to compile *without* the IMP cache so that we call the underlying Objective-C.
Change 3836896 by Uriel.Doyon
Fixed concurrency and exit issues around d3d12 pipeline states on windows.
Change 3837385 by Rolando.Caloca
DR - vk - Dump memory on OOM
Change 3837427 by Rolando.Caloca
DR - vk - Change some arrays to array views
Change 3837800 by Guillaume.Abadie
Implements SHADER_PERMUTATION_RANGE_INT to make contiguous integer permutations that does not start to 0.
Change 3838128 by Rolando.Caloca
DR - vk - Support for non-cached memory types
Change 3838540 by Guillaume.Abadie
Refactors Diaphragm DOF's CoC tile buffer under a single API for better maintainability.
Change 3838731 by Rolando.Caloca
DR - vk - Descriptor pools per command buffer pool (turned off)
Change 3838961 by Rolando.Caloca
DR - vk - Use ring buffer for per frame uniform buffers
- Enable descriptor pools per layout recycled per command buffer
Change 3839087 by Rolando.Caloca
DR - vk - Compile fixes for Android
Change 3839106 by Marcus.Wassmer
PR #4413: Removing unnecessary call to FString::ToLower (Contributed by gsfreema)
Change 3839252 by Mark.Satterthwaite
Fix mtlpp::Resource move operators.
Change 3839426 by Marcus.Wassmer
Duplicate 380972
Make PC GPU Benchmarks more reliable
Change 3840041 by Guillaume.Abadie
Fixes shader compilation failure in TAA with alpha channel through post processing support.
Change 3840257 by Chris.Bunner
Swapping a mul() to * in HLSLTranslator::Dot to allow scalar transformations per a UDN ticket.
Change 3840308 by Rolando.Caloca
DR - vk - Support for UB & non-UB on emulation mode
Change 3840586 by Rolando.Caloca
DR - Copy 3840577
Fix for CPUs with more than 16 cores
Change 3840671 by Rolando.Caloca
DR - vk - Copy from 3840663
Fix for layout ensure on HMD projects on Vulkan
Change 3840980 by Rolando.Caloca
DR - vk - Android compile fixes
Change 3841989 by Guillaume.Abadie
Slices Diaphragm DOF's Gather pass in multi shader files, and CFLAG_StandardOptimization flag for faster iteration time.
Change 3842216 by Guillaume.Abadie
Fixes DDOF's foreground alpha channel.
Change 3842217 by Guillaume.Abadie
Implements r.DOF.MaximalForegroundBlurringRadius
Change 3842353 by Guillaume.Abadie
Allows to disable foreground gathering with r.DOF.MaximalForegroundBlurringRadius=0
Change 3842747 by Rolando.Caloca
DR - vk - Missing use of GPoolSizeVRAMPercentage
- Support for smaller allocations if page size is not available
Change 3842791 by Rolando.Caloca
DR - vk - Use 95% of available GPU memory to handle some fragmentation
Change 3843690 by Guillaume.Abadie
Fixes diaphragm DOF's foreground after all this refactoring.
Change 3844439 by Guillaume.Abadie
Improves Coc dilate pass to make the gather pass as fast as possible, but still without artifacts caused by the fast gathering optimisation.
Change 3844946 by Mark.Satterthwaite
rd_route v1.1.1 with attached TPS approval.
For macOS function interposition which is useful for debugging and the occasional workaround.
Change 3845164 by Mark.Satterthwaite
Add LLM support for macOS, including tracking of memory allocated in Objective-C. This makes use of runtime method swizzling in the Objective-C runtime and the rd_route library I added for Richard Wallis, which allows for arbitrary runtime function interposition and allows me to hook the custom allocators used in Apple's many Objective-C frameworks on which the whole macOS edifice is built. Objective-C objects are charged to the calling scope as they are too common to impose their own without murdering frame rate.
We would need a TPS approval for an iOS function interposition library for this to work fully on iOS, if desired in the short term discarding LowLevelFree events that aren't in the map rather than asserting will workaround the problem.
Change 3845849 by Marcus.Wassmer
Fix clang and some normal refactor errors
Change 3846026 by Rolando.Caloca
DR - vk - Descriptor set allocation scheme rewrite
- Type hash for each pool
- Desc sets Pool on device
Change 3846169 by Rolando.Caloca
DR - vk - Remove old code for non-layout descriptor set pools
Change 3846205 by Mark.Satterthwaite
Disambiguate the PatchControlPointOut struct definitions in Metal tessellation shaders at Apple's suggestion to avoid a metallib gotcha.
Change 3846346 by Arne.Schober
DR - Missing Vector instructions
Change 3847037 by Arne.Schober
DR - Fix issue with GPU skincache where the offset of the clothbuffer is not relative to the offset of the actual vertexbuffer.
Fixed MorphTarget Skincache Offset mixxup
Change 3847275 by Marcus.Wassmer
Copying MGPU to Dev-Rendering (//UE4/Dev-Rendering)
Change 3847464 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3847707 by Michael.Lentine
Only use MorphTargetOffset when the shader enables morph targets.
Change 3848533 by Richard.Wallis
Handle Metal adding FirstInstance into [[ instance_id ]] which is different to other APIs. SV_InstanceID and SV_VertexID should now have their respective base instance and base vertex ID's subtracted before use in the shader.
#jira UE-51716
Change 3848625 by Richard.Wallis
Compile Fix
Change 3848725 by Rolando.Caloca
DR - Remove use of Build/SetLocalGraphicsPipelineState
Change 3848797 by Rolando.Caloca
DR - Deprecate Build/SetLocalGraphicsPipelineState
Change 3849237 by Arne.Schober
DR - AddCustom Ver for ModelVertex Serialization
Change 3851247 by Rolando.Caloca
DR - vk - Util functions
Change 3851523 by Arne.Schober
DR - Update Reflection Comparission shot from the BuildFarm.
Change 3851859 by Rolando.Caloca
DR - vk - Skip loader
Change 3851889 by Krzysztof.Narkowicz
Removed lights with lighting channels out of tiled deferred light list. Tiled deferred lights do not support lighting channels and it's wasn't worth to add extra complexity to this shader in order support this special case.
#jira UE-51512
Change 3852181 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3852547 by Uriel.Doyon
Fixed Pre-Exposure shader compilation and Temporal AA issue.
#jira UE-54276
Change 3852637 by Arne.Schober
DR - Fixing Normal Automated Test Result
Change 3853167 by Richard.Wallis
AvfPlayer - support for streaming media. Due to an operator new/delete mismatch in Apples CFNetwork - we've had to change out one of that framework allocators using rd_route to avoid the memory corruption.
#jira UE-35637
Change 3853447 by Chris.Bunner
Fixing typos.
Change 3853645 by Krzysztof.Narkowicz
Fixed light functions on subsurface materials
Removed strange code from blending between static and dynamic shadows
#jira UE-50275
Change 3853660 by Rolando.Caloca
DR - Fix OpenGL overwriting texture samplers on forward renderer
Change 3853945 by Mark.Satterthwaite
Duplicate #3831616
Fix the black ground scattering on Metal - we've had issues with the atmospheric fog calculations for a long time - one or more intermediate operations generates different precision on Metal so we end up passing -ve values into sqrt which then generates NaN/INF. For Metal when compiling this file and this file only #define sqrt() to sqrt(abs()) so that we don't see anymore unexpected black in atmospheric rendering. This is far from ideal but I don't want to make abs all inputs into every sqrt because AFAIK this is the only case where we have an issue, and until we to investigate each intermediate calculation that isn't ridiculously, soul-crushingly tedious, it isn't practical to identify the source of the error.
#jira UE-53720
Change 3853966 by Mark.Satterthwaite
Duplicate #3835852
Fix tessellation shaders in Metal with Manual Vertex Fetch enabled:
- The control points idnex buffer shouldn't collide with anything else.
- We can't use the optimisation of loading texture width & height from the buffer meta-table in tessellation shaders as the combined stages don't guarantee not to clobber unused buffer slots and screw it up when we use linear textures.
#jira UE-53851
Change 3854250 by Uriel.Doyon
Fix fbx automation tests
Change 3854736 by Uriel.Doyon
Added a tooltip to the EV100 slider in the exposure menu.
Using game settings now disables the slider.
#jira UE-53945
Change 3855047 by Jian.Ru
Fix DFAO getting NANs when samples out of ViewRect
#jira UE-54403
Change 3858197 by Krzysztof.Narkowicz
View frustum shadow caster culling for pointlights/spotlights
#jira UE-54381
Change 3860081 by Krzysztof.Narkowicz
Tighter bounding sphere for a spotlight
Replaced IntersectSphere(LightProxy->Origin, LightProxy->Radius) with LightProxy->SphereBounds for tighter culling of spotlights
Directional light GetBoundingSphere() now everywhere returns Sphere((0,0,0),HALF_WORLD_MAX) for consistency and proper SphereBounds
#jira UE-54258
Change 3860324 by Mark.Satterthwaite
Update the macOS deployment target version to 10.12 from 10.11 as we officially ended support for El Capitan a while ago. Should mean that libraries compiled for 10.12 and up won't cause link warnings.
Change 3860945 by Arne.Schober
DR - Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer.
#jira UE-54587
Change 3861129 by Jian.Ru
Prevent distance culled objects from casting distance field direct shadows
#jira UE-54533
Change 3861502 by Jian.Ru
Exclude distance culled objects from DFAO calculation
#jira UE-54533
Change 3862243 by Krzysztof.Narkowicz
Changed radius of a directional light's bounding sphere from HALF_WORLD_MAX to WORLD_MAX in order to encopass entire WORLD_MAX box
Change 3863476 by Krzysztof.Narkowicz
Added BuildReflections option to ResavePackages commandlet
#jira UE-54581
Change 3863717 by Rolando.Caloca
DR - vk - Missed using pipeline cache on compute PSOs
Change 3865332 by Arne.Schober
DR - Fix UE-52356 Bone Weight
Change 3866220 by Rolando.Caloca
DR - vk - Fixed GetNativeResource missing on textures
- Added support for -preferNvidia|AMD|Intel
- Added VulkanRHIBridge.h
- Minor fixes
Change 3866222 by Rolando.Caloca
DR - vk - Missed file
Change 3866951 by Krzysztof.Narkowicz
Fixed FreezeRendering on non editor builds: ComputeAndMarkRelevanceForViewParallel was calling FrozenMatricesGuard on multiple threads, reading and writing view matrices state in parallel.
#jira UE-53640
Change 3867231 by Guillaume.Abadie
Adds alpha mode to allow the tonemapper to passthrough the alpha channel for broadcast industry.
Change 3867233 by Guillaume.Abadie
Fixes a compilation failures in TAAU with r.PostProcessing.PropagateAlpha==2
Change 3867594 by Daniel.Wright
Removed EditorOnlyDefaultMaterials, which added 79s of shader compilation during startup
Added a dialog when opening the Material Editor on a Default Material, warning of advanced workflow
Preventing Material Editor Apply or Save for a Default Material when the preview material has compilation errors
Change 3870048 by Daniel.Wright
Cleaned up formatting in TranslucentRendering from merges
Change 3870106 by Krzysztof.Narkowicz
Fixed some FArchive Tell()/Seek() 64bit->32bit truncations
Change 3870211 by Rolando.Caloca
DR - vk - Added -vulkanvalidation=N/-vulkanstandardvalidation/-novulkanstandardvalidation to set validation layer behaviour from cmd line
Change 3870225 by Rolando.Caloca
DR - vk - Some platforms do not use a standard swapchain
Change 3870267 by Arne.Schober
DR - SafeRelease SRVs that might be hold by the Vertexfactories (maybe due to indirect use in GlobalResources)
Note that the VFs are not owners of the data, e.g the underlying Buffers might be released before this and this reference counting should be uneccessary
Change 3870647 by Daniel.Wright
Moved FogRendering.h to Renderer
Change 3872130 by Krzysztof.Narkowicz
Disable USE_GLOBAL_CLIP_PLANE for MATERIAL_DOMAIN_POSTPROCESS and MERIAL_DOMAIN_UI
Merging GitHub Pull request #4459
"When material domain is not needing global clip plane there is no need to generate any code involving it. This does not alter output but removes lot of code at vertex shader and pixel shaders. At least on mobile rendered was actually generating clipping code for ui materials."
#jira UE-54616
Change 3872145 by Rolando.Caloca
DR - vk - Optional SupportsMarkersWithoutExtension
Change 3872404 by Uriel.Doyon
Added some guards when streaming virtual textures.
Fixed optimized UCanvasRenderTarget2D::RepaintCanvas() to prevent resolving the texture twice.
Fixed bad mipmap generation with UCanvasRenderTarget2D.
Change 3872507 by Arne.Schober
Back out changelist 3870267
Change 3874176 by Ben.Marsh
IncludeTool: Add an flag to prevent scanning source files for exported symbols.
Change 3874935 by Krzysztof.Narkowicz
Fixed white thumbnails and other issues with sky lighting on ES3_1 path, by disabling GGX prefiltering, as mobile path doesn't have a single cubemap with all initialized mips. Instead it ping-pongs between 2 partially initialized.
#jira UE-54656
Change 3875710 by Daniel.Wright
Renamed uniform buffer member macros to be much shorter for readability
Change 3876665 by Guillaume.Abadie
Cherry-pick 3870715: Implements DOF's hybrid scatering bare bones.
Change 3876666 by Guillaume.Abadie
Cherry-pick 3871786: DOF hybrid scatering: fixes NaN source, transition to gather on close to screen edge and low intensity.
Change 3876677 by Guillaume.Abadie
Cherry-pick 3872348: Implements neighbor comparison for DOF's scattering compilation pass.
Change 3876680 by Guillaume.Abadie
Cherry-pick 3872357: Oups... fixes build...
Change 3876683 by Guillaume.Abadie
Cherry-pick 3872475: Controls number of mip to generate with DOF's reduce pass.
Change 3876687 by Guillaume.Abadie
Cherry-pick 3874104: Fixes various bugs in diaphragm DOF's hybrid scattering.
Change 3876690 by Guillaume.Abadie
Cherry-pick 3874144: Packs multiple DOF scattering group into same draw instance.
Change 3876694 by Guillaume.Abadie
Cherry-pick 3874275: Switches hybrid scattering with indexed indirect draw call to reduce scatter vertex shader invocation.
Change 3876695 by Guillaume.Abadie
Cherry-pick 3874674: Records min and max coc on DOF's setup's draw event.
Change 3876783 by Rolando.Caloca
DR - Static analysis fix
Change 3876845 by Guillaume.Abadie
Implements USceneCaptureComponent::ProfilingEventName
Change 3877197 by Rolando.Caloca
DR - vk - OQ fixes (disabled)
Change 3877428 by Krzysztof.Narkowicz
Merged with tiny tweaks Ansel photography plugin improvements from Adam Moss (GitHub pull request #4426):
-The free-roaming photography camera has new constraints by default, i.e. it can't pass through walls
-Photography session can be started and stopped programmatically, e.g. making it possible to bind photography to an alternative hotkey or button combo. This was an often-requested feature.
-Tweakables and utilities are now exposed through a Blueprint Function Library (rather than direct manipulation of console variables)
-The Ansel photography session UI now exposes some engine effect tweakables as sliders. For example, if the game is using depth-of-field then sliders are made available to allow the photographer to change the focal depth etc. The developer may suppress this behavior through the Blueprint Function Library.
-Letterboxing is now removed during multi-part capture, d'oh.
-Tiled shots are taken at full resolution even if ScreenPercentage < 100
-SSR is enabled during super-resolution shots since Ansel is now better at hiding any ensuing artifacts
-Postprocess settings are frozen at session start to avoid discontinuities during photography, i.e. wandering between postprocess volumes when the camera auto-moves for stereo and 360 shots.
#jira UE-54244
#4426
Change 3879086 by Krzysztof.Narkowicz
Fixed sky/reflection capture (without owner) update - they are now updated only with a correspoding world
Change 3879090 by Guillaume.Abadie
Fixes tones of regressions on diaphragm DOF's recombine passes.
Change 3879198 by Rolando.Caloca
DR - vk - Support for real uniform buffers on Android platforms
Change 3879993 by Krzysztof.Narkowicz
-Fixed int64->int32 FArchive offset truncation in TShaderMap, VertexFactory and TextureDerivedData
-Fixed FSerializationHistory bug, when trying to serialize 0 bytes
#jira UE-43203
Change 3881462 by Guillaume.Abadie
Implements full res DOF's setup pass for cheaper full res gathering in recombine pass.
Change 3881524 by Krzysztof.Narkowicz
Fixed compilation by removing FTickableEditorObject from FPreviewScene
Change 3881724 by Chris.Bunner
Static analysis fix.
#jira UE-54762
Change 3881861 by Rolando.Caloca
DR - vk - Fix layout warning when generating mip chain
Change 3881864 by Rolando.Caloca
DR - Use render passes on HZB
Change 3882236 by Yuriy.ODonnell
IndirectLightingColorScale is now applied to SubsurfaceLighting and DiffuseLighting. Was previously only applied to DiffuseLighting.
#jira UE-42534
#github 3326
Change 3882325 by Guillaume.Abadie
Implements FocusOnly lower gathering pass for Diaphragm DOF's slight out focus temporal stability.
Change 3882340 by Rolando.Caloca
DR - vk - Fix api dump
Change 3882430 by Rolando.Caloca
DR - vk - KHR_maintenance2
Change 3882563 by Rolando.Caloca
DR - Add depth-stencil access mode to PSO initializer
Change 3882929 by Rolando.Caloca
DR - vk - Proper fix for maintenance extension macros
Change 3883087 by Mark.Satterthwaite
Allow disabling VSync in windowed mode for macOS 10.13.4+ and above.
Change 3883597 by Guillaume.Abadie
Collapses full and half res DOF setup passes together.
Change 3883702 by Guillaume.Abadie
Fixes mac's build.
Change 3884747 by Uriel.Doyon
Fix for static analysis warning
Change 3884975 by Rolando.Caloca
DR - vk - Move some platform defines to platform properties
Change 3884988 by Rolando.Caloca
DR - vk - Make an override per platform
Change 3885832 by Rolando.Caloca
DR - vk - Cosmetic change to group similar members
Change 3885891 by Rolando.Caloca
DR - vk - Some _RenderThread functions to avoid stalls
Change 3886044 by Rolando.Caloca
DR - Added RHI api _RenderThread version of
RHICreateTextureReference
RHICreateShaderLibrary
RHICreateRenderQuery
Change 3886560 by Guillaume.Abadie
Fixes strong aliasing on TAAU's fast shader permutation.
This adds a 6th neighbor sampling, and switch AA_TONE ON as TAA does for its fast shader permutation.
Change 3886749 by Guillaume.Abadie
Cherry-pick 3884748: Implements DOF's BuildBokehLUT for diaphragm blades simulation.
Only used in hybrid scattering for now.
Change 3886750 by Guillaume.Abadie
Cherry-pick 3885457: Simulates diaphragm blades' curvature on bokeh.
Change 3886752 by Rolando.Caloca
DR - Fix metal static analysis
Change 3887460 by Uriel.Doyon
Fixed to more static analysis warning.
Change 3888201 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitAfterEveryEndRenderPass
- Fixed bad layout on rendering back buffer
Change 3888209 by Rolando.Caloca
DR - vk - Unity compile fix
Change 3888254 by Rolando.Caloca
DR - vk - Fix async texture layout
Change 3888893 by Guillaume.Abadie
Simulates bokeh in DOF's slight out of focus.
Change 3889085 by Guillaume.Abadie
Fixes DOF's reduce pass sampling outside viewport.
Change 3889924 by Rolando.Caloca
DR - vk - Skip seemingly bad validation error
Change 3890573 by Daniel.Wright
Only initialize FDiaphragmDOFGlobalResource in Feature Level 5
Change 3890590 by Arne.Schober
DR - Fix Paper2d crash. When addMesh is called the Vertex and Indexbuffers are nulled out. re-create Dynamic Mesh builder for every Mesh instead.
#jira UE-55063
Change 3890638 by Arne.Schober
DR - Better fix for Paper2d which honors batching
#jira UE-55063
Change 3891099 by Krzysztof.Narkowicz
1.5 texel shadow offset fix inside Manual2x2PCF based on #4485 GitHub pull request
#jira UE-54985
#4485
Change 3891234 by Krzysztof.Narkowicz
Optimized PCF2x2 and PCF3x3 - merged #4494 GithHub pull request
#jira UE-55121
Change 3891407 by Rolando.Caloca
DR - vk - Set vendor id earlier
Change 3891417 by Rolando.Caloca
DR - vk - Missing layout transitions
Change 3891718 by Arne.Schober
DR - Do not recreate one Frame Resource for dynamic draws
#jira UE-55063
Change 3891925 by Yuriy.ODonnell
Fix/workaround for inconsistent preprocessor definitions for NVAftermath that result in FD3D11DynamicRHI class layout mismatch. NVAftermath support is now enabled by default for Win64.
NVAftermath is declared as a private dependency in D3D11RHI. It does not automatically propagate to modules that explicitly include private RHI headers (OculusHMD, OSVR, OSVRInput). This results in NV_AFTERMATH being defined while compiling RHI module and not defined when compiling other modules, causing memory corruption at runtime.
The long-term solution for this and similar issues requires some mechanism for adding transitive module dependencies, so that anyone that depends on D3D11RHI module would automatically also get the NVAftermath. Additionally, private headers should *never* be included directly by external modules.
The short-term solution is to explicitly add NVAftermath dependency to OculusHMD, OSVR and OSVRInput.
Additionally, NV_AFTERMATH is no longer forced by D3D11RHIPrivate.h when it's not defined. This allows catching this kind of mismatch in the future through a compiler warning (C4668).
#jira UE-53065
Change 3891987 by Rolando.Caloca
DR - vk - Support for dedicated allocations
Change 3892339 by Jian.Ru
Fix a crash when tessellation shaders are used in dx12
#jira UE-55127
Change 3892528 by Rolando.Caloca
DR - vk - Update Linux headers
Change 3892867 by Rolando.Caloca
DR - vk - Don't create swapchain if not needed
Change 3893416 by Guillaume.Abadie
Implements bokeh simmulation on foreground and background gather.
Change 3893732 by Chris.Bunner
GetRelevance_Internal should use the immediate parent resource, not the base, as some features are overridden by permutations e.g. UsesWorldPositionOffset.
#jira UE-53404
Change 3893868 by Guillaume.Abadie
Allocates diaphragm DOF's buffers and structered buffer only on supported platforms.
Change 3893917 by Chris.Bunner
Potential fix for CIS.
Change 3893933 by Chris.Bunner
Duplicating CL 2647737 as this is the same issue from that JIRA where accessing game-thread data was being prevented. We don't have this check in UMaterial::GetMaterialResource already, but presumably the UMaterialInstance case was never removed as we've not been calling it until now.
Change 3894218 by Rolando.Caloca
DR - vk - Remove stat counters per draw call, gains 10% CPU on Infiltrator
Change 3894579 by Arne.Schober
RT - Fix assert not in RenderingThread from Triangle Renderer.
#jira UE-55247
Change 3894724 by Rolando.Caloca
DR - vk - New API for batching barriers
Change 3894909 by Arne.Schober
DR - Fix crash in Speedtree wind where Renderdata is unavailable
#jira UE-54544
Change 3895414 by Rolando.Caloca
DR - Add a configurable threshold for SCWs time outs
Change 3896429 by Marcus.Wassmer
Allow variable frame-latency delay in FrameGrabber frames. For performance you want at least a 1 frame delay so you don't sync the GPU to the CPU.
Change 3896495 by Marcus.Wassmer
Set pointer properly
Fix CIS
Change 3897253 by Guillaume.Abadie
Fixes CIS warning in diaphragm DOF
Change 3899179 by Guillaume.Abadie
Implements background hybrid scatter occlusion for diaphragm DOF.
Change 3903654 by Rolando.Caloca
DR - vk - Rework dump layer to allow other layers
Change 3903766 by Rolando.Caloca
DR - vk - More wrappers
Change 3904025 by Rolando.Caloca
DR - vk - More wrappers
Change 3904342 by Rolando.Caloca
DR - vk - Track image resources & callstacks
Change 3904346 by Rolando.Caloca
DR - vk - Copy fix from 4.19 for flickering grass
Change 3904510 by Rolando.Caloca
DR - vk - Compile fix
Change 3904914 by Daniel.Wright
[Integrate] Fixed PS4 transitions with forward shading
Change 3904916 by Daniel.Wright
[Integrate] Fixed PS4 transitions with occlusion queries
Change 3905975 by Rolando.Caloca
DR - vk - Missing wrappers
Change 3905977 by Rolando.Caloca
DR - vk - Missed file
Change 3907829 by Rolando.Caloca
DR - Move depth bounds to the PSO
Change 3907832 by Rolando.Caloca
DR - vk - Prep for delaying transitions
Change 3907834 by Rolando.Caloca
DR - vk - Fix for depth stencil issues/validation errors
Change 3907967 by Rolando.Caloca
DR - vk - Linux compile
Change 3908093 by Rolando.Caloca
DR - vk - Fix depthstencil layout on descriptors
Change 3908393 by Rolando.Caloca
DR - vk - Disable dedicated allocation as it causes crashes on Nvidia 700 series
Change 3908401 by Rolando.Caloca
DR - Do transitions outside render pass
Change 3908422 by Rolando.Caloca
DR - vk - Fix transition state not getting stored
Change 3908735 by Guillaume.Abadie
Cherry-pick 3896619: Fixes after TAAU post process material that had wrong default buffer UV.
#jira UE-55317
Change 3908736 by Guillaume.Abadie
Cherry-pick 3891352: Fixes ensure when visualizing HDR with TAAU.
#jira UE-55019
Change 3908753 by Guillaume.Abadie
Lets the renderer layout the views in the internal render targets like it prefers.
Change 3909119 by Daniel.Wright
Fix some static analysis warnings
Change 3911943 by Rolando.Caloca
DR - vk - Fix for packaging Vulkan projects
Change 3912145 by Rolando.Caloca
DR - vk - Fix layout on streaming textures
Change 3913029 by Rolando.Caloca
DR - Fix missing transition
Change 3913048 by Rolando.Caloca
DR - Fix for hlslcc
Change 3913054 by Rolando.Caloca
DR - vk - Fix number of layers on barrier
Change 3913171 by Rolando.Caloca
DR - vk - Fix for decal missing transition
Change 3913211 by Rolando.Caloca
DR - vk - Add debug name to image tracking
Change 3913449 by Rolando.Caloca
DR - vk - Restore transition
Change 3913466 by Rolando.Caloca
DR - Fix Vulkan EngineTest
Change 3913537 by Rolando.Caloca
DR - vk - Fixes independent samplers & textures (contributed by AMD)
Change 3913548 by Rolando.Caloca
DR - vk - Warning fix
Change 3913691 by Rolando.Caloca
DR - vk - Fixes for parallel (wip)
Change 3914656 by Rolando.Caloca
DR - vk - Fix bug when using separate samplerstates and textures
Change 3914730 by Rolando.Caloca
DR - vk - Bump version
Change 3914764 by Rolando.Caloca
DR - vk - Don't crash on exit
Change 3915532 by Rolando.Caloca
DR - vk - Parallel context fixes
Change 3915589 by Rolando.Caloca
DR - vk - Hoist and rename transition and layout manager class out of the context
Change 3915592 by Rolando.Caloca
DR - Fix gpu marker name
Change 3917607 by Rolando.Caloca
DR - vk - Fix depth bounds on Vulkan
Change 3917609 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3917616 by Rolando.Caloca
DR - Fix D3D11 initialization
Change 3920569 by Rolando.Caloca
DR - vk - Prep for layout mgr refactor
Change 3921023 by Rolando.Caloca
DR - vk - Dump layer fixes
Change 3921623 by Rolando.Caloca
DR - vk - Prep refactor for layouts
- Dump now shows marker tree
Change 3922007 by Rolando.Caloca
DR - vk - Fix extra allocation per draw call
Change 3922442 by Rolando.Caloca
DR - vk - Detect potential issues
Change 3922470 by Rolando.Caloca
DR - vk - Minor optimization
Change 3922482 by Rolando.Caloca
DR - vk - More minor optimizations
Change 3923158 by Rolando.Caloca
DR - Move r.DisableEngineAndAppRegistration out to common RHI and use it on Vulkan
Change 3923486 by Rolando.Caloca
DR - vk - Minor cpu optimizations
Change 3923505 by Rolando.Caloca
DR - vk - Use bigger allocations for uniform buffers
Change 3923516 by Rolando.Caloca
DR - vk - Android compile fix
Change 3923557 by Rolando.Caloca
DR - vk - Cache descriptorset layouts, refactor duplicated code
Change 3923851 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3924153 by Rolando.Caloca
DR - vk - Support for dynamic UBs
Change 3924193 by Rolando.Caloca
DR - vk - Remove old per pso descriptor pools
Change 3924197 by Rolando.Caloca
DR - vk - Remove unused global uniform buffer pool
Change 3924220 by Rolando.Caloca
DR - vk - Wrap some unused classes in their define
Change 3924234 by Rolando.Caloca
DR - vk - Show ring buffer wrapping messages
Change 3924243 by Rolando.Caloca
DR - vk - Fix bad dynamic buffer
Change 3924902 by Rolando.Caloca
DR - vk - Fix crash running infiltrator
Change 3925209 by Rolando.Caloca
DR - vk - Fix bug with dynamic buffers
- Remove old defines
Change 3925300 by Rolando.Caloca
DR - vk - Allow packed uniforms as dynamic UBs (with r.Vulkan.DynamicGlobalUBs)
Change 3925627 by Rolando.Caloca
DR - vk - Move DynamicOffsets into the pipeline state
Change 3925834 by Rolando.Caloca
DR - vk - Cache per stage information
Change 3925835 by Daniel.Wright
Fixed DisplayName for UParticleModuleCollisionGPU
Change 3925897 by Rolando.Caloca
DR - vk - Split update descriptors loop
Change 3926488 by Rolando.Caloca
DR - vk - 16MB for ring buffer on desktop, 8 MB for mobile
Change 3928168 by Guillaume.Abadie
Cherry-pick 3917219: Implements r.DOF.RecombineQuality
Change 3928173 by Guillaume.Abadie
Cherry-pick 3927888: Enables r.DOF.HybridScatter.BackgroundCompositing and r.DOF.HybridScatter.ForegroundCompositing to work when both enabled.
Change 3928216 by Rolando.Caloca
DR - vk - Fix Android
- Fix static analysis
Change 3929119 by Rolando.Caloca
DR - vk - Rename some classes for clarity
- Fix read-only cvar
Change 3929151 by Rolando.Caloca
DR - vk - Rename class
Change 3930046 by Rolando.Caloca
DR - Temp fix Vulkan flickering grass
Change 3930148 by Rolando.Caloca
DR - vk - Only update dirty descriptors
- Use dynamic descriptors for packed global uniform buffers
Change 3930998 by Guillaume.Abadie
Packs shader permutation in different XGE submissions.
Change 3931079 by Rolando.Caloca
DR - vk - Fixes for Android and non-real ubs platforms
Change 3931942 by Krzysztof.Narkowicz
Depth rendering - When EarlyZPassMode is set to DDM_AllOccluders, dynamic objects need also to test bUseAsOccluder just like static ones
#jira none
Change 3932819 by Daniel.Wright
[Integrate] Scene Textures uniform buffer
* Base Pass Uniform Buffer now contains a Scene Textures uniform buffer. Previously the translucent base pass had to check ~40 loose scene texture parameters every draw.
* FMeshMaterialShader's must now bind PassUniformBuffer and supply a valid pass uniform buffer. For most passes this is just FSceneTextureUniformParameters.
* FRendererModule::DrawTileMesh can now cleanly set dummy scene texture resources, just by configuring how the pass uniform buffer is created.
* Moved scene texture shader functions out of Common, into SceneTexturesCommon which must be manually included by shaders that want to use them
* Separate Mobile Scene Textures uniform buffer to silo the platform complexities
Moved DBuffer inputs out of FDeferredPixelShaderParameters and into FOpaqueBasePassUniformParameters
Removed per-frame material uniform expressions. GameTime material node with period is now implemented with an fmod in the shader, without the use of MaterialFloat, so that it will happen at full precision.
* Per-frame expressions were used when the GameTime material node had a period, to do the fmod on the CPU where 32 bit precision is guaranteed, for mobile GPU's where pixel shader precision is sometimes less than 32fp.
Moved forward shading data into the Base Pass Uniform Buffer
Removed instanced stereo support for the light cull grid - will have to be reimplemented without changing SRV's per draw
Base pass sets View Uniform Buffer from DrawRenderState instead of choosing which one to set per-draw
Fixed padding in nested uniform buffer structs
Skip SRV members on Feature Level SM4 and below
Change 3932964 by Rolando.Caloca
DR - vk - Renderdoc on Android
Change 3933095 by Daniel.Wright
Moved FSceneTextureUniformParameters out of the opaque base pass uniform buffer.
* Base Pass shaders now enable SCENE_TEXTURES_DISABLED when compiling for a material of any domain other than MD_Surface. These are used when rendering thumbnails of a material in a different domain, which could be opaque, but the opaque base pass drawing policy does not bind a scene textures uniform buffer, so the shader must not bind it.
* Opaque materials can no longer use EyeAdaptation.
Change 3933096 by Daniel.Wright
Better d3d11 assert message when a uniform buffer was not set by the renderer
Change 3933176 by Rolando.Caloca
DR - vk - Prefer mailbox if available
Change 3933271 by Ryan.Vance
#jira UE-55936
Fixed missing referenced uniform bindings on AR pass-through camera shaders.
Change 3934000 by Guillaume.Abadie
Fixes Win32 build in ShaderCompilerXGE.cpp
Change 3934299 by Guillaume.Abadie
Fixes a bug in DOF's reduce operator that was casusing color leaking between background and foreground.
Change 3934699 by Daniel.Wright
Added bAffectDistanceFieldLighting to landscape
Change 3935190 by Daniel.Wright
Forward Light Grid SRV's use StructuredBuffer on Metal, instead of 'invariant Buffer', which throws off RemoveUniformBuffersFromSource parsing
Change 3935606 by Daniel.Wright
Removed LightmapPolicy::Set which was needed for vertex lightmaps
Renamed FVertexFactory::Set to SetStreams to make it findable
Change 3936510 by Rolando.Caloca
DR - vk - Update glslangValidator.exe to 1.0.65.1 for dumped debug SPIRV shaders
Change 3936545 by Richard.Wallis
Clone of CL's (3925763, 3925430, 3925424, 3925385, 3925278) Mark Satt's Xcode fixes from task stream //Tasks/UE4/Dev-UERNDR-354-mtlpp/
Plus XCode 9.2 compile fix in ApplicationPlatformCompilerPreSetup.h for -Wunused-lambda-capture.
Change 3938061 by Daniel.Wright
Vulkan: Added support for SRV's in Uniform Buffers
Change 3938123 by Daniel.Wright
Vulkan: Slightly better assert for null resources in uniform buffer
Change 3939197 by Rolando.Caloca
DR - vk - Disable custom memory mgmt
Change 3939677 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3939809 by Rolando.Caloca
DR - vk - Fixes for async compute
Change 3939875 by Rolando.Caloca
DR - vk - Support for -vktrace
Change 3939977 by Rolando.Caloca
DR - vk - Skip a condition during gather UBs
- Set up efficient compute async var
- Fix validation cmd line
Change 3939982 by Rolando.Caloca
DR - vk - Revert mipchain
Change 3939984 by Rolando.Caloca
DR - vk - Remove unnecessary asserts
Change 3940082 by Rolando.Caloca
DR - vk - Custom mem mgr
Change 3940475 by Rolando.Caloca
DR - vk - Fix DFAO (indirect draw offset)
Change 3940555 by Rolando.Caloca
DR - vk - Minor fixes
Change 3940675 by Rolando.Caloca
DR - vk - Fix indirect type mismatch
Change 3941111 by Rolando.Caloca
DR - Renderpass bGeneratingMips
Change 3941847 by Daniel.Wright
Fixed Volumetric Lightmaps on Static geometry only working if the geometry had been built with Surface Lightmaps before
Change 3941978 by Rolando.Caloca
DR - vk - Minor fixes for presenting on compute queue
Change 3942074 by Rolando.Caloca
DR - vk - Remove some RHI stalls
- Fixed swap chain stat
Change 3943946 by Daniel.Wright
Fixed Texcoord0 on Volume materials on a particle sprite, including SubUV particles.
Change 3944065 by Daniel.Wright
Fixed SceneDepth collision getting broken on GPU particles when a scene capture is rendering
Change 3944158 by Daniel.Wright
Fixed ViewUniformShaderParameters accessing GEngine->PreIntegratedSkinBRDFTexture too early during slate loading screen
Change 3944865 by Rolando.Caloca
DR - vk - Prep for render passes
Change 3945196 by Rolando.Caloca
DR - Move render pass validate to cpp
Change 3945202 by Rolando.Caloca
DR - vk - Some fixes for using real render passes
Change 3945357 by Rolando.Caloca
DR - Fix bad condition
Change 3946295 by Yuriy.ODonnell
Added a sentinel member to FLightMap, which is initialized in the ctor and reset in the dtor. Sentinel is then checked in FLightCacheInterface::GetLightMapInteraction().
This aims to shed some more light on a hard-to-repro crash, which is suspected to be a use-after-free bug: http://crashreporter/Buggs/Show/1785593
Change 3946407 by Rolando.Caloca
DR - vk - Prep for refactor
Change 3946648 by Rolando.Caloca
DR - vk - Fixes for async compute (wip)
Change 3947299 by Rolando.Caloca
DR - vk - FIx static analysis
Change 3948434 by Rolando.Caloca
DR - vk - Fix exiting with parallel
Change 3948928 by Rolando.Caloca
DR - vk - Fix enabling draw markers for tools
Change 3949021 by Rolando.Caloca
DR - vk - Buffer tracking layer
Change 3949602 by Rolando.Caloca
DR - vk - static analysis fix
Change 3949757 by Rolando.Caloca
DR - vk - Remove bogus parameter
Change 3949810 by Rolando.Caloca
DR - vk - Move waits for cmd buffer
Change 3950270 by Guillaume.Abadie
Implements dedicated gather pass for foreground hole filling to avoid being VGPR bound in foreground gather pass, but still being hable to amend foreground.
Change 3950272 by Rolando.Caloca
DR - vk - Minor refactor for semaphores
Change 3950279 by Guillaume.Abadie
Oups... fixes build
Change 3950298 by Rolando.Caloca
DR - vk - Gather wait semaphores in the cmd buffers
Change 3950371 by Rolando.Caloca
DR - vk - fixes for async compute
Change 3950597 by Rolando.Caloca
DR - vk - Fix for clip distance (fixes planar reflections)
Change 3951075 by Rolando.Caloca
DR - vk - Fix for async compute
Change 3952524 by Guillaume.Abadie
Some DOF enum refactoring.
Change 3955016 by Daniel.Wright
Fixed BuiltData package getting renamed into the map package during a content browser folder move, causing a redirector to be incorrectly placed in the map package
Change 3955668 by Guillaume.Abadie
Fixes a bug where full res coc buffer was computed even if not doing slight out of focus.
Change 3956722 by Guillaume.Abadie
Fixes a bug where r.DOF.MaximalForegroundBlurringRadius was screen percentage dependent.
Change 3959212 by Guillaume.Abadie
Prefixes all DOF's shaders files with DOF keyword.
Change 3959705 by Guillaume.Abadie
Optimises the DOF setup pass outputing half res and full res with LDS downsample.
Change 3959941 by Guillaume.Abadie
Halfs DOF's hybrid scatter compilation by using a unique downsampling for both foreground and background, instead of 2 reduce passes.
Change 3962273 by Rolando.Caloca
DR - Fix typos
#jira UE-56317
PR #4586
Change 3962615 by Rolando.Caloca
DR - vk - Compile fix
Change 3962949 by Rolando.Caloca
DR - Fix DOFDownsample extension
Change 3962993 by Guillaume.Abadie
Back out changelist 3962949
Change 3963016 by Guillaume.Abadie
Adds missing DOFDownsample.usf
Change 3963041 by Rolando.Caloca
DR - vk - Misc changes to help integrate
Change 3964293 by Guillaume.Abadie
Fixes DOF's setup pass reading outside of the viewport.
Change 3964475 by Guillaume.Abadie
Collapses DOF's hybrid scatter compilation passes into reduce passes.
Change 3964883 by Daniel.Wright
Fixed 3d texture in uniform buffer on unsupporting RHI
Change 3964897 by Rolando.Caloca
DR - Compile fixes
Change 3964914 by Guillaume.Abadie
Fixes a bug on r.DOF.RecombineQuality=0
Change 3965153 by Guillaume.Abadie
Fixes compile warning in D3D12Commands.cpp.
Change 3965814 by Rolando.Caloca
DR - Prep for integration conflict resolve
Change 3965899 by Rolando.Caloca
DR - Fix odd linkage issue
Change 3966072 by Rolando.Caloca
DR - More prep for merge
Change 3966163 by Rolando.Caloca
DR - Merge prep
Change 3966844 by Guillaume.Abadie
Packs multiple DOF scattered bokeh per instance and uses PT_RectList in DOF for platforms that can.
Change 3967116 by Rolando.Caloca
DR - Compile fixes for integration
Change 3967273 by Rolando.Caloca
DR - Use same path for mip generation
Change 3967277 by Rolando.Caloca
DR - vk - Fix mips on cubemaps
Change 3967693 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, missing shaders
Change 3967851 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, Engine 2/2
Change 3968083 by Rolando.Caloca
DR - Integration compile fixes
Change 3968240 by Rolando.Caloca
DR - Shader compile fixes for integration
Change 3968270 by Rolando.Caloca
DR - Fix for missing hash calculation
Change 3969426 by Rolando.Caloca
DR - vk - Fix warning
Change 3969869 by Krzysztof.Narkowicz
Back out changelist 3946295 - UE-54537 is fixed, so no need for this debug sentinel.
#jira none
Change 3969944 by Rolando.Caloca
DR - Warning fix
Change 3970020 by Rolando.Caloca
DR - Bump after integration
Change 3970052 by Rolando.Caloca
DR - Fix for mobile
Change 3970236 by Daniel.Wright
Causing decal shader to recompile to fix a merge bug
Change 3970270 by Daniel.Wright
Bump shader version from merge
Change 3970339 by Olaf.Piesche
Replace series of locks/unlocks with a single one for curve injection
#tests QAGame
Change 3970390 by Rolando.Caloca
DR - Rename FSceneTextureUniformParameters to FSceneTexturesUniformParameters
- Remove duplicate method for occlusion queries
Change 3970523 by Rolando.Caloca
DR - Fix serialization of shaders
Change 3970533 by Arne.Schober
DR - fix for removing the Speed tree wind when the scene gets deleted. The original enque rendercommand requeues the element onto the renderthread although the call already came from the Renderthread and the scene can get lost in between.
#jira UE-56322
Change 3971160 by Guillaume.Abadie
Fixes CompositeEditorPrimtive pass and SelectionOutline pass for VR editor to work with TAAU.
Change 3971516 by Guillaume.Abadie
Cherry-pick 3912629: Fixes SSR that was computing vigneting according to PrevScreen that could let some outside viewport samples going through when rotating the camera.
#jira UE-55353
Change 3971594 by Krzysztof.Narkowicz
Fixed assert inside BindLightMapVertexBuffer. FSplineMeshSceneProxy was calling BindLightMapVertexBuffer for invalid (still not generated) lightmap UV channel after mesh reimport. Simplified assert, as at the moment almost all of the high callsites already clamp lightmap uv channel.
#jira UE-56321
Change 3971622 by Krzysztof.Narkowicz
Fixed crash inside Indirect Lighting Cache. Data (reflection captures and lightmap) generation calls ULevel::GetOrCreateMapBuildData(), which can destroy lightmap data if level has legacy data. Last Lightmap generation step recreates this data, but if user cancels lightmap generation - it won't do that.
#jira UE-56171
Change 3974788 by Rolando.Caloca
DR - Remove GSupportsGenerateMips
Change 3974789 by Rolando.Caloca
DR - Remove bogus function
Change 3974986 by Rolando.Caloca
DR - vk - Tracking fixes
Change 3974989 by Rolando.Caloca
DR - vk - Don't submit dummy barriers
Change 3975075 by Olaf.Piesche
Update for particle curve injection improvement, fixing ES2 problems
#tests QAGame tm-shadermodels, various color curve tests in-editor
Change 3975957 by Uriel.Doyon
Fixed invalid max texture resolution when using the bake material tools.
Change 3978471 by Daniel.Wright
New cvar r.SkylightUpdateEveryFrame
Change 3978779 by Rolando.Caloca
DR - Accessor for texture sizes
Change 3978797 by Rolando.Caloca
DR - Clean up RHI CopyTexture API
Change 3978832 by Rolando.Caloca
DR - vk - Workaround for RenderDoc crashing due to Descriptor Pool reset
Change 3978836 by Rolando.Caloca
DR - vk - Remove generate mips
Change 3979201 by Rolando.Caloca
DR - vk - RHI CopyTexture. Uses general layout for generating mips
Change 3979204 by Rolando.Caloca
DR - Use render passes and CopyTexture to generate mips
Change 3979592 by Rolando.Caloca
DR - Warning fix
Change 3980855 by Krzysztof.Narkowicz
Optimize bounding sphere radius after non-uniform scale by using bounding box extent.
#jira UE-56227
Change 3981065 by Rolando.Caloca
DR - vk - Fix bad layout
#jira UE-56238
Change 3981346 by Rolando.Caloca
DR - Copy from 3707257
Support for not flushing compute jobs (r.D3D11.UAVFlushNV)
Change 3981347 by Rolando.Caloca
DR - Copy from 3707257
Don't flush between morph dispatched
Change 3981932 by Mark.Satterthwaite
Generate the shader hash and function name when a Metal shader error needs to be reported so that even without shader code we get something to go on.
Change 3982442 by Rolando.Caloca
DR - Fix warning
Change 3982652 by Rolando.Caloca
DR - vk - Signal semaphore cleanup
Change 3983917 by Richard.Wallis
Clone of CL 3974146 converted for mtlpp along with extra mtlpp usage suggestions by Mark Satt:
Fix for black flickering on first paint with weighted material landscape on Mac. When using AsyncCopyFromBufferToTexture in Metal we put the blit operation on the prologue encoder - however after a draw call using that resource the copy operation should happen after on the current encoder, this keeps the correct order of operations.
Added Bool return from various Asnyc renderpass resource requests so caller can decide correct further action. Updated to include the other async functions.
Change 3984409 by Guillaume.Abadie
Attempts to make static analysis happy again.
Change 3984435 by Nick.Bullard
Checking in Performance Test level provided to us by Tor Frick based on UE-44841.
This has been utilized for checking issues against Aftermath performance impact.
The Map includes 2 Level Book marks, most testing has been done against Bookmark 1 view, in fullscreen, in game mode
Change 3985087 by Mark.Satterthwaite
Make sure that the particle scratch buffer is large enough to hold all the data for the curve texture we are rendering to, otherwise a full set of curves will start scribbling memory after 64Kb (the curve texture is 256Kb of data - 512x512x4 as sizeof(RGBAUInt8) == 4). This happens in ElementalDemo.
Change 3985201 by Rolando.Caloca
DR - Fix bad CopyTexture
Change 3985258 by Mark.Satterthwaite
Try and detect orientation changes so that we don't blow-up on iOS due to a huge mismatch between the drawable texture for the display and the scene's depth-stencil target. I can't just fiddle with the depth-stencil texture itself without running the risk of obliterating in-use data and really we shouldn't permit such a mismatch anyway but it is fallout from 3620990.
#jira UE-55756
Change 3986449 by Rolando.Caloca
DR - vk - Update & consolidate Vulkan headers to 1.1.70.1
Consolidate SDK into one
Change 3986571 by Guillaume.Abadie
Makes PVS-Studio happy again in DOF.
Change 3987039 by Yuriy.ODonnell
Initial implementation of tracing profiler to show CPU and multiple GPUs on the same timeline. Currently only supported on DX12 platforms.
Use `TracingProfiler frames=N` console command to trigger a capture of the next N frames. Trace is saved to disk as a JSON file into `Saved/Profiling/Traces` directory.
Trace file uses Google Tracing format and can be visualized in Chrome built-in profiler (chrome://tracing).
`r.GPUStatsChildTimesIncluded=1` CVar makes timing scopes hierarchical.
`TracingProfiler.BufferSize=N` CVar controls the size of the tracing buffer, which may need to be increased for long traces (default is 65k events). Only can be set at startup.
Change 3987074 by Yuriy.ODonnell
Implemented timestamp calibration on DX11. Calibration is only performed when tracing profiler session starts.
Change 3987160 by Yuriy.ODonnell
Added thread naming and ordering to the tracing profiler output
Change 3987331 by Mark.Satterthwaite
Remove the Nvidia hack to retain resource references in command-buffers for UE-46604 as the mtlpp refactor provides stronger resource lifetime guarantees.
#jira UE-46604
Change 3987754 by Mark.Satterthwaite
Fix MetalRHI memory reporting in non-default path.
PR #4568
Change 3988184 by Arciel.Rekman
Linux: Fix editor OpenGL performance (UE-55960).
- GetCurrentThreadId() calls became much more frequent with the OpenGL RHIT refactor.
- We used to only cache that value in monolithic builds, because having per-thread static variables in dynamic libraries is risky due to OS limits.
- This change adds dynamically-managed per-thread cache for non-monolithic builds.
#jira UE-55960
Change 3988394 by Rolando.Caloca
DR - vk - Improve memory mgmt
- Use 256MB pages for Device heap (or 1/8th if less).
- Remove texture allocations not going through resource manager
Change 3988405 by Marcin.Undak
Fix VulkanQuery crash on exit #codereview rolando.caloca #codereview arciel.rekman #rb arciel.rekman
Change 3988567 by Rolando.Caloca
DR - vk - Support for packed global UBs on pci aperture heap
Change 3988668 by Rolando.Caloca
DR - vk - Remove old comments
Change 3988956 by Marcin.Undak
RecordPerformance: added option to skip building/cooking before tests #rb none #codereview arciel.rekman
Change 3989161 by Yuriy.ODonnell
Static analysis error fix
Change 3989196 by Guillaume.Abadie
Fixes a crash in light shaft's TAA pass.
#jira UE-57366
Change 3989207 by Yuriy.ODonnell
Refactored FRealtimeGPUProfilerFrame to avoid splitting profile events when calculating exclusive times of scopes. This allows tracing profiler to retain the hierarchical view of the data, while keeping CSV and GPU Stat system behavior intact.
Change 3989469 by Rolando.Caloca
DR - vk - Fix for bad index; fix for bad transition
Change 3989772 by Yuriy.ODonnell
Implemented timestamp calibration on Vulkan
Change 3990040 by Marcus.Wassmer
Aftermath enabled by default.
Removed unnecessary warning for other vendors
Change 3990064 by Mark.Satterthwaite
Ensure that packed globals are reuploaded when the command-encoder is restarted - don't simply invalidate the existing parameters. This properly handles cases where a single logical render-pass is broken into multiple command-encoders and/or command-buffers - otherwise all shaders must reset all parameters each time. When we move between frames we *do* want to perform a full state reset though as previous frame globals are treated as invalid.
Change 3990080 by Mark.Satterthwaite
Change the way we invalidate the visibility buffer between command-buffers and command-encoders so that on iOS you can reuse the same buffer within the same command-buffer, but not across more than one. The code provides an exception to this rule when running under the MetalRHI validation tools which can break each draw call into its own buffer.
Change 3990084 by Mark.Satterthwaite
Get MetalStatistics compiling again.
Change 3990381 by Arciel.Rekman
Bring back D3D12 in RecordPerformance.
Change 3991113 by Rolando.Caloca
DR - Fix crash on RHI thread on mobile preview
- Check RHI objects are not null in the PSO initializer
Change 3991191 by Ryan.Vance
#jira UE-55952
Reimplemented instanced stereo for forward lighting cull grid after the srv/ub clean up.
Change 3991343 by Rolando.Caloca
DR - Copy from 3911492
UE4 - Disabled parallel mobile bass pass by default. This is experiemental and not known to be useful on any mobile platform.
Change 3991375 by Mark.Satterthwaite
Proper copyright assignment in the mtlpp debugger header.
Change 3993151 by Daniel.Wright
Fix RTDF resource transition found by Rolando
Change 3993818 by Rolando.Caloca
DR - Missed file
Change 3993923 by Krzysztof.Narkowicz
Fixed crashes inside RemoveSpeedTreeWind() and RemoveSpeedTreeWind_RenderThread().
FStaticMeshComponentRecreateRenderStateContext didn't flush deferred render updates causing stale RenderData to be left:
1. Thumbnail manager called SetStaticMesh(nullptr), which added StaticMeshComponent to deferred render updates.
2. UStaticMesh::Build called FStaticMeshComponentRecreateRenderStateContext and destroyed DenderData, but didn't touch Thumbnail's manager StaticMeshComponent as it was nullptr.
3. This resulted in a StaticMeshComponent with stale RenderData pointer.
#jira UE-54544
Change 3994033 by Rolando.Caloca
DR - vk - Reworked layers & extensions, as we were not doing it properly
- Remove -vulkanstandardvalidation and -novulkanstandardvalidation as they are not needed anymore
Change 3994275 by Mark.Satterthwaite
Change to linking against mtlpp via AddEngineThirdPartyPrivateStaticDependencies and marking its header with THIRD_PARTY_* macros in the vain hope that might convince the remote compilation code to distribute the module to the remote machine when building MetalRHI.
#jira UE-57507
Change 3994365 by Mark.Satterthwaite
Pilfer some code from the old MetalHeap file to handle calculating texture memory size on older macOS and iOS builds when running with stats or LLM enabled.
#jira UE-57513
Change 3994382 by Rolando.Caloca
DR - vk - Some missing locks during image tracking
Change 3994422 by Rolando.Caloca
DR - vk - Remove bogus shader format
Change 3995530 by Rolando.Caloca
DR - vk - Fix for crash when validation is enabled
Change 3995531 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3995532 by Rolando.Caloca
DR - vk - Added support for r.Vulkan.SaveValidationCache
Change 3995610 by Uriel.Doyon
Texture Streaming Changes and Fixes:
- Using the small FOV items (like scopes) now only affect visible primitives (through "r.Streaming.MaxHiddenPrimitiveViewBoost").
- Static components added after the level is registered in the streaming manager are now handled correctly (fixes the low quality on the chests)
- Dynamic components do not need to register to the streaming manager anymore.
- Optimized dynamic component management by removing duplicate entries in the update list.
- Added a pregarbage collect pass to the dynamic component management to optimize GC handling.
- Added a budget reset logic whenever the scene requirements change significantly.
- PIE worlds now have correct visibility information.
- Fixed possible invalid memory access when processing the streaming manager slave views.
- Refactored the incremental level texture data build to prevent new components from being unhandled.
- Removed StreamingManager callbacks for NotifyActorSpawned() and NotifyPrimitiveAttached()
- Added a StreamingManager callback NotifyPrimitiveUpdated(), to be used whenever a primitive streaming state must be updated.
#jira none
Change 3995908 by Arciel.Rekman
Fix compile errors when using new Vulkan queries.
Change 3995990 by Arciel.Rekman
More compile fixes to new Vulkan queries.
- MSVC did not catch this, clang did.
Change 3996101 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3996323 by Mark.Satterthwaite
Use the right include path to export the mtlpp headers.
#jira UE-57507
Change 3996392 by Arciel.Rekman
Vulkan: fix crash on start when using new queries.
- CommandBufferManager was not yet set at that point and the code in queries relied on it.
Change 3996585 by Rolando.Caloca
DR - Slight improvement to GL being black, but just a temporary 'workaround' as it's not correct.
Change 3998806 by Arciel.Rekman
Fix Linux build (UE-57602).
#jira UE-57602
Change 3998866 by Arciel.Rekman
SubwaySequencer: fix old shader platform name.
Change 3998947 by Mark.Satterthwaite
Silence deprecation warnings in CEF on macOS now that we've moved to 10.12 as the minimum.
#jira UE-57577
Change 3998951 by Mark.Satterthwaite
Fix last of the deprecation errors that I am aware of for macOS 10.12.
#jira UE-57581
Change 3998984 by Mark.Satterthwaite
Build mtlpp for iOS 9.0 not 9.3.
#jira UE-57586
Change 3999065 by Rolando.Caloca
DR - vk - Make sure we use version 1.0.0
#jira UE-57521
Change 3999071 by Arne.Schober
DR - [UE-55433, UE-57361] Hack SNORM support in OpenGL by re-interpreting UNORM. Underlying data is always SNORM.
#jira UE-55433, UE-57361
Change 3999494 by Rolando.Caloca
DR - Enable r.UnbindResourcesBetweenDrawsInDX11 in debug
- Clear compute resources when r.UnbindResourcesBetweenDrawsInDX11 is enabled
Change 4000197 by Krzysztof.Narkowicz
Mesh simplifier - normalize TexCoordWeights using min/max TexCoord range. This fixes precision issues for very big TexCoord values and allows to optimize for all TexCoord channels when channels have values of different magnitudes (e.g. non standard TexCoord data).
#jira UE-54935
Change 4000305 by Yuriy.ODonnell
Suppress PVS Studio warning V547 (Expression is always true) related to Aftermath
Reported issue to PVS team and to NVIDIA. Confirmed false positive, fix coming in future PVS version (v6.24).
#jira UE-57579
Change 4000853 by Arciel.Rekman
Linux: fix not calling CrashReportClient (UE-57678).
#jira UE-57678
Change 4001504 by Rolando.Caloca
DR - vk - Fix transition
Change 4002460 by Krzysztof.Narkowicz
Toggle for contant shadow length in word space
Exposed contact shadows to Blueprints
#jira none
Change 4002608 by Rolando.Caloca
DR - vk - Fix static analysis
- Fix potential debug image tracking crash
- Comment out unused methods
Change 4002615 by Rolando.Caloca
DR - vk - Allow r.Vulkan.WaitForIdleOnSubmit to be set at startup (e.g. in ConsoleVariables.ini)
Previously, if your map needed to UpdateSkyCaptureContents on startup, an ensure would fail if GWaitForIdleOnSubmit was set.
PrepareForCPURead needs to wait for the command buffer to finish before trying to read the results back, but the wait has already happened when r.Vulkan.WaitForIdleOnSubmit is set. Trying to wait again correctly complains that the command buffer is not in the correct state. So, skip the WaitForCmdBuffer call when r.Vulkan.WaitForIdleOnSubmit is set.
Change 4002640 by Rolando.Caloca
DR - vk - Missing support for CVarDefaultBackBufferPixelFormat
Change 4002919 by Guillaume.Abadie
Implements DOF's temporal upsampling pass for better dynamic resolution stability.
Change 4002984 by Guillaume.Abadie
Integrates Sebastian Aaltonen's ALU optimisations for TAAU.
Change 4003112 by Olaf.Piesche
Fir for TBB stall (resulting in severe hitches and hangs in the editor with stats active); tested multiple scenarios and encountered no hitches.
#tests QAGame PerformanceTest and RenderTest map with various stats on and off
Change 4003159 by Mark.Satterthwaite
Undo parts of changelist 3970553 - the ref-counted pointer approach to returning textures to the pool is not working as expected so we'll remove that. It'll be faster on the CPU without it and everything works thanks to the changes this CL made to the way textures were released.
#jira UE-57538
Change 4003287 by zachary.wilson
Adding reflection capture content to TM-LightingScenarios
Change 4003395 by Arne.Schober
DR - Fix unitzialised value when clicking Go To in the editor
#jira UE-57048
Change 4003425 by Rolando.Caloca
DR - vk - Fix for new occlusion queries
Change 4003530 by Arne.Schober
DR - Disable GPU Benchmark in headless configurations
#jira UE-57673
Change 4003717 by Rolando.Caloca
DR - vk - Fix for depth not store, stencil store
Change 4003719 by Rolando.Caloca
DR - Minor switch to render pass
Change 4003720 by Mark.Satterthwaite
Don't suballocate private memory buffers on Vega and only Vega as there is something wrong with the blits in those cases but I can't capture a GPU trace to find out what right now (the driver is broken) - could be a bug in my code but this works on Polaris and Nvidia so it will need to be filed as a radar for AMD.
Remove the FMetalBufferChunk from FMetalBuffer and simply store a pointer to the owning Heap/Magazine allocator. The FMetalResourceHeap now calls a new Release function to return the buffer to the allocator which will be faster on the CPU.
#jira UE-57659
Change 4003854 by Mark.Satterthwaite
Undo parts of 3990064 and try a different approach to get the uniforms to upload and remain available in the right places. As the original bug has been lost to time we should keep an eye out for missing buffer bindings by running under the Metal validation layer periodically.
#jira UE-57576
Change 4004709 by Rolando.Caloca
DR - Support for D3D 11, 12 & Vulkan for UAVs off Index Buffers
Change 4005149 by Guillaume.Abadie
Adds shader permutation to avoid clamping input buffer UV in DOF's gather pass.
Change 4005284 by Uriel.Doyon
Resaved volume texture assets with proper engine version.
#jira UE-57534
Change 4005286 by Guillaume.Abadie
Reduces constant setup in DOF's gather pass.
Change 4005359 by Rolando.Caloca
DR - vk - Fix annoying warning
Change 4005363 by Rolando.Caloca
DR - Fix android not finding vulkan shaders
Change 4005457 by Rolando.Caloca
DR - vk - Fix swapchain crash
Change 4005473 by Patrick.Kelly
UE-57135: Editor crash if set Reflection Capture Resolution to be 64 and New a Default level
Codde by Daniel
Tested by Patrick
Change 4005474 by Rolando.Caloca
DR - vk - Remove glsl code from shaders. Packaged QAGame goes from 176MB to 162MB
Change 4005759 by Krzysztof.Narkowicz
Fixed a bug, where reflection capture build is called, even though we are in mobile preview mode.
#jira UE-57743
Change 4005774 by Mark.Satterthwaite
Update the wave intrinsics to avoid implicit bool->uint conversion that Apple don't like.
#jira UE-57750
Change 4005974 by Mark.Satterthwaite
Don't use cubemap array types on iOS Metal as they aren't available on all devices and we need to maintain backward compatibiliy for years to come.
#jira UE-57083
Change 4006056 by Mark.Satterthwaite
Remove the use of the PrimitiveType argument from Metal draw calls.
#jira UE-57822
Change 4006139 by Mark.Satterthwaite
- Move the render-pass functions into the MetalRHI implementation for later alteration.
- Implement Index buffer UAVs for Metal - makes them more like vertex-buffers so this is one more step on the road to a unified buffer base-class implementation.
Change 4006215 by Mark.Satterthwaite
Metal's begin & end render/compute pass API implementation will take some time, but for now make it not depend on the parent stub implementation.
Change 4006394 by Mark.Satterthwaite
In lieu of a real instruction count just use the number of lines in the "Main" function of the shader as the instruction count for Metal.
#jira UE-57551
Change 4006493 by Mark.Satterthwaite
MetalRHI can currently support 4-component formats for Buffer UAVs - this might need some thought in the future as the API evolves but we might as well take advantage while we can.
Change 4006495 by Daniel.Wright
Integrate from Refactor branch
* New FMaterialRenderProxy function GetMaterialWithFallback which provides both the FMaterialRenderProxy and FMaterial. Needed when falling back to default material, so that proxy and material resource match.
* Local vertex factory uniform buffer
Change 4006851 by Brian.Karis
Fix for joined charts forming an L to inflate both axii.
Thanks to Jess Kube of The Coalition.
Change 4006852 by Brian.Karis
Fix for hard coded reflection capture cube map size. Should fix light static light aliasing in captures
Change 4006918 by Brian.Karis
New ByteBuffer functionality. Memcpy and scatter upload. Can implement GPU side TArray reflection.
Not yet used by checked in code. WIP optimization.
Change 4007246 by Guillaume.Abadie
Creates lower quality permutation for DOF's gathering pass, without Coc based weighting of the samples, and lower number of gathering ring for fast accumulator.
Change 4007291 by Guillaume.Abadie
Exposes more DOF scalability settings.
Change 4007328 by Guillaume.Abadie
Optimises DOF's half res only setup pass using gather4
Change 4007627 by Richard.Wallis
Fix for when Magic Mouse cannot zoom in World Composition editor. Missing default SNodePanel::OnMouseMove behaviour. Tested using a classic 2xbutton + wheel mouse and a Mac MagicMouse.
#jira UE-57030
Change 4007682 by Richard.Wallis
No video when playing HLS streaming video on Mac. 2 Issues, FPS was zero making duration for video sample buffer nonsense and Video Track dimensions were going to zero on the AVAsset once fully initialized when playing HSL streams. Now cache relevant details and handle zero frame rate.
Notes:
- Caching the frame rate is not as important as we could look it up each time and fix for zero - ignoring that at the moment.
- Assume we DO NOT want the FrameSize to be the last fetched video frame size from the AvfMediaVideoSampler as I think that is the video quality for streaming video and not the media frame size.
- Renamed a variable in the AvfMediaVideoSample - was called FrameRate but it was the FrameDuration by that point.
#jira UE-56734
Change 4007731 by Rolando.Caloca
DR - Disable byte buffers on non-hlsl based platforms
#jira UE-57851
Change 4007741 by Rolando.Caloca
DR - Disable byte buffers on hlslcc platforms
Change 4007782 by Mark.Satterthwaite
Force Metal shaders, including the stdlib, to recompile.
Change 4007918 by Rolando.Caloca
DR - vk - Some static asserts
Change 4008404 by Arciel.Rekman
Do not crash on incompatible Vulkan drivers (UE-57521).
#jira UE-57521
Change 4008442 by Daniel.Wright
Better comments on ERHIFeatureLevel expectations
Change 4008494 by Arne.Schober
DR - moved bDeletedThroughDeferredCleanup before begincleanup to catch cases where the reference is added twice to the array. also removed finishcleanup as all they ever did was deleting the pointer anyway, and it sould be adfded if such functionallity is ever required fom outside of the regular destructor.
#jira UE-57754
Change 4008730 by Mark.Satterthwaite
After the most recent changes to handling uniform buffer dirty bits in MetalRHI we should guard against attempts to set an unbound uniform buffer.
#jira UE-57870
Change 4008949 by Brian.Karis
Fix compile warning
Change 4008951 by Brian.Karis
Added LTC LUT textures
Change 4009326 by Guillaume.Abadie
Compiles out DOF's gathering bokeh simulation on platform other than desktop.
Change 4009380 by Krzysztof.Narkowicz
Moved area light code before the contact shadows, so contact shadows use representative light's direction.
Merged all contact shadows shader code.
Contact shadows keep constant screen space length independent of FoV settings.
Contact shadows for translucents.
Contact shadows for eye.
Change 4009555 by Guillaume.Abadie
Splits DOFCocTile.usf in two.
Change 4009999 by Yuriy.ODonnell
MallocStomp can now be enabled on certain platforms using '-stompmalloc' command line argument.
Previously it was necessary to modify MallocaStomp.h and re-compile the engine.
Currently supported platforms: Win64, Mac, Linux.
Replaced hard-coded page size with FPlatformMemory::GetConstants().PageSize.
Change 4010288 by Rolando.Caloca
DR - vk - Fix for vertex streams
Change 4010289 by Krzysztof.Narkowicz
D3D12 - fixed depth bounds bug, where depth bounds wasn't properly set to [0;1] after disabling.
#jira UE-57510
Change 4010297 by Rolando.Caloca
DR - vk - Remove some functions for android
Change 4010315 by Rolando.Caloca
DR - vk - Remove create info macro
Change 4010451 by Rolando.Caloca
DR - vk - Reuse samplers
- Infiltrator goes from 5759 to 24 samplers!
Change 4010627 by Rolando.Caloca
DR - vk - Fix missing values for tracking swapchain validation
Change 4011924 by Guillaume.Abadie
Implements tile based early return optimisation on DOF's postfiltering method.
Change 4011941 by Guillaume.Abadie
Shaves some ALU in DOF's accumulator for LowQuality permutation.
Change 4012093 by Yuriy.ODonnell
Disable MallocStompOverrunTest() in static analysis config, as it intentionally performs an out-of-bounds access.
Change 4012195 by Rolando.Caloca
DR - vk - Fix for mobile backbuffer layout
Change 4012202 by Rolando.Caloca
DR - vk - Don't use staging buffers on UMA
Change 4012467 by Rolando.Caloca
DR - Remove redundant check
Change 4012486 by Rolando.Caloca
DR - Fix missing transition
Change 4012518 by Guillaume.Abadie
Implements fast shader permutation for DOF's TAA pass.
Change 4013084 by Arciel.Rekman
Fix for Linux clock discrepancy.
- Causing at least one precision issue, possibly more.
(Edigrating 4003273, 4012462 from //UE4/Dev-Editor/... to //UE4/Dev-Rendering/...)
Change 4013266 by Uriel.Doyon
Fixed crash when setting SceneDepthTextureNonMS and not having valid depth buffers in the SceneContext.
Change 4013626 by Uriel.Doyon
Fixed crash in the lighting build when creating a blueprint of the ALight and placing a light component in it.
#jira UE-51672
Change 4013805 by Rolando.Caloca
DR - Fix more missing transitions
Change 4014128 by Arne.Schober
DR - Do not create LocalVFUniformBuffer when running without MVF
#jira UE-57929
Change 4014193 by Uriel.Doyon
Editing component transforms now invalidate the component's lighting cache.
#jira UE-48134
Change 4014282 by Rolando.Caloca
DR - vk - Remove extra validation during dump
Change 4014584 by Uriel.Doyon
Duplicated static meshes now generate a new GUID to prevent possible issues with lightmass.
#jira UE-49064
Change 4014604 by Uriel.Doyon
UStaticMesh postduplicate now only generates a new GUID if !bDuplicateForPIE.
Change 4015460 by Guillaume.Abadie
Composes separate translucency within DOF's recombine pass.
Change 4015571 by Guillaume.Abadie
Refactors tonemapper to use global shader permutation API, that adds permutation for HDR output device rather than dynamic branching that some shader compiler are not very well optimizing.
Change 4015984 by Krzysztof.Narkowicz
Fixed crash inside DFAO resource allocation, when DFAO viewport has zero area.
#jira UE-58000
Change 4016056 by Mark.Satterthwaite
Fix Mac Metal shader compilation of texture cube arrays.
Change 4016062 by Richard.Wallis
Convert things like Space, Delete, F6 etc to unicode so they display correctly on the Mac menu rather than first letter of word. Added the default Mac commands to the GenericCommands so we get a Chord overwrite message and stop things like cmd+ q / w / h from getting bound.
#jira UE-46999
Change 4016109 by Mark.Satterthwaite
One unified Metal buffer implementation - will make further changes a heck of a lot easier.
Change 4016221 by Patrick.Kelly
UE-57617: Ensure changing viewmode to ShaderComplexity while in -game
Change 4016238 by Guillaume.Abadie
Makes clang happy again in Tonemapper.
Change 4016309 by Mark.Satterthwaite
More *_RenderThread implementations for MetalRHI.
Change 4016414 by Mark.Satterthwaite
And MetalRHI version of CreateStructuredBuffer_RenderThread...
Change 4016498 by Mark.Satterthwaite
Don't hold on to the uniform buffers bound to the hull shader when switching to a tessellated draw call as they'll have the wrong buffer layout.
#jira UE-57930
Change 4017394 by Juan.Canada
OpenGL: Fixed shading artifacts due incorrect UNORM/SNORM conversions in skin/skincache/computetangent shaderss.
#jira UE-57691
Change 4017522 by Rolando.Caloca
DR - vk - Remove unused code path (old mip generation detection)
Change 4017539 by Rolando.Caloca
DR - vk - Fix for sky lighting mips showing green on AMD
Change 4017542 by Arciel.Rekman
Moved appCountTrailingZeros to a non-SSE header (fixes ARM64 build).
- Arguably WITH_SLI shouldn't apply to Linux on ARM but the fact that the function wasn't available is bad on its own.
Change 4017827 by Guillaume.Abadie
Optimises DOF's scattering cost by a third.
Change 4017835 by Rolando.Caloca
DR - Only allow a render pass to generate mips for one color render target
Change 4017889 by Mark.Satterthwaite
Cache all the Metal state objects to avoid hitting the API unnecessarily.
Change 4018251 by Mark.Satterthwaite
Fix broken rendering on Metal that tracked back to the innocuous looking changes in CL #4006495 (no blame attached - these changes are entirely reasonable) and cause various bugs in QAGame's TM-DistanceFields, ElementalDemo and probably more. Doesn't fix broken SpeedTree rendering :(.
MetalRHI was allowing uniform buffers to blow away linear texture buffers when the constant buffer has been elided due to dead-code elimination. This problem can manifest without linear textures if the uniform buffer contains both constant data and a resource-table but the shader doesn't use any of the constant data. That's because Metal doesn't separate constant buffers from any other kind of buffer unlike D3D which separates all the slots out - and Metal doesn't provide enough buffers to emulate the D3D arrangement. So far this has only manifested in the MVF + Linear Texture case but a more robust solution will be necessary long term.
Change 4018514 by Guillaume.Abadie
Implements r.DOF.Scatter.MinCocRadius.
Change 4018553 by Guillaume.Abadie
Implements r.DOF.Scatter.MaxSpriteRatio to control the budget upperbound of DOF's scattering
Change 4020369 by Yuriy.ODonnell
Disable MallocStompOverrunTest in all static analysis configs (using USING_CODE_ANALYSIS macro)
Previously was only disabled for PVS-Studio.
Change 4020620 by Arciel.Rekman
Fix XboxOne CIS (fallout of appCountTrailingZeros move).
Change 4020949 by Guillaume.Abadie
Configures DOF in scalability settings.
Change 4021593 by Rolando.Caloca
DR - vk - Support for Aftermath style api on AMD
Change 4021740 by Rolando.Caloca
DR - vk - Change log output
Change 4022008 by Uriel.Doyon
Fixed renderthread stalls when streaming texture mips on low end systems.
Change 4022135 by Rolando.Caloca
DR - vk - Fix last mip's layout during mip chain creation
Change 4022607 by Jian.Ru
Speculative fix for a bug where an invalid vertex buffer is deferenced
#jira UE-56229
Change 4022890 by Rolando.Caloca
DR - Fix reference count not getting released
Change 4023540 by Mark.Satterthwaite
Avoid some pointless retain/release calls on Metal Encoders.
Change 4023796 by Marcus.Wassmer
Tell users they are over the maximum size when allocating very large rendertargets.
Change 4025337 by Yuriy.ODonnell
Improved use-after-free detection mechanism and physical memory usage of MallocStomp on Windows.
MallocStomp on Windows will now reserve virtual address space for every allocation and then commit physical pages only to the valid usable part.
Physical pages will be unmapped on Free, but virtual address space will not be released and therefore will never be re-used.
Virtual address space is allocated from the OS in blocks of 1GB and then linearly sub-allocated.
This reduces VA space usage, as VirtualAlloc returns blocks on 64KB granularity even if we just need 4KB. As a small bonus, this also reduces number of syscalls per allocation.
This dramatically increases accuracy of use-after-free detection, but consumes significant amount of memory for the OS page table.
Virtual memory limit for a process on Win10 is 128 TB, which means we can afford to keep virtual memory reserved for a long time.
Running Infiltrator demo consumes ~700MB of virtual address space per second.
Additionally, committing physical pages only for the usable part of the entire virtual block reduces physical memory usage by ~30% compared to old behavior,
which allocated and committed entire block of pages via BinnedAllocFromOS and then marks border page as non-accessible.
Change 4026047 by Rolando.Caloca
DR - Fix test/shipping
#jira UE-58148
Change 4026150 by Krzysztof.Narkowicz
Force proper ordering of buffer visualization materials - after tonemapping (so exposure doesn't influence it) and before editor stuff like icons.
#jira UE-57992
Change 4026226 by Rolando.Caloca
DR - Fix static analysis
#jira UE-58150
Change 4026354 by Jian.Ru
Debug check trying to catch a crash. Only enabled in editor build
#jira UE-50111
Change 4026655 by Rolando.Caloca
DR - Fix for static analysis
#jira UE-58149
Change 4026763 by Rolando.Caloca
DR - Remove references to defunct CCT to avoid confusing licensees
Change 4027167 by Uriel.Doyon
Fixed possible out of bound buffer access when serializing with FDuplicateDataWriter.
#jira UE-56509
Change 4027850 by Jian.Ru
Prevent log spam
#jira UE-50111
Change 4029546 by Rolando.Caloca
DR - Compile fixes
Change 4029624 by Yuriy.ODonnell
Addressed static analysis errors in MallocStomp
- VirtualAlloc return value is now explicitly checked.
- C6250 is suppressed, as VirtualFree does not release address space by design.
Change 4030225 by Yuriy.ODonnell
Static analysis warning fix: make sure declaration of Sleep() is consistent between Windows headers and TBB
The complexity with this particular case is that the warning is generated in synchapi.h, which is included by some Windows headers.
If a module includes TBB and then Windows platform headers, static analyzer will report this warning.
Suppressing it would require wrapping all instances of Windows header includes in third-party macros.
Current pragmatic solution is to modify the Sleep() declaration in TBB header to be consistent with Windows and to report the issue to Intel for a permanent fix.
Change 4030440 by Rolando.Caloca
DR - Fix crash on mobile
#jira UE-58222
Change 4030570 by Daniel.Wright
Allow null SRV's in uniform buffers for feature levels that don't support SRV's in shaders
Change 4030618 by Arne.Schober
DR - missing tangent/normal sign conversion after integration from main
#jira UE-58224
Change 4031588 by Rolando.Caloca
DR - vk - Fix compile error when missing vkCmdWriteBufferMarkerAMD
Change 4032145 by Mark.Satterthwaite
Fix UE-58268 by only emitting the base_instance/base_vertex variables required to fix-up the instance/vertex ID values to match D3D when the Metal version is 1.1 or higher, earlier versions don't support these features.
#jira UE-58268
Change 4032209 by Rolando.Caloca
DR - Fix crash on EngineTest: Mesh Batch's UserIndex is not a union anymore
Change 4033178 by Guillaume.Abadie
Fixes FXAA sampling outside viewports, that was causing black outline on bottom and right edge of the screen when ViewSize != BufferSize, problematic for some screenshot automated test.
#jira UE-58151
Change 4034489 by Daniel.Wright
Fixed UStaticMeshComponent modifying its UStaticMesh when undoing a change. This caused a crash when other static mesh components using the same mesh asset were rendered, since their rendering state was not recreated. A component should not modify its asset during PostEditUndo.
* This behavior has been present for a long time but was previously hidden because only the vertex factory of the mesh asset is cached in static draw lists, not any of its rendering resources (eg vertex declaration).
Change 4035157 by Uriel.Doyon
Fixed deadlock in the streaming code when running with -onethread.
#jira UE-58299
Change 4035198 by Rolando.Caloca
DR - vk - Fix issue when an older SDK was installed, UBT would pick it (should pick the newer of ThirdParty\Vulkan or installed SDK).
#jira UE-58267
Change 4035730 by Arne.Schober
DR - Fix missing Fog parameters during LightScattering Injection
#jira UE-57608
Change 4035843 by Daniel.Wright
Reimplemented support for EyeAdaptation node in opaque materials
Change 4036837 by Marcus.Wassmer
Replace some of the screenshots to match new un-tonemapped buffer visualization
Change 4036980 by Rolando.Caloca
DR - vk - Fix deadlock contention during mem allocation on Linux
Change 4037225 by Guillaume.Abadie
Fixes jittering selection outline.
#jira UE-58350
Change 4038056 by Marcus.Wassmer
roll back changelist 4026150. breaks a bunch of automated tests by cutting off half the image.
Change can go back in later with that part fixed also
Change 4038296 by Jian.Ru
Static analysis fix
#jira UE-58377
Change 4038402 by Ben.Marsh
Suppress IncludeTool warnings caused by CL 3998947.
Change 4038514 by Arne.Schober
DR - Fix case with MVF where instance offset is not supported by the API (in this case only foliage OpenGL and TvOS), usually the buffers are offsetted instead but with MVF we do not use offsetted buffers, therfore the offset needs to be passed into the shader although we are drawing with offset of 0.
#jira UE-57652
Change 4038747 by Marcus.Wassmer
Back out changelist 3853645, causing us to lose shadows in the shaderhair test
Change 4040138 by Rolando.Caloca
DR - Fix compile warning
Change 4041614 by Rolando.Caloca
DR - vk - Fix for Oculus module
#jira UE-58267
Change 3810277 by Daniel.Wright
Ray Traced Distance Field shadows use a two pass tile culling algorithm with no tile max - fixes flickering from tile overflow in dense areas or with a low sun angle. Costs .2ms on PS4.
The distance field scene buffers now use float4 on PS4 and Xbox, saves .1ms on PS4.
Change 3817029 by Uriel.Doyon
Added UVolumeTexture, which use 3D textures. Compressed formats are supported on DX11, DX12, PS4 and XB1.
Projects targetting OpengGL don't have access to compressed formats (as the implementation has texture tiling issues).
Add "r.AllowVolumeTextureAssetCreation" set as 0 by default, which controls whether volume texture can be sampled in materials and whether they can be created from 2D texture assets.
Platform not supporting BC7, will now fallback on RGBA8 instead of DXT to preserve quality, in an attemps to increase usage of BC7.
#jira UE-32263
Change 3819960 by Michael.Lentine
Expose UEPhysics Clothing Parameters through UI.
Change 3823401 by Rolando.Caloca
DR - Add NumQueriesInBatch to RHIBeginOcclusionQueryBatch
Change 3844805 by Arne.Schober
DR - Increased Intermediate normal of Umodel and Skelmesh from 8bit Unorm Compressed to float. A resave/rebuid/reimport of the meshes is recommended to recover some lost precision.
Fixed an issue with compressed (packed) normals on the GPU which were off by one integer representation. Also switched from UNORM to SNORM to get a discrete zero representation and removed some mads from all the VertexShaders.
Change 3847283 by Marcus.Wassmer
Extra fixes from Uriel
Change 3876607 by Rolando.Caloca
DR - Use render passes when running occlusion queries
- Removes the RHI(Begin|End)OcclusionQueryBatch API
Change 3903799 by Daniel.Wright
[Integrate] Pass Uniform Buffers
* All pass-constant shader inputs should go into the appropriate pass uniform buffer, instead of being set per-draw
* Moved many per-draw base pass parameters over to the Base Pass Uniform Buffer
* Opaque and Translucent base pass shaders have different uniform buffers, which allows compile errors when accessing an invalid resource (eg GBuffer in Opaque), instead of silently falling back to GBlackTexture
Uniform buffers can now contain nested structs with UNIFORM_MEMBER_STRUCT()
* This allows composing a uniform buffer at a particular update frequency out of many features, with encapsulation of each feature's parameters in a struct.
* Eg deferred fog uses FFogUniformParameters, but so does translucency in the base pass, where FFogUniformParameters is reused nested inside the base pass uniform buffer.
* Resources can now be located anywhere in the uniform buffer. Padding is inserted to the cbuffer representation to keep memory layouts matching. In the future the cbuffer could be compacted.
* RemoveUniformBuffersFromSource() which works around HLSLCC lack of struct initializers now handles nested structs
Change 3917500 by Rolando.Caloca
DR - Change depth bounds so only the enable bit is in the PSO, allow min/max to be dynamically modified
Change 3964907 by Guillaume.Abadie
Implements RectList topology support in RHI.
Change 3979171 by Mark.Satterthwaite
Copying //Tasks/UE4/Dev-UERNDR-354-mtlpp to Dev-Rendering (//UE4/Dev-Rendering):
Rewrites MetalRHI in terms of mtlpp, which is a C++ wrapper library built around Metal's Objective-C API that attempts to reduce overheads and eliminate resource lifetime errors.
Regarding mtlpp:
- The mtlpp library uses C++ constructor/destructor and smart-pointer style management of Objective-C retain/release calls to prevent over- and under-release problems.
- To reduce Objective-C overheads the mtlpp library caches the internal C-function that implements the Objective-C selectors for the most commonly used Metal protocol types and calls the function directly - this avoids objc_msgSend which does this look-up dynamically and thus improves CPU performance slightly.
- Another advantage is that mtlpp provides infrastructure to extend the Metal API slightly to help improve MetalRHI - the two important aspects are mtlpp::CommandBufferFence which provides a consistent CPU<->GPU synchronisation primitive and sub-buffer allocations from mtlpp::Buffer which allow for far superior memory management.
- Validation functionality is also provided by mtlpp to detect CPU vs. GPU data races and resource lifetime validation - this is expensive and is thus optional and compiled out from Shipping binaries that should be used when performance is most critical. The validation only works between resource modification and *submitted* command-buffers - anything that is being actively encoded on the CPU is ignored and it remains the responsibility of the application to validate the order of operations when encoding.
Apple Platform:
- LLM support which tracks Objective-C objects is enabled only on macOS - we don't have the necessary libraries to intercept and override the internal system calls on iOS.
MetalRHI:
- All the types are switched over, (mostly) insuling the external API from the horror of Metal and Objective-C.
- Buffers are now managed quite differently, small buffers are allocated from a magazine allocator that allocates in fixed blocks from a larger parent buffer, intermediate sized buffers are allocated from a simple heap allocator that wraps a larger buffer and anything of reasonable size (>2Mb) will use the pooled allocator. This *radically* reduces the number of buffer resources, by as much as a factor of 10, because they are now sub-allocated without the need to use MTLHeap or MTLFence so they are performance equivalent to the existing implementation on the GPU and much faster on the CPU. Total memory use is approximately the same.
- Vertex & index buffer management has been updated to reflect changes in the management and to avoid reallocating buffers which provide a Linear Texture (for SRVs) unless strictly necessary. This ensures that even in cases where a dynamic buffer is updated multiple times in a frame it will still work acceptably well.
- The Metal ring-buffer implementation is completely different again, this time it can use Managed memory on macOS which allows for much better performance on eGPUs which will be more and more important for Mac.
- Everyone that needs to wait on a command-buffer fence (rather than a command-buffer itself) now use mtlpp::CommandBufferFence, which prevents race conditions between the different command-buffer handlers (which sometimes execute out of order).
- LLM tracking should now report the same data as the MetalRHI stats group for buffer & texture allocations - there is no segmentation for Vertex/index/Structured/Uniform allocations in Metal so these numbers are going to be wrong and will need to be rethought.
- What will be unseen are the number of small but important resource usage fixes that avoid stale resources from being bound to the device after the point at which they become invalid. This should eliminate a class of errors where the GPU uses a resource pointer that is modified by the CPU and was necessary to satisfy the new mtlpp validation code.
Other:
- Remove the Metal focused workarounds from the ClothBuffer resource binding and related vertex-buffer SRV - these were put in when MetalRHI/MetalShaderFormat couldn't handle float->uint conversions correctly and they should now.
- Fix a validation error caused by trying to render a 0-sized scissor rect which is invalid in Metal and simply pointless elsewhere.
- Consistency of disabling the Manual Vertex Fetch behaviour in shaders.
#jira UERNDR-354
Change 3979312 by Rolando.Caloca
DR - Remove bogus bKeepOriginalSurface parameter in CopyToResolveTarget
Change 4005122 by Rolando.Caloca
DR - Support for PS4 Index Buffer UAVs
Change 4016298 by Guillaume.Abadie
Fixes DOF hybrid scattering on platforms that supports RectList topology.
Change 4018575 by Guillaume.Abadie
Optimises DOF's reduce pass when doing scattering compilation.
Change 4020317 by Guillaume.Abadie
Implements WaveBroadcastIntrinsics.ush.
[CL 4042226 by Marcus Wassmer in Main branch]
2018-05-01 10:36:33 -04:00
# include "PostProcess/DiaphragmDOF.h"
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/PostProcessMaterial.h"
# include "PostProcess/PostProcessWeightedSampleSum.h"
# include "PostProcess/PostProcessBloomSetup.h"
# include "PostProcess/PostProcessMobile.h"
# include "PostProcess/PostProcessDownsample.h"
# include "PostProcess/PostProcessHistogram.h"
2021-09-01 11:22:04 -04:00
# include "PostProcess/PostProcessLocalExposure.h"
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/PostProcessVisualizeHDR.h"
2021-09-01 11:22:04 -04:00
# include "PostProcess/PostProcessVisualizeLocalExposure.h"
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/VisualizeShadingModels.h"
# include "PostProcess/PostProcessSelectionOutline.h"
2020-09-15 17:20:22 -04:00
# include "PostProcess/PostProcessVisualizeLevelInstance.h"
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/PostProcessGBufferHints.h"
# include "PostProcess/PostProcessVisualizeBuffer.h"
Implemented a Nanite visualization overview, with a data-driven tile layout. This is similar to the gbuffer overview, except using a custom global shader instead of the post process material shader approach. Additionally, I managed to do this with just a single Nanite cull/raster pass. We already had a rasterizer permutation for retail vs. any visualization enabled, but it was a single ordinal mode. The rasterizer would do a 64b max and a 32b add. Was worried I needed arrays, multi-pass, strided output buffer, etc.. but then realized max is only used by raster mode, and add is only used by overdraw mode. I changed it all to a bitmask, run the rasterizer with that, and then multi-pass all the modes in screen space off the buffer.
Renamed Material Depth -> Material ID, and Hit Proxy Depth -> Hit Proxy ID
Moved Material ID into the Standard commands grouping, as it can be useful for content creators.
Made the editor hide all the Advanced commands by default, can make them available in the UX with r.Nanite.Visualize.Advanced now. Command line has full access to all of them, regardless of this setting.
Renamed r.Nanite.DebugSceneComposite to r.Nanite.Visualize.Composite, and changed the behavior for -1=default, 0=off, 1=on
Renamed r.Nanite.DebugSobelFilter to r.Nanite.Visualize.EdgeDetect and defaulted it on for content creator benefit.
Removed int4 VisualizeConfig member from Rasterizer UB, and added 32bit visualization mode mask instead.
Removed 32bit RasterStateReverseCull member from Rasterizer UB, and folded it into pre-existing 32bit RenderFlags
Renamed Nanite::FDebugVisualizeCS -> Nanite::FNaniteVisualizeCS
Renamed DebugVisualize.usf -> Visualize.usf
Made all visualizations composite against scene depth by default, except the overdraw mode.
Changed overdraw view mode to use ColorMapInferno from ColorMap.ush
#rb brian.karis
#fyi michal.valient, rune.stubbe
[CL 15828833 by graham wihlidal in ue5-main branch]
2021-03-25 15:02:12 -04:00
# include "PostProcess/PostProcessVisualizeNanite.h"
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/PostProcessEyeAdaptation.h"
# include "PostProcess/PostProcessTonemap.h"
# include "PostProcess/PostProcessLensFlares.h"
# include "PostProcess/PostProcessBokehDOF.h"
# include "PostProcess/PostProcessCombineLUTs.h"
2020-04-28 12:42:51 -04:00
# include "PostProcess/PostProcessDeviceEncodingOnly.h"
2020-07-06 18:58:26 -04:00
# include "PostProcess/TemporalAA.h"
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 "PostProcess/PostProcessDOF.h"
# include "PostProcess/PostProcessUpscale.h"
# include "PostProcess/PostProcessHMD.h"
# include "PostProcess/PostProcessVisualizeComplexity.h"
# include "PostProcess/PostProcessCompositeEditorPrimitives.h"
# include "PostProcess/PostProcessTestImage.h"
2020-05-01 14:17:49 -04:00
# include "PostProcess/PostProcessVisualizeCalibrationMaterial.h"
2019-06-11 18:27:07 -04:00
# include "PostProcess/PostProcessFFTBloom.h"
# include "PostProcess/PostProcessStreamingAccuracyLegend.h"
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/PostProcessSubsurface.h"
2022-02-24 19:43:15 -05:00
# include "PostProcess/VisualizeMotionVectors.h"
2021-12-03 13:48:12 -05:00
# include "Rendering/MotionVectorSimulation.h"
2019-10-01 13:03:04 -04:00
# include "ShaderPrint.h"
2019-06-11 18:27:07 -04:00
# include "HighResScreenshot.h"
2014-04-23 17:32:55 -04:00
# include "IHeadMountedDisplay.h"
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 2932765 by Nick.Whiting
Merging updated license files for Oculus libraries
Change 3480552 by Dustin.Holmes
Added map and gamemode for calibration
#jira UEVR-808
Change 3502253 by Nick.Whiting
Trying to fix up p4's botch of the merge
Change 3513736 by Keli.Hlodversson
Move duplicated late update code into a common FLateUpdateManager
#jira UEVR-893
Change 3514798 by Mike.Beach
#4.17
Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings).
#jira UE-42634
Change 3516042 by Dustin.Holmes
Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had.
Change 3517781 by Keli.Hlodversson
Remove unused local variable bUseCustomPresentTexture
Change 3517951 by Mike.Beach
#4.17
Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use.
#jira UE-43685
Change 3518142 by Mike.Beach
#4.17
Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array).
Change 3523183 by Ryan.Vance
#jira UE-46493, UEVR-661
Fixes GearVR only displaying a black screen on startup
Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled
Adding mobile multi-view direct support to Daydream
Change 3523718 by Nick.Whiting
Adding core controller recentering delegate, and moving Google over to that system.
Change 3527263 by Dan.Oconnor
Mirror 3526925 for Nick Donaldson
Change 3533596 by Dustin.Holmes
Add garbage matte map, gamemode, and blueprints.
Change 3533598 by Dustin.Holmes
Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node.
Change 3538139 by Mike.Beach
Moving Oculus debug shader directly into Oculus plugin.
#jira UE-47134
Change 3543185 by Nick.Atamas
Address UEVR-891 : Merge in changes to Google Tango plugin.
#jira UEVR-891
Change 3543285 by Nick.Atamas
Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... :
Fixed UEVR-852:
Adjusted Google Tango Plugins copyright to Copyright Google 2017.
Removed Apache 2.0 license.
Change 3545505 by Nick.Atamas
Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization.
Change 3547549 by Jeff.Fisher
Fixing DefaultSpectatorScreenController comment.
Change 3551339 by Ryan.Vance
#jira UE-44947
Editor primitives we not being handled correctly with ISR.
Change 3554169 by Dustin.Holmes
Reconcile missed Mixed Reality blueprint
Change 3566825 by Mike.Beach
Fixing some bad merges from Main (fallout from CL 3566309)
Change 3567143 by Mike.Beach
Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3567572 by Mike.Beach
[WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed).
Change 3569116 by Jeff.Fisher
Mixed reality build breaks for PS4
-Module is dependent on steamvr, so don't build it for PS4.
-Removed unused class that doesn't compile with clang.
Change 3569362 by Mike.Beach
Organizing MR plugin content, to make way for new calibration modes.
Change 3572802 by Jeff.Fisher
UEVR-832 Add save/load system for calibrated camera settings
-Moved MixedRealityConfigurationSaveGame to c++.
#review-3571779
#jira UEVR-832
Change 3573864 by Mike.Beach
[WIP] Initial work on MR cam alignment controller - records point/frustum data from user input.
Change 3575900 by Jeff.Fisher
Vive spectator flat rect expanded to match other platforms.
-The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms.
Change 3578684 by Mike.Beach
Static analysis fixes for CIS.
#jira UE-48204, UE-48203, UE-48206
Change 3579460 by Mike.Beach
[WIP] New calibration mode for camera alignment.
#jira UEVR-785
Change 3581232 by Mike.Beach
[WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured.
#jira UEVR-832
Change 3588411 by Mike.Beach
[WIP] Adding calibration for compositing (chroma color, etc.).
#jira UEVR-785
Change 3588541 by Mike.Beach
[WIP] Cleaning up some display issues with the MR calibration.
#jira UEVR-785
Change 3588680 by Mike.Beach
Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.).
Change 3588694 by Mike.Beach
Renaming the MR calibration pawn (since it doesn't do any calibrating itself).
Change 3591518 by Mike.Beach
Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3591671 by Ryan.Vance
Debug stereo layer support
This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd.
Change 3591812 by Ryan.Vance
Don't snap motion controllers to the origin when tracking is lost.
Change 3594681 by Mike.Beach
[WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3596679 by Mike.Beach
CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration.
Change 3598191 by Jeff.Fisher
UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data.
-Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent).
#jira UEVR-807
#review-3598179
Change 3598276 by Mike.Beach
Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3598332 by Mike.Beach
Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR).
Change 3605271 by Mike.Beach
Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3608490 by Jeff.Fisher
UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode.
UEVR-988 SpectatorScreen Flickering
UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture
UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture
-Test level content for all of these bugs.
Change 3608883 by Jeff.Fisher
UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data.
-Set material to use the garbage matte render target.
Change 3613292 by Mike.Beach
Moving header fcn decl up, under the proper interface section (for organization's sake).
Change 3616943 by Nick.Whiting
Updating SteamVR libraries to 1.0.9, so we can bring back macOS support
Change 3616970 by Nick.Whiting
Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh
Change 3617866 by Mike.Beach
Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on).
Change 3620108 by Mike.Beach
[WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment.
Change 3620982 by Mike.Beach
Tying off some loose ends with the MR calibration map:
* Saving after each calibration phase
* Fixing blocked input from garbage matte creation
* Blocking input handling while exiting/previewing
* Adding minimum radius for random screen pt
Change 3621551 by Mike.Beach
[MR] Leveraging camera support in the new media framework - working for limited cameras in calibration.
Change 3621552 by Mike.Beach
[MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout.
Change 3621660 by Mike.Beach
[MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties).
Change 3623323 by Dustin.Holmes
Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports
Change 3625900 by Keli.Hlodversson
Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens.
Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152.
#jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio)
Change 3628409 by Mike.Beach
Speculative CIS fix.
#jira UE-49339
Change 3628440 by Nick.Whiting
Fix for SteamVR OSX build issues
Change 3628489 by Nick.Whiting
Fix for win32 build break
Change 3629045 by Mike.Beach
Shadowed variable name fix (CIS).
Change 3629202 by Arciel.Rekman
Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR)
Change 3629340 by Nick.Atamas
Unshelved and resolved changes from Oculus.
Change 3629772 by Ryan.Vance
Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway.
Change 3629833 by Mike.Beach
Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning
#jira UE-49376
Change 3630696 by Jeff.Fisher
UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors
Switching an include to a forward declaration
-Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good.
Change 3630783 by Mike.Beach
Fixing CIS compiler failures for our vehicle templates.
#jira UE-49417
Change 3630802 by Mike.Beach
Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well)
#jira UE-49417
Change 3630870 by Mike.Beach
Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it.
#jira UE-49376
Change 3630993 by Ryan.Vance
Check to ensure we have a valid third camera before trying to use it.
We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now.
Change 3631322 by Jeff.Fisher
UEVR-909 PIP in Garbage Matte
-Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited.
-Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor.
-Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview.
-Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white.
-Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g.
-GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin.
-The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin.
-Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there.
#review-3618345
#jira UEVR-909
Change 3631362 by Keli.Hlodversson
#jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black.
Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget.
Change 3631887 by Jeff.Fisher
Fixing IsActiveThisFrame build break.
Change 3632206 by Nick.Atamas
Fix for UE-49413.
Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD.
Change 3632264 by Nick.Whiting
Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor.
Change 3632340 by Nick.Atamas
Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist.
Original description below.
Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending*
[Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687)
Change 3632353 by Ryan.Vance
#jira UE-49468
Don't apply xr camera rotation on the player controller when not using xr tracking.
Change 3632735 by Keli.Hlodversson
Better fix for #jira UE-49413.
Revert oculus xr camera code and use that one can have more than one view extension registered instead.
Use GetPriority to have the OculusHMD view extension code execute after the default xr camera.
The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update.
Fixes a crash when entering VR pie twice, back to back.
Change 3632752 by Keli.Hlodversson
Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22
[Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge
//UE4/Partner-Oculus to //UE4/Dev-VR/...
Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim.
Change 3633211 by Mike.Beach
Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally.
Change 3633315 by Jeff.Fisher
merge from main with dev-platform problem children
-expecting SDRBackBuffer stuff to be wrong.
Change 3634006 by Mike.Beach
Resurecting Oculus clip plane settings which got dropped in the IXR refactor.
#jira UE-49520
Change 3634639 by Keli.Hlodversson
Avoid include cycle
https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1
Change 3634641 by Jeff.Fisher
UE-49535 Lighting is blown out when playing in VR Preview on Vive
-Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format.
#review-3634623
Change 3634682 by Jeff.Fisher
IHeadMountedDisplay forward declarations needed.
Change 3634690 by Ryan.Vance
We can't override the screen percentage when rendering for stereo
#jira UE-49287
Change 3635970 by Keli.Hlodversson
#jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h
Verify that StereoRendering is valid before calling IsStereoEnabled()
Change 3635979 by Mike.Beach
CIS static analysis fix - checking a ptr for null before we use it.
#jira UE-49531
Change 3636059 by Mike.Beach
Fixing XR system name aliasing for the -hmd command.
[CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
# include "IXRTrackingSystem.h"
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3219450)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3148067 on 2016/10/01 by Daniel.Wright
Support for ReflectionEnvironment and light type show flags with ForwardShading
Change 3149085 on 2016/10/03 by Daniel.Wright
Support for ReflectionEnvironment show flag in base pass reflections without any shader overhead
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3186067 on 2016/11/03 by Daniel.Wright
Updated Stationary primitive tooltip to indicate that it allows the primitive to be changed, but not moved
Change 3186069 on 2016/11/03 by Daniel.Wright
Using a weighted geometric mean to combine multiple Distance Field Indirect Shadows, greatly reduces over-occlusion when overlap is high
Change 3186084 on 2016/11/03 by Mark.Satterthwaite
Duplicate 3172511:
Don't set Metal resource option fields on texture descriptors when running on an OS that doesn't support them.
#jira UE-37481
Change 3186089 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3169764:
Fixed automatic conversion of G8_sRGB into RGBA8_sRGB required for Mac Metal, which fixes FORT-27627.
#jira FORT-27627
Change 3186113 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183807:
Change the way we access the Metal viewport's backbuffer, to reduce possible causes of FORT-31649:
- Added console variable "rhi.Metal.SupportsIntermediateBackBuffer" to control whether to use an extra render-target so we can support screenshots & movie capture, or render directly to the back-buffer to save memory & GPU performance. Still defaults to ON for Mac & OFF for iOS/tvOS.
- Change the way we handle updates to the back-buffer size to ensure that the different threads access their intended version.
#jira FORT-31649
Change 3186116 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183823:
Record Metal resource & state objects used in a command-buffer when rhi.Metal.RuntimeDebugLevel is set to 3 or higher. The object labels, types & descriptions will be printed on failure - if the object is deleted prior to this then we have a lifetime error and it will crash at this point and can be debugged further using our -metalretainrefs command-line option or Xcode's zombie-objects.
Used to verify that FORT-31649 is not a simple resource lifetime error and thereby speed up Apple/vendor investigations.
#jira FORT-31649
Change 3186818 on 2016/11/04 by Chris.Bunner
PR #2907 Export UMaterialExpressionNoise (contributed by kayosiii).
Change 3186979 on 2016/11/04 by Rolando.Caloca
DR - Misc minor cleanup
Change 3187169 on 2016/11/04 by Uriel.Doyon
Incremental insertion of level data between PostLoad and AddToWorld
Change 3187205 on 2016/11/04 by Mark.Satterthwaite
Compile fixes for iOS.
Change 3187389 on 2016/11/04 by Uriel.Doyon
Fix for possible stall when loading hidden level
Change 3187598 on 2016/11/04 by Michael.Trepka
MetalViewport compile fix
Change 3187678 on 2016/11/04 by Uriel.Doyon
Fix for landscape grass textures not being streamed in correctly.
Change 3187731 on 2016/11/04 by Rolando.Caloca
DR - Start making type safe some cross compiler enums
Change 3187824 on 2016/11/04 by Rolando.Caloca
DR - clang compile fix
Change 3187953 on 2016/11/04 by Rolando.Caloca
DR - vk - Mac compile fix
Change 3188696 on 2016/11/07 by Mark.Satterthwaite
Another iOS compile fix for new MetalViewport validation code.
Change 3188906 on 2016/11/07 by Rolando.Caloca
DR - Show permutation of LUTBlender
Change 3189094 on 2016/11/07 by Chris.Bunner
Fix RemoveAAJitter from projection matrix.
#jira UE-37701, UE-38003
Change 3189134 on 2016/11/07 by Daniel.Wright
Fix for CreateRenderTarget2D called in construction script during cooking
Change 3189145 on 2016/11/07 by Chris.Bunner
Follow-up to CL 3186818, export UMaterialExpressionVectorNoise.
Change 3189239 on 2016/11/07 by Daniel.Wright
Added show flag for Contact Shadows, disabled in planar reflections
Change 3189252 on 2016/11/07 by Daniel.Wright
Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3189406 on 2016/11/07 by Mark.Satterthwaite
Really fix the last of the iOS compile errors from changes to the MetalViewport code.
Change 3190854 on 2016/11/08 by Ben.Woodhouse
XB1: Fix memory corruption with RHICreateVertexBuffer and RHICreateIndexBuffer when using initial data (Procedural Mesh Component crash)
#jira UE-34264
#fyi james.golding
#fyi keith.judge
Change 3190962 on 2016/11/08 by Olaf.Piesche
Unshelved from pending changelist '3176615' - Gil's fix for race condiiton with particle vertex factory reuse across different passes; potential to fix a number of issues
Change 3191959 on 2016/11/09 by Uriel.Doyon
Removed some static primitives from the dynamic primitive handler for texture streaming.
Change 3193122 on 2016/11/10 by Chris.Bunner
Always update non-preview material resources for use in code preview.
#jira UE-38223
Change 3193190 on 2016/11/10 by Gil.Gribb
UE4 - Fixed rare bug with shadow groups rendering things that have not been setup to render this frame.
#jira UE-36379
Change 3193523 on 2016/11/10 by Uriel.Doyon
Fixed incorrect section bounds used for texture streaming.
Change 3193962 on 2016/11/10 by Uriel.Doyon
Added defrag of dynamic bounds used for the texture streaming. Allows to remove unused bounds over time.
Change 3193974 on 2016/11/10 by Uriel.Doyon
New "Required Texture Resolution" view mode. Showing the ratio between the currently streamed texture resolution and the resolution wanted by the GPU.
Change 3194109 on 2016/11/10 by Uriel.Doyon
Another patch on material bounds used for texture streaming.
Change 3194665 on 2016/11/11 by Chris.Bunner
Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194734 on 2016/11/11 by Rolando.Caloca
DR - vk - Simplified some texture casting
Change 3194867 on 2016/11/11 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3195176 on 2016/11/11 by Chris.Bunner
Fixed incorrectly updated NVAPI error.
Change 3195425 on 2016/11/11 by Uriel.Doyon
Fixed possible invalid level reference in the texture streamer
Change 3196512 on 2016/11/14 by Gil.Gribb
Merging //UE4/Dev-Main@3196156 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3196750 on 2016/11/14 by Marcus.Wassmer
Fix ordering problem with GPU cache transitions
Change 3196815 on 2016/11/14 by Daniel.Wright
Suppressed 'Instanced stereo rendering is not supported' warning showing up in CIS
Change 3196818 on 2016/11/14 by Daniel.Wright
Fixed FIndirectLightingCache::UpdateCachePrimitivesInternal churning through a bunch of temporary memory
Change 3196819 on 2016/11/14 by Daniel.Wright
Volume lighting samples are allowed outside of the importance volume if their influence affects the volume. Fixes black indirect lighting on movable components in maps with small importance volumes.
Volume lighting samples placed on surfaces use a radius that covers the layer height spacing, which prevents an uncovered region between layers
Change 3197243 on 2016/11/14 by Uriel.Doyon
Async Task For Updating static component LastRender time
#jira UE-24268
Change 3197359 on 2016/11/14 by Daniel.Wright
Added Inscattering Texture controls to ExponentialHeightFog
* When InscatteringColorCubemap is specified, directional light inscattering is disabled
* Lerps betwen 1x1 mip at NonDirectionalInscatteringColorDistance to mip 0 at FullyDirectionalInscatteringColorDistance
* Added FogCutoffDistance, so artists can prevent fog on skyboxes (requires fog to be setup matching the fog that was rendered into the sky texture so that distant mountains match)
* Fog shader permutations based on what feature is enabled
Change 3198419 on 2016/11/15 by Chris.Bunner
PS4 HDR: Runtime toggle (backbuffer recreation on resize matching), UI composition. Matches PC behavior and controls.
HDR: Generalized buffer formats, cvar consistency pass, LUT for UI composition, refactoring common functions.
Exposed RHICreateTargetableShaderResource3D.
Moved some (translucent) volume rendering helpers to allow access in Slate.
Change 3198822 on 2016/11/15 by Daniel.Wright
Mac compile fix
Change 3199509 on 2016/11/15 by Uriel.Doyon
Added support for viewmode param asset name (and note just param value).
Used to investigate texture streamer behavior.
Change 3199578 on 2016/11/15 by Rolando.Caloca
DR - Add some shader resource tables to SCW when running with -directcompile
Change 3199698 on 2016/11/15 by Rolando.Caloca
DR - vk - Refactor shader & descriptor bindings
Change 3199712 on 2016/11/15 by Rolando.Caloca
DR - vk - r.Vulkan.StripGlsl to always strip glsl at runtime to save memory per shader
Change 3199717 on 2016/11/15 by Rolando.Caloca
DR - vk - Show hitching PSO info again
Change 3199750 on 2016/11/15 by Rolando.Caloca
DR - SCW clang compile fixes
Change 3200353 on 2016/11/16 by Rolando.Caloca
DR - vk - Mac fix
Change 3200358 on 2016/11/16 by Chris.Bunner
Only allow UI composition on platforms we currently use it.
Change 3200823 on 2016/11/16 by Chris.Bunner
Remove expression key attribute ID when not translating an attribute output to allow intended expression sharing.
#jira UE-38699
Change 3200947 on 2016/11/16 by Mark.Satterthwaite
Fix UE-38695 by not trying to resize the viewport on the wrong thread.
#jira UE-38695
Change 3201069 on 2016/11/16 by Daniel.Wright
Fog inscattering texture limited to SM4 and above, fixes ES2 compile errors
Change 3201346 on 2016/11/16 by Brian.Karis
Temporal AA fix for correct edge gradients.
Filtering now combined with importance sampling.
Enabled Catmull-Rom resolve filter. Results are now slightly sharper.
Fixed antighosting. Will yet require a dilation to be perfect.
Optimized bicubic filtering to 5 taps instead of 9.
Cleaned out unused code.
Change 3201369 on 2016/11/16 by Brian.Karis
Bicubic texture sample
Change 3201522 on 2016/11/16 by Rolando.Caloca
DR - vk - Fix static analysis issues
Change 3201878 on 2016/11/17 by Chris.Bunner
Temporarily disable Nvapi HDR error logging.
#jira UE-38529
Change 3202108 on 2016/11/17 by Simon.Tovey
Assets with easy repro for flickering particles bug
Change 3202181 on 2016/11/17 by Rolando.Caloca
DR - vk - CIS android fix
Change 3202325 on 2016/11/17 by Ben.Woodhouse
Integrate 4.14.1 fix from 14 //UE4/Release-4.14 (@3201850)
Fix CreateVertexbuffer and CreateIndexBuffer memory corruption (Procedural Mesh Component crash)
#jira UE-34264
Change 3204394 on 2016/11/18 by Guillaume.Abadie
PR #2808: AlphaComposite Fog Opacity fix (Contributed by moritz-wundke)
#br Ben.Woodhouse
Change 3204428 on 2016/11/18 by Guillaume.Abadie
Fixes a couple of issues in decals:
* Crash in FDecalDrawingPolicyFactory::DrawMesh()
* ActorPostion material expression
* PixelNormalWS material expression
* Missing renaming from DEFERRED_DECAL to DECAL_PRIMITIVE
#jira UE-38327, UE-38158, UE-37818, UE-37350
Change 3204429 on 2016/11/18 by Uriel.Doyon
Darker default undefined accuracy.
Reenabled the texture streaming build in the build all.
Change 3204458 on 2016/11/18 by Chris.Bunner
Shader truncation warnings fix.
Change 3204459 on 2016/11/18 by Chris.Bunner
Engine 'Passthrough' material fuction fix. V4 is now actually a V4.
Change 3204460 on 2016/11/18 by Chris.Bunner
Correctly handle some known Nvapi warnings.
#jira UE-38529
Change 3204653 on 2016/11/18 by Marc.Olano
Helper functions for tiled textures
Checking in for Ryan Brucks
Change 3204863 on 2016/11/18 by Arne.Schober
DR - Replaced ENQUEUE_UNIQUE_RENDER_COMMAND with a Debuggable template Implementation
Change 3204939 on 2016/11/18 by Arne.Schober
DR - Make clang happy
Change 3204968 on 2016/11/18 by Arne.Schober
DR - UE-38494 - Fixed SpeedTree Wind crash, when force deleting the Asset.
Change 3206293 on 2016/11/21 by Uriel.Doyon
New member bHasStreamingUpdatePending in UTexture2D to delay update of global distance fields.
Set to true when the streamer can possibly load a mip in the near future.
#jira UE-37787
Change 3206551 on 2016/11/21 by Chris.Bunner
Added material update context when forcing all shaders to recompile.
#jira UE-38481
Change 3206644 on 2016/11/21 by Benjamin.Hyder
Updating Planar Reflection example in TM-Shadermodels.
Change 3206899 on 2016/11/21 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3206900 on 2016/11/21 by Rolando.Caloca
DR - Added missing strings for shader formats
Change 3206983 on 2016/11/21 by Rolando.Caloca
DR - vk - Support for SV_Coverage
Change 3207237 on 2016/11/22 by Simon.Tovey
Exporting particle module base and a couple of child classes as it's commonly requested.
#test compiles
Change 3207241 on 2016/11/22 by Gil.Gribb
Merging //UE4/Dev-Main@3206998 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3207520 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //Fortnite/Main@3206301
Fixed GPU hang in Zone Map view. Was an issue with RenderThread using the device context without appropriate RHIThread flushes.
#jira FORT-31616
#code_review keith.judge
Change 3207541 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //fortnite/Main@3207422
* Fix UpdateTexture3D to create a staging texture of the region to update rather than the whole texture. This prevents distance fields crashing during update (allocating 18GB per frame in some cases)
* Put UpdateTexture2D DMA support onto a cvar, disabled by default (corruption issues reported by licensees, plus not sure it's actually faster - could be slower due to reduced bandwidth; issues reported by licensees)
* Fix UpdateTexture2D to only create a staging texture of the region to update, saving memory
#jira UE-38609
Change 3207654 on 2016/11/22 by Chris.Bunner
Don't flag 16-bit PNG/JPG textures as sRGB on import.
#jira UE-30279
Change 3208434 on 2016/11/22 by Rolando.Caloca
DR - vk - UAV transitions
Change 3208490 on 2016/11/22 by Chris.Bunner
Break material code sharing when we detect an unresolvable loop.
By default change IsResultMA loop detection to stop on functions as we can determine type definitively.
Unified IsResultMA detection across switch nodes.
Change 3208860 on 2016/11/23 by Rolando.Caloca
DR - vk - Fix some format issues
Change 3209265 on 2016/11/23 by Arne.Schober
DR - originally unshelved from 3153924 - Made Depth and Velocity Rendering Passes to use PSO only RHI interface,
We are now passing down two structs that collect all the necessary information for the drawing policies to construct a PSO object.
One during construction of the Policy, which contains information abouyt the CullMode, FillMode and PrimType.
And another during rendering that passes infomation like BlendState and DepthStencilState down to the low levelrenderer into SetSharedState.
Performance of the static drawlist ist slightly slower (less than 0.1ms on Consoles) due to some addtional branches and copies. The branches in the FDrawingPolicyRenderState will go away as soon as everything is converted to use the PSO interface.
Performace of the GPU is slightly better due to less context rolls (mainly CullMode sorts in differently now)
Change 3209305 on 2016/11/23 by Guillaume.Abadie
Fix contact shadow's assemption on objects thickness
Change 3209334 on 2016/11/23 by Brian.Karis
Fixed TAA handling of alpha. Switched the meaning of AA_ALPHA to make sense.
Change 3209903 on 2016/11/24 by Guillaume.Abadie
Cherry picks alpha through post processing changelists 3201959, 3204143 and 3209883 from //UE4/Private-Partner-NREAL
Change 3209973 on 2016/11/24 by Ben.Woodhouse
Fix D3D11 and 12 static analysis warnings reported by Rob Troughton of Coconut Lizard (http://coconutlizard.co.uk/blog/ue4/pvs-studio-part5/)
Change 3210023 on 2016/11/24 by Uriel.Doyon
Fixed an issue with DropDetail when FixedFrameRate was set to a value smaller than MinDesiredFrameRate.
#jira UE-37210
Change 3210026 on 2016/11/24 by Ben.Woodhouse
Disable renderthread hang detection if a debugger is present, so we can debug the renderthread without crashing
Change 3210049 on 2016/11/24 by Ben.Woodhouse
Fix mac build
Change 3210071 on 2016/11/24 by Uriel.Doyon
Fixed an issue with masked materials and shader complexity viewmode when DBuffer Decals are enabled.
#jira UE-37542
Change 3210374 on 2016/11/25 by Ben.Woodhouse
* Fix issues with fast cleared dbuffer targets not being resolved when no decals are in the scene. This caused graphical corruption on XB1 and ensure failures on PS4 (with RHIThread disabled)
* Move Decal rendertarget manager function implementations out of the header.
#jira UE-38879
Change 3210390 on 2016/11/25 by Uriel.Doyon
Fixed cubemap resourcesize not taking into account mipgen settings
#jira UE-37045
Change 3210407 on 2016/11/25 by Uriel.Doyon
"resavepackages" commandlet now supports -buildtexturestreaming that rebuilds the map texture streaming data.
That can be used in combination with -buildlighting.
Change 3210563 on 2016/11/27 by Rolando.Caloca
DR - vk - Integrate cached memory fixes and PF_D24 format fix
#jira UE-39025
PR #2974
Change 3210564 on 2016/11/27 by Rolando.Caloca
DR - Fix for GL linker
PR #2975
#jira UE-39029
Change 3210592 on 2016/11/27 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3210597 on 2016/11/27 by Rolando.Caloca
DR - vk - Prep for staging UB copies to GPU memory
Change 3210600 on 2016/11/27 by Rolando.Caloca
DR - vk - Extract generic range code
Change 3210613 on 2016/11/27 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOnDispatch
Change 3211054 on 2016/11/28 by Rolando.Caloca
DR - vk - Missing reference
Change 3211330 on 2016/11/28 by Chris.Bunner
Shader compile error for max texture coordinate count on skinned meshes.
Change 3211384 on 2016/11/28 by Arne.Schober
DR - Enforce move on EnqueueRenderCommand Lambda
Change 3211431 on 2016/11/28 by Gil.Gribb
Merging //UE4/Dev-Main@3211016 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3211738 on 2016/11/28 by Gil.Gribb
IWYU fixes after merge
Change 3212231 on 2016/11/28 by Richard.Wallis
Fix build errors
Change 3212253 on 2016/11/28 by Richard.Wallis
Remove MacGraphicsSwitching plugin.
#jira UE-37640
Change 3212310 on 2016/11/28 by Rolando.Caloca
DR - vk - Update glslang to 1.0.33.0
Change 3212446 on 2016/11/28 by Guillaume.Abadie
Implements PreviousFrameSwitch material expression
Change 3212594 on 2016/11/28 by Arne.Schober
DR - Fix missing include
Change 3212681 on 2016/11/29 by Rolando.Caloca
DR - vk - Auto flush for compute shader
Change 3213000 on 2016/11/29 by Gil.Gribb
temp fix for PF_MAX
Change 3213161 on 2016/11/29 by Ben.Woodhouse
Integrate latest D3D12 changes from //depot/Partners/Microsoft/UE4-DX12/...@3211714
Using:
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Runtime/D3D12RHI/...@3211714 //UE4/Dev-Rendering/Engine/Source/Runtime/D3D12RHI/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/ThirdParty/Windows/DirectX/...@3211714 //UE4/Dev-Rendering/Engine/Source/ThirdParty/Windows/DirectX/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Programs/UnrealBuildTool/...@3211714 //UE4/Dev-Rendering/Engine/Source/Programs/UnrealBuildTool/...
Changes from UE4-DX12:
*** CL 3183818 ***
Update D3D12 RHI to 4.14:
- Merged changes from Epic up until 10/20/16
- Fixed an issue where command allocators where resetting too early. I changed to aggressive command list batching by default now that more SubmitCommandListHint calls exist in the upper engine, we don't need to worry about starving the GPU. Fewer ExecuteCommandLists calls means better performance and fewer Signals() so this change provides a GPU perf win.
I had to fix an issue with aggressive batching where we would sometimes hold on to a command list long enough (in the pending list) but hadn't executed it yet. The command allocator was being put back in the queue of allocators during ReleaseCommandAllocator() without a syncpoint set and was thus being reset too early. I added a simple counter to the command allocator so it could track how many command lists were using it. It doesn't need to be thread safe since only one thread uses a command allocator at a time.
I also added some stats around the # command lists and # command allocators since it would be possible to leak command allocators now if it's pending command list count isn't decremented correctly. In that case we'd keep creating new command allocators and eventually run out of memory.
-Remove clear during allocate in the FD3D12FastConstantAllocator and FD3D12FastAllocator. The supplied resource locations are assumed to be new and thus don't need to be cleared.
-Cleanup D3D12RHI stats. There were some unused stats as well as some missing ones.
-Mark shader resource table uniform buffers as dirty only when the shader changes. Cleanup SetComputeShader calls and Dispatch calls to not set/unset the CS for each Dispatch.
-Remove unused Check SRV resolved code that epic added to the D3D11 RHI and was brought over. We dont need it and we won't use this.
-Remove "always on" cycle counters for high frequency RHI methods like RHISetShaderTexture. These should use the engine's stat macros as they are removed on TEST + SHIPPING builds. On Xbox a significant amount of CPU time is spent in things like QueryPerformanceCounter even when STATS aren't enabled. Currently 1% of an entire capture on XBOX is spent inside this call.
I improved and cleaned up high freqency call stacks like:
- RHISetShaderTexture
- RHISetShaderResourceViewParameter
- RHISetShaderParameter
- RHISetUAVParameter
In general I moved to use templated functions, removed unused parameters, unnecessary copies, etc.
-Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Resources should be associated with the rendering thread's frame that it's currently recording command lists for and they shouldnt be cleaned up until those command lists have been translated to D3D12 command lists on the RHI thread AND completed executing on the GPU. This was confirmed to resolve an issue where CBV resources were being released too early.
This work involved a couple changes:
1) Move the "frame" fence to be incremented on the rendering thread (during RHIAdvanceFrameForGetViewportBackBuffer()) so that resources that are deleted from the rendering thread are assosicated with the correct frame count
2) Queue up a command from the rendering thread to signal the "frame" fence. It needs to be queued to ensure that it's signaled at the correct time on the RHI thread (after that frame's command lists have been executed).
-Disable GRHIRequiresEarlyBackBufferRenderTarget. Metal/Vulkan/Xbox11.x already do this. This is used by the Slate renderer during BeginRenderFrame and avoids a SetRenderTargets call.
-Enable GRHISupportsMSAADepthSampleAccess (used in the Editor). This was enabled for D3D11 on SM5, but not for D3D12.
-Delay load D3D12.dll and add root signature 1.1 support.
-Add explicit flush calls to improve resource barrier batching instead of implict flushes inside FConditionalScopeResourceBarrier and FScopeResourceBarrier. Also update those classes with const members.
*** CL 3183824 ***
Fix the D3D12 RHI after integrating UE 4.14 updates:
- Fixed a bug where we would try to get the PSO of a nullptr in SetPipelineState if we needed to reset the current PSO on the cmd list.
- Fixed a spelling error
- Removed the need for bForceState, we use dirty bits now
*** CL 3183830 ***
- GetDebugFlags RHI extension, needed by XB1 movie player.
- Only query memory info if stats are enabled
- Add support for the engine's new RHISubmitCommandsAndFlushGPU function
- Update CommitPendingPipelineState to be Graphics/Compute specific and avoid the need for a IsCompute parameter.
*** CL 3183837 ***
Made PipelineState caches contain pointers to FD3D12PipelineState objects to avoid issues with using pointers to after Find/Add to the maps. TMap indicates that the pointer to the value associated with a key "is only valid until the next change to any key in the map." The lifetime of the PSO pointers is managed by the low level caches (graphics and compute). Added stat for the number of Pipeline State Objects.
*** CL 3183931 ***
Update Windows D3D12 headers and libs to RS1 release bits (10.0.14393.0)
*** CL 3183978 ***
Update UBT Windows build settings:
- Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Delay load D3D12.dll and add root signature 1.1 support.
*** CL 3184132 ***
Fix Xbox PSO cache code where it could leak PSOs. Related to change 3183837.
*** Changelist 3211714 ***
Update D3D12 RHI with fixes:
- Check if we can reserve slots in GatherUniqueSamplerTables
- DirtyState more often in StateCache
- Remove InternalSetSamplerState. The alternate function isn't used.
- Allow MRTClear for arrays with holes in them
- Fix uninitialized descriptors. This was causing a GPU hang on Xbox. We need to set dirty bits for resources bound to slots outside of the current descriptor table's range
- Cleanup SetDescriptorHeap code. Move setting descriptor heap logic to the descriptor cache since it also owns things like the sampler maps. Added members to the descriptor cache to track the last heaps that were set on the command list to avoid dirtying bit unnecessarily.
- Resource transitions: go through Common between queues (3D <--> Compute)
- Fix initial state for placed resources.
- Merging epic
Change 3213250 on 2016/11/29 by Chris.Bunner
GBufferHints tooltip fix.
#jira UE-39103
Change 3213345 on 2016/11/29 by Gil.Gribb
more IWYU fallout
Change 3213676 on 2016/11/29 by Rolando.Caloca
DR - Fix incorrect texture getting cleared
Change 3213728 on 2016/11/29 by Rolando.Caloca
DR - Lambda-ize
Change 3214461 on 2016/11/29 by Ben.Woodhouse
Rollout August QFE4 XDK (required for latest DX12 changes on XB1)
Change 3215317 on 2016/11/30 by Daniel.Wright
PS4 compile fix
Change 3216343 on 2016/11/30 by Arne.Schober
DR - UE-39155 - after talking to Brian it occurred to us that flipping the world space normal is non sensical. And indeed the Grass was using world space normals.
Change 3216844 on 2016/12/01 by Ben.Woodhouse
Fix for static analysis warnings after discussion with Microsoft
Change 3216916 on 2016/12/01 by Gil.Gribb
Merging //UE4/Dev-Main@3216539 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3217385 on 2016/12/01 by Arne.Schober
DR - UE-39218, UE-39221, UE-39224 and potentially UE-39214 - The Stencil bits for Light channels and decal application were not set in the dynamic basepass
Change 3217464 on 2016/12/01 by Ben.Woodhouse
Fix for reflection capture resize assert. The assert is only valid in cooked builds, so disable it in editor
#jira UE-39225
Change 3217534 on 2016/12/01 by Arne.Schober
DR - Fix Merge conflict
Change 3217581 on 2016/12/01 by Rolando.Caloca
DR - Fix assert on debug
Change 3217741 on 2016/12/01 by Benjamin.Hyder
Duplicate audio fix.
Change 3217890 on 2016/12/01 by Rolando.Caloca
DR - Fix widget not rendering properly when hidden
#jira UE-39221
Change 3218129 on 2016/12/01 by Arne.Schober
DR - UE-39214 - Lod dither value as accidently cached accross the static draw list.
Change 3218759 on 2016/12/02 by Guillaume.Abadie
Fixes editor compositing bug caused by alpha through post processing change 3209903
#jira UE-39221
[CL 3219854 by Marcus Wassmer in Main branch]
2016-12-02 16:43:04 -05:00
# include "DeferredShadingRenderer.h"
2017-06-16 20:17:59 -04:00
# include "MobileSeparateTranslucencyPass.h"
2018-10-11 23:52:27 -04:00
# include "MobileDistortionPass.h"
2019-06-11 18:27:07 -04:00
# include "SceneTextureParameters.h"
# include "PixelShaderUtils.h"
2020-01-24 18:07:01 -05:00
# include "ScreenSpaceRayTracing.h"
2020-09-24 00:43:27 -04:00
# include "SceneViewExtension.h"
2020-11-24 18:42:39 -04:00
# include "FXSystem.h"
2021-10-25 20:05:28 -04:00
# include "SkyAtmosphereRendering.h"
# include "Strata/Strata.h"
2022-01-27 15:49:31 -05:00
# include "VirtualShadowMaps/VirtualShadowMapArray.h"
2022-02-02 05:55:10 -05:00
# include "Lumen/LumenVisualize.h"
2022-02-04 04:18:10 -05:00
# include "RectLightTextureManager.h"
2014-04-23 17:31:09 -04:00
2020-02-12 13:27:19 -05:00
bool IsMobileEyeAdaptationEnabled ( const FViewInfo & View ) ;
2020-02-26 21:42:01 -05:00
bool IsValidBloomSetupVariation ( bool bUseBloom , bool bUseSun , bool bUseDof , bool bUseEyeAdaptation ) ;
2020-02-12 13:27:19 -05:00
2022-05-24 04:33:36 -04:00
extern FScreenPassTexture AddVisualizeLightGridPass ( FRDGBuilder & GraphBuilder , const FViewInfo & View , FScreenPassTexture & ScreenPassSceneColor , FRDGTextureRef SceneDepthTexture ) ;
extern bool ShouldVisualizeLightGrid ( ) ;
2019-10-01 13:03:04 -04:00
namespace
{
TAutoConsoleVariable < float > CVarDepthOfFieldNearBlurSizeThreshold (
2015-09-11 12:05:05 -04:00
TEXT ( " r.DepthOfField.NearBlurSizeThreshold " ) ,
0.01f ,
TEXT ( " Sets the minimum near blur size before the effect is forcably disabled. Currently only affects Gaussian DOF. \n " )
TEXT ( " (default: 0.01) " ) ,
ECVF_RenderThreadSafe ) ;
2019-10-01 13:03:04 -04:00
TAutoConsoleVariable < float > CVarDepthOfFieldMaxSize (
2014-09-18 17:49:40 -04:00
TEXT ( " r.DepthOfField.MaxSize " ) ,
100.0f ,
TEXT ( " Allows to clamp the gaussian depth of field radius (for better performance), default: 100 " ) ,
ECVF_Scalability | ECVF_RenderThreadSafe ) ;
2019-10-01 13:03:04 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessingPropagateAlpha (
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
TEXT ( " r.PostProcessing.PropagateAlpha " ) ,
0 ,
TEXT ( " 0 to disable scene alpha channel support in the post processing. \n " )
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 3972172)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3821754 by Jamie.Dale
[Python] Class property conversion now goes through NativizeClass/PythonizeClass
This allows it to coerce from Python wrapped object types
Change 3833107 by Patrick.Boutot
Added functions to fill an existing DataTable from an existing CSV/JSON file.
Change 3835044 by Aaron.Carlisle
Exposure for asset_import_data (editor property) and it's functions: extract_filenames and get_first_filename.
Change 3835466 by Patrick.Boutot
Hide function from Python that need special compile command to be executed by the VM.
Change 3839237 by Jamie.Dale
Added a way to inspect the full chain of properties that are currently being serialized by an archive
You used to only have access to the leaf-most property, and while you could use its outer chain to inspect other properties within the same object/struct, you couldn't always get the full chain (eg, if you had an object containing a struct).
Change 3839974 by Jamie.Dale
Make sure that SerializedProperty is copied correctly, as SetSerializedPropertyChain may set it to something else
Change 3842311 by Jamie.Dale
Fixing potential null level assert
Change 3842313 by Jamie.Dale
Updated settings editor to handle external properties
Change 3842316 by Jamie.Dale
Allowing a console command to be given to GEditor/GEngine even if there's a player
CL# 1848982 said it was to prevent multiple execution of stat commands, however that no longer seems to be an issue.
Change 3842867 by Jamie.Dale
Added a way to generate diffs from editor transactions
The notifications from these diffs are send to UObject::PostTransacted and FCoreUObjectDelegates::OnObjectTransacted.
These notifications are typically generated when a transaction is "finalized", but can also be generated from "snapshots" (eg, to trap nodes being dragged in the world). They're also generated from normal undo/redo events.
Change 3844428 by Patrick.Boutot
Move the SetMaterial code from the StaticMeshEditor to StaticMesh to be reusable by script.
Change 3845966 by Jamie.Dale
Added support for minimal game RPC worlds
These can be created in the editor and engine and exist to allow RPC communication via Unreal Networking in a way that is sandboxed from any other worlds that may be loaded (like the main game world)
Change 3848844 by Patrick.Boutot
Expose EComponentMobility to blueprint.
Change 3854616 by Patrick.Boutot
Add Custom way time step the engine loop. Will be used by the Synchronization of media for enterprise.
Change 3856650 by Jamie.Dale
Fixed a bug where transaction finalization could miss changes since the last snapshot
Change 3864951 by Patrick.Boutot
Fix ghost asset in Content Browser when an asset is added and renamed before the RecentlyAddedAssets list had a chance to be processed.
Change 3867158 by JeanMichel.Dignard
UBT
- Added the ability for dll programs to export symbols.
#jira UEENT-541
Change 3872342 by Jamie.Dale
Merging static analysis fixes from 4.19
Change 3879305 by Jamie.Dale
Improved the processing of py files from exec commands
The old logic used to just test if the entire command was a .py file. The new logic extracts out the first token and sees if that's a .py file, and if it is, treats the remaining data as extra arguments.
Change 3879306 by Jamie.Dale
Added a minimal commandlet for invoking Python scripts
Change 3881631 by Jamie.Dale
Added basic RTTI to Python meta-data types
Change 3885384 by Jamie.Dale
[Python] Prevent glue code using reserved names
Change 3888957 by Patrick.Boutot
In MediaPlayer, only create a PlayerFacade & Playlist when it's not a ClassDefaultObject.
The MediaPlayerFacade is a MediaTickable. That trigger the tick thread to be awake even if there is no Media playing.
Change 3888961 by Patrick.Boutot
Fix FInterval::IsValid return type.
Change 3888980 by Patrick.Boutot
Modification to Media and MediaAsset to support MediaSmith. The TInterval<int64> will be changed into TTinterval<FTimespan> UEENT-947. MediaSampleQueue's critical section will be change into an atomic operation UEENT-948.
Change 3889165 by Patrick.Boutot
Fix build. Missing include for Timespan. Introduce with CL 3888980.
Change 3889261 by Jamie.Dale
[Python] Fixing some more name conflicts in generated code
Change 3889504 by Darren.Pegg
Add option to change PreferredPixelFormat
Change 3891193 by Patrick.Boutot
Fix build. Missing include for Interval. Introduce with CL 3888980.
Change 3897108 by Patrick.Boutot
TTinterval use it own traits. Create a Interval traits for Timespan.
#jira UEENT-947
Change 3899669 by Jamie.Dale
Fixed Functions sometimes being exposed to Python as if they were Structs
Change 3900692 by Jamie.Dale
Removed some boilerplate associated with wrapping a basic type to Python
You can now derive from TPyWrapperBasic to wrap a type that is simply a value copied into Python (see FPyWrapperName and FPyWrapperText for an example)
Change 3901066 by conan.reis
UE4 editor script bindings (Cobra) and helper functions for version control
- exposed SourceControl class with common source control methods and associated SourceControlState structure
- commands have smart file strings that can convert from any of fully qualified path, relative path, long package name, asset path or export text path (often stored on clipboard)
- commands store any errors in a shared error text object which is optionally printed to the error log
- renamed some calls across the UE4 codebase to USourceControlHelpers::CheckOutOrAddFile() from USourceControlHelpers::CheckOutFile()
- included Python test script for source control commands including that auto-creates test files as needed and passes various types of files to test as command line arguments. Any unexpected results displays error messages.
Change 3901388 by Jamie.Dale
Minimal Slate hooks for Python
Change 3901456 by Jamie.Dale
Added missing file
Change 3901549 by Jamie.Dale
Removing some more Windows defines that were causing build issues
Change 3904518 by conan.reis
Source Control
- ensured that "check if modified" flag is set whenver getting source control state in USourceControlHelpers::QueryFileState() which was needed when using Perforce source control provider
Change 3905612 by Francis.Hurteau
Optimize RemoveDuplicates somewhat using a TSet
#jira UEENT-217
Change 3912626 by Jamie.Dale
Fixed ShouldExcludeDerivedClasses option not working
RecursiveClassesExclusionSet requires a base ClassNames entry to operate on when filtering.
Change 3917739 by Jamie.Dale
Output Log suggestions list is now clamped to the work area width of the monitor that hosts the widget
Change 3917744 by Jamie.Dale
Changed generated code to reference the UProperty and UFunction directly, rather than constantly look them up by name
Names were originally used because UHT couldn't access the objects when it registered the glue code, but now that we generate at runtime via reflection, we already have the relevant objects available, and caching them the glue structs helps performance at both generation time and runtime.
Change 3918832 by Jamie.Dale
Removed field iteration from Python function calls
We now cache the input and output parameters for all function calls (methods, get/set, and delegates) and use this rather than iterate the struct fields.
Change 3920648 by Patrick.Boutot
Remove the bottom right part of the windows border of the grabbed frame when in the editor. Tested in the standalone, windowed and full screen.
Add option to request a FlushOnDraw on the viewport. Flushing in SDI output flow decreases the performance by ~10ms. SDI output is synchronized and the engine tick follows that synchronization.
Change 3921396 by Jamie.Dale
Split up the generated type data to correspond to the type being wrapped
A lot of types can just use the minimal set, but classes and structs have some extra data.
Change 3921619 by conan.reis
- add delegate to FSourceControlWindows::ChoosePackagesToCheckin() that gives info for result, result description, files added, files checked in and flag indicating whether files were checked out again.
- also added result info to FSourceControlWindows::PromptForCheckin()
#jira UE-55255
Change 3921624 by conan.reis
Removed Source Control common files from pre compiled header
- main changes are in UnrealEdPrivatePCH.h, UnrealEdSharedPCH.h, SouceControlWindows.h and the added SouceControlWindows.cpp
- remaining files have includes changed to accomodate
Change 3921958 by conan.reis
Fix attempt for incude file dependency needed by some build configurations (likely PCH disabled) caused by CL3921619
Change 3922740 by conan.reis
Included SourceControlOperations.h and SourceControlHelpers.h back in ISourceControlProvider.h though it does not need them since other files that were including ISourceControlProvider.h have come to expect their inclusion.
They were previously removed in CL3921624
Change 3923375 by Jamie.Dale
Added optimized FString <-> icu::UnicodeString conversion for platforms using UTF-16 native strings
Change 3926547 by Jamie.Dale
Added support for struct method "hoisting"
This allows you to tag a helper function that takes a struct as its first argument with the ScriptMethod meta-data (optionally providing a new name) to "hoist" that helper function to be a method of the struct it operates on when wrapped for Python.
Change 3927050 by conan.reis
Source control - ensured that ISourceControlProvider::Execute(FConnect, EConcurrency, FSourceControlOperationComplete) delegate is called on initial connection even if it fails immediately. Modified Perforce, Git and Subversion source control providers
#JIRA UE-55256
Change 3929268 by conan.reis
- fixed case in Perforce source control code where the server available flag was set even when the server was not successfully connected
- removed Perforce error message about file folders outside of the workspace client mappings
- clarified comments for ISourceControlProvider::IsEnabled() and ISourceControlModule::IsEnabled()
#JIRA UE-55254
Change 3931024 by Rex.Hill
Expose FBX and Texture import to python
Change 3931273 by Rex.Hill
Hide re-import slate notification pop-up during python automated asset import
Change 3931368 by Jamie.Dale
Stopped bools coercing to numeric types in Python nativization
Change 3931374 by Jamie.Dale
Added support for struct math operator "hoisting"
This allows you to tag a helper function that takes a struct as its first argument with the ScriptMathOp meta-data (providing a potentially semi-colon separated list of operators to map to) to "hoist" that helper function to be a math operator of the struct it operates on when wrapped for Python.
Change 3932586 by Rex.Hill
Removed file read into unused memory buffer during Fbx import
Change 3934308 by Jamie.Dale
Added a public interface for the Python plugin
Very basic, just lets you query if Python is compiled in, and lets you execute Python commands like you would via the Output Log.
Change 3935088 by conan.reis
- Added info/warning and error message storage to all the source control operation structures so additional information can be made available.
- Added ISourceControlOperation::GetResultInfo() which returns the modified control structures (mentioned above) with appended info/warning messages and error messages and implemented its use in all source control operations in Perforce, Git and Subversion.
#JIRA UE-55257
Change 3936668 by Rex.Hill
#jira UE-55985
Avoid re-allocation of memory buffer holding file bytes during asset import
Change 3940596 by Rex.Hill
#jira UE-55989 Optimize skeletal mesh import performance scaling
Overlapping vertex check was O (N^2)
100k vertex mesh took ~15 seconds to perform overlap step now takes 0.023 seconds
Change 3942629 by Rex.Hill
#jira UE-55995 Read fbx file only once during import
Fixes a memory leak of FbxScene and reduces wait time during import.
Change 3942884 by Rex.Hill
Python asset import can now customize destination asset name
Change 3946278 by Jamie.Dale
Added stricter conversion for math operator arguments
PyConversion now returns FPyConversionResult rather than bool, which will tell you not only whether a conversion succeeded or failed, but also whether type coercion was applied during the conversion.
This allows the operator stack evaluation to run a first pass looking for an exact argument match, before falling back to a coerced match if available. This allows operators to apply correctly to coerced types (eg, int vs float overloads).
Change 3948455 by Jamie.Dale
Added generic Tick function to FPythonScriptPlugin
This can also handle init logic for after the engine is fully initialized
Change 3948888 by Jamie.Dale
Added settings for the Python plugin
You can now define start-up scripts to execute once the engine is initialized, additional system paths for Python, and whether you want to enable developer mode (which will enable things like deprecation warnings).
Change 3948982 by Jamie.Dale
Fixed Python 3 build error caused by CObject being removed in Python 3.2
Change 3949614 by Francis.Hurteau
Create a camera cut track from the camera switcher camera index animation curve when importing a fbx in sequencer
#jira UEENT-1053
Change 3950829 by Rex.Hill
Update error message to be more specific when ENGINE_API keyword is found before 'static' keyword for a UFUNCTION
Change 3953452 by Jamie.Dale
Fixed some dependencies
Change 3953645 by Jamie.Dale
Fixed Python parameter packing treating bool output paramers as potential return values
void GetState(bool& OutState) would have previously triggered the code for packing output for a function that returns a bool.
Change 3953850 by Jamie.Dale
Fixed doc string generation for a function with multiple output paramters and no return value
Change 3954279 by Jamie.Dale
Initial support for exposing deprecated properties and functions to Python
This handles properties and functions that are directly deprecated. We still need to handle the cases where they're renamed and a redirector is left.
Change 3954922 by Rex.Hill
Expose UnloadPackages to python
Change 3955209 by Jamie.Dale
Initial support for exposing deprecated classes to Python
Change 3955248 by Jamie.Dale
Added a way to load Unreal modules via Python
unreal.load_module("modulename")
Change 3955561 by Rex.Hill
Expose asset export to python
Change 3956068 by Rex.Hill
Linux compile fix.
Change 3960449 by Rex.Hill
Fix automated test using bCombineMeshes
Change 3960495 by Patrick.Boutot
Add a temporary menu to show the MetaData of an asset.
The menu will need to be updated to have a look and feel of the Detail View and support edition at one point.
Change 3961599 by Rex.Hill
Reduced peak memory during import of meshes related to duplicate vertex tracking
Change 3962104 by Rex.Hill
Disable import mesh overlapping corners memory optimization to because it can change uv generation
Change 3962507 by Rex.Hill
Fix uv generation
Change 3965285 by Rex.Hill
Add support for FBX export as ASCII
#jira UE-56465
Change 3965287 by Rex.Hill
Forgotten file, fbx export as ascii
Change 3966772 by Simon.Tourangeau
Fix MaterialExpressionFunctions for ExternalTexture support
Change 3967014 by Jamie.Dale
Added a way to get the CDO in Python
Wrapped objects now have a get_default_object class method
Change 3967151 by Jamie.Dale
Added stats to track Python generation time
Change 3968006 by Simon.Therriault
Media Samples
- Removed Locks and Min/Max SampleTime from queues
- Added methods to fetch NextSampleTime and SampleCount in queues
- Added MediaSource base class for players that want to be time synchronized
#jira UEENT-948
Change 3969119 by Patrick.Boutot
Add delay functionnality to MediaPlayer to delay the frame by some time. It will allow more than one player to be start at the same time, played at the same frame but offset in relation to each other.
[CL 3972277 by Simon Tourangeau in Main branch]
2018-03-29 13:32:35 -04:00
TEXT ( " 0: disabled (default); \n " )
TEXT ( " 1: enabled in linear color space; \n " )
TEXT ( " 2: same as 1, but also enable it through the tonemapper. Compositing after the tonemapper is incorrect, as their is no meaning to tonemap the alpha channel. This is only meant to be use exclusively for broadcasting hardware that does not support linear color space compositing and tonemapping. " ) ,
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
ECVF_ReadOnly ) ;
2019-06-11 18:27:07 -04:00
2019-10-01 13:03:04 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessingPreferCompute (
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
TEXT ( " r.PostProcessing.PreferCompute " ) ,
0 ,
TEXT ( " Will use compute shaders for post processing where implementations available. " ) ,
ECVF_RenderThreadSafe ) ;
2020-07-06 18:58:26 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessingQuarterResolutionDownsample (
TEXT ( " r.PostProcessing.QuarterResolutionDownsample " ) ,
0 ,
TEXT ( " Uses quarter resolution downsample instead of half resolution to feed into exposure / bloom. " ) ,
ECVF_RenderThreadSafe ) ;
2021-12-06 13:45:02 -05:00
TAutoConsoleVariable < int32 > CVarDownsampleQuality (
TEXT ( " r.PostProcessing.DownsampleQuality " ) , 0 ,
TEXT ( " Defines the quality used for downsampling to half or quarter res the scene color in post processing chain. \n " )
TEXT ( " 0: low quality (default) \n " )
TEXT ( " 1: high quality \n " ) ,
ECVF_Scalability | ECVF_RenderThreadSafe ) ;
TAutoConsoleVariable < int32 > CVarDownsampleChainQuality (
TEXT ( " r.PostProcessing.DownsampleChainQuality " ) , 1 ,
TEXT ( " Defines the quality used for downsampling to the scene color in scene color chains. \n " )
TEXT ( " 0: low quality \n " )
TEXT ( " 1: high quality (default) \n " ) ,
ECVF_Scalability | ECVF_RenderThreadSafe ) ;
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
# if !(UE_BUILD_SHIPPING)
2019-10-01 13:03:04 -04:00
TAutoConsoleVariable < int32 > CVarPostProcessingForceAsyncDispatch (
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
TEXT ( " r.PostProcessing.ForceAsyncDispatch " ) ,
0 ,
TEXT ( " Will force asynchronous dispatch for post processing compute shaders where implementations available. \n " )
TEXT ( " Only available for testing in non-shipping builds. " ) ,
ECVF_RenderThreadSafe ) ;
# endif
2020-07-06 18:58:26 -04:00
2019-10-01 13:03:04 -04:00
} //! namespace
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
2021-12-06 13:45:02 -05:00
EDownsampleQuality GetDownsampleQuality ( const TAutoConsoleVariable < int32 > & CVar )
{
const int32 DownsampleQuality = FMath : : Clamp ( CVar . GetValueOnRenderThread ( ) , 0 , 1 ) ;
return static_cast < EDownsampleQuality > ( DownsampleQuality ) ;
}
2019-10-01 13:03:04 -04:00
bool IsPostProcessingWithComputeEnabled ( ERHIFeatureLevel : : Type FeatureLevel )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4041614)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3774677 by Arne.Schober
DR - Deprecated SetLocal from the RHICmdlist
Fixed some unnecessary PSO collisions.
Change 3809579 by Chris.Bunner
Back out changelist 3774677.
#jira UE-53483
Change 3810363 by Mark.Satterthwaite
More random fixes to mtlpp: most important is the extension to Buffer that allows creation of sub-buffers that are merely views onto a sub-range of the parent. These sub-buffers are valid to use throughout the mtlpp API with two exceptions: they may not be used for visibilityResultsBuffers and Set*BufferOffset functions cannot take this offset into account (as the encoder does not hold onto the buffers and I don't want it to). In the case of Set*BufferOffset the caller has to know what is going on and in the case of visibilityResultsBuffers it'll just assert as it isn't sensible.
This makes it *much* easier to do things like sub-buffer allocation, though the caller must be aware of the alignment restrictions of their intended usage as they are not possible to enforce. For example, a call to SetVertexBuffer requires an offset alignment must match the alignment of the data-type in the shader for "device" resources, or for "constant" data it must be max(4, sizeof(datatype)) on iOS and 256 on macOS. This should allow for much more tightly packed sub-allocations than earlier approaches, though older drivers (e.g. Mac OS X 10.11) enforce only the coarser "constant" data restriction everywhere.
Change 3810407 by Marcus.Wassmer
PR #4322: ShadowSetup Bug Fix: Only stencil mask drawn meshes (Contributed by DSDambuster)
Change 3810676 by Guillaume.Abadie
Makes r.Test.SecondaryUpscaleOverride work with any arbitrary pixel size.
Change 3810696 by Guillaume.Abadie
Adds support for #include "../MyFile.ush" in the shader compiler.
Change 3810698 by Guillaume.Abadie
Implements enum class based shader permutation dimension.
Change 3810699 by Guillaume.Abadie
Implements Diaphragm DOF ground work.
Change 3811536 by Guillaume.Abadie
Pulls the trigger on CircleDOF's setup pass for DiaphragmDOF.
Change 3811958 by Mark.Satterthwaite
More fixes for mtlpp.
Change 3811964 by Mark.Satterthwaite
Only views onto a mtlpp::Buffer should return a valid parent-buffer.
Change 3812604 by Guillaume.Abadie
Changes Diaphragm DOF's source file layout.
Change 3812827 by Mark.Satterthwaite
More missing/broken functionality in mtlpp fixed and fixed obvious leaks.
Change 3812920 by Guillaume.Abadie
Adds support for per mip level UAV in FSceneRenderTarget.
Change 3812926 by Mark.Satterthwaite
Change the way we handle mtlpp resource construction to avoid leaks.
Change 3812960 by Rolando.Caloca
DR - vk - Disable DFGI
Change 3812968 by Rolando.Caloca
DR - Linker fix
Change 3813318 by Mark.Satterthwaite
Fix linear texture allocation from a buffer sub-view.
Change 3813326 by Mark.Satterthwaite
Fix another Metal mtlpp sub-buffer allocation failure.
Change 3813328 by Guillaume.Abadie
Removes global samplers in TAA for GL4, Vulkan and Switch.
Change 3813937 by Rolando.Caloca
DR - Fix logs not getting dumped when r.DumpSCWQueuedJobs is on
Change 3813947 by Rolando.Caloca
DR - noshaderworker should override r.XGEShaderCompile
Change 3817017 by Uriel.Doyon
Fixed texture editor black screen
#jira UE-53653
Change 3818568 by Rolando.Caloca
DR - Fix log when shader jobs crash
- Move log10 to common
- Added COMPILER_VULKAN define
Change 3818603 by Uriel.Doyon
Fix to static analysis warning
Change 3818623 by Rolando.Caloca
DR - Workaround hlslcc loop unrolling bug
Change 3819070 by Uriel.Doyon
Fix to stat duplication.
Change 3819105 by Uriel.Doyon
Refactored volume sample shader to avoid using texture dimension.
Change 3819136 by Rolando.Caloca
DR - vk - Per platform files (empty)
Change 3819180 by Rolando.Caloca
DR - vk - Move defines out of config into per platform
Change 3819247 by Rolando.Caloca
DR - vk - Remove more defines into platform settings
Change 3819318 by Rolando.Caloca
DR - vk - Fixes for linking
Change 3819868 by Rolando.Caloca
DR - vk - Linux & Android fixes
Change 3819873 by Guillaume.Abadie
Adds support for PermutationId on r.DumpShaderDebugInfo=1
Change 3819940 by Rolando.Caloca
DR - vk - Fix Linux issues
Change 3819956 by Rolando.Caloca
DR - vk - Invalid check
Change 3819961 by Michael.Lentine
Hide attributes when plugin is not present
Change 3819980 by Rolando.Caloca
DR - vk - Standard validation always
Change 3820039 by Rolando.Caloca
DR - vk - Fix invalid ensure
Change 3820326 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3820422 by Michael.Lentine
Add back GBufferAO.
Change 3820433 by Rolando.Caloca
DR - Fix D3D12 crash on 20 thread (10x2 cores) machines
Change 3821677 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3821961 by Rolando.Caloca
DR - Vulkan uses real UB by default on non-Android
Change 3821968 by Rolando.Caloca
DR - vk - Update glslang 1.0.65.1
Change 3821969 by Uriel.Doyon
Added support for stat groups that must be sorted by name. Defined by DECLARE_STATS_GROUP_SORTBYNAME.
Change 3821983 by Rolando.Caloca
DR - vk - Change to static array (0.1ms on 10k draw calls)
Change 3824141 by Rolando.Caloca
DR - vk - Fix static analysis
- Bumped up some (c) 2017->2018
Change 3824355 by Rolando.Caloca
DR - vk - Accessor to find out if a cmd buffer has been submitted
Change 3824420 by Rolando.Caloca
DR - Sanity check number of queries per batch on D3D11 as to not break other RHIs
Change 3824463 by Rolando.Caloca
DR - Removed dummy ensure for D3D12
Change 3824609 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3826074 by Mark.Satterthwaite
Start IMP-caching the various descriptor types in mtlpp.
Change 3826098 by Rolando.Caloca
DR - vk - Dump layer compile fixes
Change 3826113 by Rolando.Caloca
DR - vk - Missing dump functions
Change 3826302 by Rolando.Caloca
DR - vk - Compile fix
- Change dump handles to %p
Change 3826635 by Mark.Satterthwaite
Forward declarations required for mtlpp compilation without exposing Metal headers - plus fixes to the mtlpp test compiler.
Change 3827072 by Mark.Satterthwaite
Switch some more mtlpp descriptors over to IMPTables from objc_msgSend.
Change 3827909 by Guillaume.Abadie
Replaces diaphragm DOF's prefiltering with LDS bank coherent bilateral reduction, and implements 1/8 res background gathering pass.
Change 3827952 by Guillaume.Abadie
Updates copy right to year 2018 on diaphragm DOF's new files.
Change 3828055 by Rolando.Caloca
DR - vk - Rename in prep for changes
Change 3828229 by Guillaume.Abadie
Avoids to log multiple time global shader type name that have multiple permutations when verifying global shader map.
Change 3828427 by Guillaume.Abadie
Reimplements Max3x3 gathering post filtering for Diaphragm DOF with proper shader permutation.
Change 3829979 by Guillaume.Abadie
Fixes a color NaN source in diaphragm DOF's TAA pass.
Change 3830116 by Rolando.Caloca
DR - vk - Fix GPU queries/frame time on old system
- New system in place, disabled temporarily
Change 3830169 by Rolando.Caloca
DR - vk - Fix async pso creation crash
Change 3830193 by Rolando.Caloca
DR - vk - CPU RHI thread improvement
Change 3830291 by Guillaume.Abadie
Automatically lower the number of gathering rings on background half res gather pass as far CoC is getting smaller.
Change 3830300 by Rolando.Caloca
DR - vk - Static analysis fix: Split VulkanCommon.h out of VulkanConfiguration.h
Change 3830589 by Mark.Satterthwaite
In mtlpp cache the IMPTables for all the Metal @protocol's that are dependent on the MTLDevice, this avoids a mutex & map lookup. Also make all the concrete types store their IMPTable statically as it won't change.
Change 3830793 by Mark.Satterthwaite
Fix a small number of bugs introduced with the mtlpp descriptor and table caching.
Change 3831491 by Jian.Ru
Fix driver version unknown
#jira UE-53688
Change 3832335 by Rolando.Caloca
DR - vk - Change include
Change 3832550 by Rolando.Caloca
DR - vk - Occlusion query rewrite WIP
Change 3832589 by Rolando.Caloca
DR - vk - Minor refactor to pools in prep for timestamps
Change 3832618 by Rolando.Caloca
DR - vk - Do not block timestamp queries
Change 3832636 by Rolando.Caloca
DR - vk - Fix old timestamp queries
Change 3833138 by Rolando.Caloca
DR - vk - Fix timestamp queries
Change 3833249 by Rolando.Caloca
DR - vk - Test lock
Change 3833667 by Rolando.Caloca
DR - vk - Old queries wait on the RHI thread now instead of the driver (disabled)
Change 3833907 by Daniel.Wright
Fixed NextStartOffset UAV index out of bounds
Change 3833918 by Daniel.Wright
D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC or Xbox. The refcounting was heavy on performance as reported by a licensee because FRHIResource uses atomics for refcounting, which is only necessary when GRHINeedsExtraDeletionLatency is disabled.
Change 3834852 by Rolando.Caloca
DR - vk - Missing file
Change 3834858 by Guillaume.Abadie
Implements r.DOF.MinimalFullresBlurringRadius
Change 3834979 by Rolando.Caloca
DR - vk - Fix
Change 3836117 by Rolando.Caloca
DR - vk - Update to 1.0.65.1
Change 3836122 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOcclusionBatchCmdBuffer
- Added new error codes/messages
Change 3836421 by Mark.Satterthwaite
For the purposes of debugging and conformance testing mtlpp make it possible to compile *without* the IMP cache so that we call the underlying Objective-C.
Change 3836896 by Uriel.Doyon
Fixed concurrency and exit issues around d3d12 pipeline states on windows.
Change 3837385 by Rolando.Caloca
DR - vk - Dump memory on OOM
Change 3837427 by Rolando.Caloca
DR - vk - Change some arrays to array views
Change 3837800 by Guillaume.Abadie
Implements SHADER_PERMUTATION_RANGE_INT to make contiguous integer permutations that does not start to 0.
Change 3838128 by Rolando.Caloca
DR - vk - Support for non-cached memory types
Change 3838540 by Guillaume.Abadie
Refactors Diaphragm DOF's CoC tile buffer under a single API for better maintainability.
Change 3838731 by Rolando.Caloca
DR - vk - Descriptor pools per command buffer pool (turned off)
Change 3838961 by Rolando.Caloca
DR - vk - Use ring buffer for per frame uniform buffers
- Enable descriptor pools per layout recycled per command buffer
Change 3839087 by Rolando.Caloca
DR - vk - Compile fixes for Android
Change 3839106 by Marcus.Wassmer
PR #4413: Removing unnecessary call to FString::ToLower (Contributed by gsfreema)
Change 3839252 by Mark.Satterthwaite
Fix mtlpp::Resource move operators.
Change 3839426 by Marcus.Wassmer
Duplicate 380972
Make PC GPU Benchmarks more reliable
Change 3840041 by Guillaume.Abadie
Fixes shader compilation failure in TAA with alpha channel through post processing support.
Change 3840257 by Chris.Bunner
Swapping a mul() to * in HLSLTranslator::Dot to allow scalar transformations per a UDN ticket.
Change 3840308 by Rolando.Caloca
DR - vk - Support for UB & non-UB on emulation mode
Change 3840586 by Rolando.Caloca
DR - Copy 3840577
Fix for CPUs with more than 16 cores
Change 3840671 by Rolando.Caloca
DR - vk - Copy from 3840663
Fix for layout ensure on HMD projects on Vulkan
Change 3840980 by Rolando.Caloca
DR - vk - Android compile fixes
Change 3841989 by Guillaume.Abadie
Slices Diaphragm DOF's Gather pass in multi shader files, and CFLAG_StandardOptimization flag for faster iteration time.
Change 3842216 by Guillaume.Abadie
Fixes DDOF's foreground alpha channel.
Change 3842217 by Guillaume.Abadie
Implements r.DOF.MaximalForegroundBlurringRadius
Change 3842353 by Guillaume.Abadie
Allows to disable foreground gathering with r.DOF.MaximalForegroundBlurringRadius=0
Change 3842747 by Rolando.Caloca
DR - vk - Missing use of GPoolSizeVRAMPercentage
- Support for smaller allocations if page size is not available
Change 3842791 by Rolando.Caloca
DR - vk - Use 95% of available GPU memory to handle some fragmentation
Change 3843690 by Guillaume.Abadie
Fixes diaphragm DOF's foreground after all this refactoring.
Change 3844439 by Guillaume.Abadie
Improves Coc dilate pass to make the gather pass as fast as possible, but still without artifacts caused by the fast gathering optimisation.
Change 3844946 by Mark.Satterthwaite
rd_route v1.1.1 with attached TPS approval.
For macOS function interposition which is useful for debugging and the occasional workaround.
Change 3845164 by Mark.Satterthwaite
Add LLM support for macOS, including tracking of memory allocated in Objective-C. This makes use of runtime method swizzling in the Objective-C runtime and the rd_route library I added for Richard Wallis, which allows for arbitrary runtime function interposition and allows me to hook the custom allocators used in Apple's many Objective-C frameworks on which the whole macOS edifice is built. Objective-C objects are charged to the calling scope as they are too common to impose their own without murdering frame rate.
We would need a TPS approval for an iOS function interposition library for this to work fully on iOS, if desired in the short term discarding LowLevelFree events that aren't in the map rather than asserting will workaround the problem.
Change 3845849 by Marcus.Wassmer
Fix clang and some normal refactor errors
Change 3846026 by Rolando.Caloca
DR - vk - Descriptor set allocation scheme rewrite
- Type hash for each pool
- Desc sets Pool on device
Change 3846169 by Rolando.Caloca
DR - vk - Remove old code for non-layout descriptor set pools
Change 3846205 by Mark.Satterthwaite
Disambiguate the PatchControlPointOut struct definitions in Metal tessellation shaders at Apple's suggestion to avoid a metallib gotcha.
Change 3846346 by Arne.Schober
DR - Missing Vector instructions
Change 3847037 by Arne.Schober
DR - Fix issue with GPU skincache where the offset of the clothbuffer is not relative to the offset of the actual vertexbuffer.
Fixed MorphTarget Skincache Offset mixxup
Change 3847275 by Marcus.Wassmer
Copying MGPU to Dev-Rendering (//UE4/Dev-Rendering)
Change 3847464 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3847707 by Michael.Lentine
Only use MorphTargetOffset when the shader enables morph targets.
Change 3848533 by Richard.Wallis
Handle Metal adding FirstInstance into [[ instance_id ]] which is different to other APIs. SV_InstanceID and SV_VertexID should now have their respective base instance and base vertex ID's subtracted before use in the shader.
#jira UE-51716
Change 3848625 by Richard.Wallis
Compile Fix
Change 3848725 by Rolando.Caloca
DR - Remove use of Build/SetLocalGraphicsPipelineState
Change 3848797 by Rolando.Caloca
DR - Deprecate Build/SetLocalGraphicsPipelineState
Change 3849237 by Arne.Schober
DR - AddCustom Ver for ModelVertex Serialization
Change 3851247 by Rolando.Caloca
DR - vk - Util functions
Change 3851523 by Arne.Schober
DR - Update Reflection Comparission shot from the BuildFarm.
Change 3851859 by Rolando.Caloca
DR - vk - Skip loader
Change 3851889 by Krzysztof.Narkowicz
Removed lights with lighting channels out of tiled deferred light list. Tiled deferred lights do not support lighting channels and it's wasn't worth to add extra complexity to this shader in order support this special case.
#jira UE-51512
Change 3852181 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3852547 by Uriel.Doyon
Fixed Pre-Exposure shader compilation and Temporal AA issue.
#jira UE-54276
Change 3852637 by Arne.Schober
DR - Fixing Normal Automated Test Result
Change 3853167 by Richard.Wallis
AvfPlayer - support for streaming media. Due to an operator new/delete mismatch in Apples CFNetwork - we've had to change out one of that framework allocators using rd_route to avoid the memory corruption.
#jira UE-35637
Change 3853447 by Chris.Bunner
Fixing typos.
Change 3853645 by Krzysztof.Narkowicz
Fixed light functions on subsurface materials
Removed strange code from blending between static and dynamic shadows
#jira UE-50275
Change 3853660 by Rolando.Caloca
DR - Fix OpenGL overwriting texture samplers on forward renderer
Change 3853945 by Mark.Satterthwaite
Duplicate #3831616
Fix the black ground scattering on Metal - we've had issues with the atmospheric fog calculations for a long time - one or more intermediate operations generates different precision on Metal so we end up passing -ve values into sqrt which then generates NaN/INF. For Metal when compiling this file and this file only #define sqrt() to sqrt(abs()) so that we don't see anymore unexpected black in atmospheric rendering. This is far from ideal but I don't want to make abs all inputs into every sqrt because AFAIK this is the only case where we have an issue, and until we to investigate each intermediate calculation that isn't ridiculously, soul-crushingly tedious, it isn't practical to identify the source of the error.
#jira UE-53720
Change 3853966 by Mark.Satterthwaite
Duplicate #3835852
Fix tessellation shaders in Metal with Manual Vertex Fetch enabled:
- The control points idnex buffer shouldn't collide with anything else.
- We can't use the optimisation of loading texture width & height from the buffer meta-table in tessellation shaders as the combined stages don't guarantee not to clobber unused buffer slots and screw it up when we use linear textures.
#jira UE-53851
Change 3854250 by Uriel.Doyon
Fix fbx automation tests
Change 3854736 by Uriel.Doyon
Added a tooltip to the EV100 slider in the exposure menu.
Using game settings now disables the slider.
#jira UE-53945
Change 3855047 by Jian.Ru
Fix DFAO getting NANs when samples out of ViewRect
#jira UE-54403
Change 3858197 by Krzysztof.Narkowicz
View frustum shadow caster culling for pointlights/spotlights
#jira UE-54381
Change 3860081 by Krzysztof.Narkowicz
Tighter bounding sphere for a spotlight
Replaced IntersectSphere(LightProxy->Origin, LightProxy->Radius) with LightProxy->SphereBounds for tighter culling of spotlights
Directional light GetBoundingSphere() now everywhere returns Sphere((0,0,0),HALF_WORLD_MAX) for consistency and proper SphereBounds
#jira UE-54258
Change 3860324 by Mark.Satterthwaite
Update the macOS deployment target version to 10.12 from 10.11 as we officially ended support for El Capitan a while ago. Should mean that libraries compiled for 10.12 and up won't cause link warnings.
Change 3860945 by Arne.Schober
DR - Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer.
#jira UE-54587
Change 3861129 by Jian.Ru
Prevent distance culled objects from casting distance field direct shadows
#jira UE-54533
Change 3861502 by Jian.Ru
Exclude distance culled objects from DFAO calculation
#jira UE-54533
Change 3862243 by Krzysztof.Narkowicz
Changed radius of a directional light's bounding sphere from HALF_WORLD_MAX to WORLD_MAX in order to encopass entire WORLD_MAX box
Change 3863476 by Krzysztof.Narkowicz
Added BuildReflections option to ResavePackages commandlet
#jira UE-54581
Change 3863717 by Rolando.Caloca
DR - vk - Missed using pipeline cache on compute PSOs
Change 3865332 by Arne.Schober
DR - Fix UE-52356 Bone Weight
Change 3866220 by Rolando.Caloca
DR - vk - Fixed GetNativeResource missing on textures
- Added support for -preferNvidia|AMD|Intel
- Added VulkanRHIBridge.h
- Minor fixes
Change 3866222 by Rolando.Caloca
DR - vk - Missed file
Change 3866951 by Krzysztof.Narkowicz
Fixed FreezeRendering on non editor builds: ComputeAndMarkRelevanceForViewParallel was calling FrozenMatricesGuard on multiple threads, reading and writing view matrices state in parallel.
#jira UE-53640
Change 3867231 by Guillaume.Abadie
Adds alpha mode to allow the tonemapper to passthrough the alpha channel for broadcast industry.
Change 3867233 by Guillaume.Abadie
Fixes a compilation failures in TAAU with r.PostProcessing.PropagateAlpha==2
Change 3867594 by Daniel.Wright
Removed EditorOnlyDefaultMaterials, which added 79s of shader compilation during startup
Added a dialog when opening the Material Editor on a Default Material, warning of advanced workflow
Preventing Material Editor Apply or Save for a Default Material when the preview material has compilation errors
Change 3870048 by Daniel.Wright
Cleaned up formatting in TranslucentRendering from merges
Change 3870106 by Krzysztof.Narkowicz
Fixed some FArchive Tell()/Seek() 64bit->32bit truncations
Change 3870211 by Rolando.Caloca
DR - vk - Added -vulkanvalidation=N/-vulkanstandardvalidation/-novulkanstandardvalidation to set validation layer behaviour from cmd line
Change 3870225 by Rolando.Caloca
DR - vk - Some platforms do not use a standard swapchain
Change 3870267 by Arne.Schober
DR - SafeRelease SRVs that might be hold by the Vertexfactories (maybe due to indirect use in GlobalResources)
Note that the VFs are not owners of the data, e.g the underlying Buffers might be released before this and this reference counting should be uneccessary
Change 3870647 by Daniel.Wright
Moved FogRendering.h to Renderer
Change 3872130 by Krzysztof.Narkowicz
Disable USE_GLOBAL_CLIP_PLANE for MATERIAL_DOMAIN_POSTPROCESS and MERIAL_DOMAIN_UI
Merging GitHub Pull request #4459
"When material domain is not needing global clip plane there is no need to generate any code involving it. This does not alter output but removes lot of code at vertex shader and pixel shaders. At least on mobile rendered was actually generating clipping code for ui materials."
#jira UE-54616
Change 3872145 by Rolando.Caloca
DR - vk - Optional SupportsMarkersWithoutExtension
Change 3872404 by Uriel.Doyon
Added some guards when streaming virtual textures.
Fixed optimized UCanvasRenderTarget2D::RepaintCanvas() to prevent resolving the texture twice.
Fixed bad mipmap generation with UCanvasRenderTarget2D.
Change 3872507 by Arne.Schober
Back out changelist 3870267
Change 3874176 by Ben.Marsh
IncludeTool: Add an flag to prevent scanning source files for exported symbols.
Change 3874935 by Krzysztof.Narkowicz
Fixed white thumbnails and other issues with sky lighting on ES3_1 path, by disabling GGX prefiltering, as mobile path doesn't have a single cubemap with all initialized mips. Instead it ping-pongs between 2 partially initialized.
#jira UE-54656
Change 3875710 by Daniel.Wright
Renamed uniform buffer member macros to be much shorter for readability
Change 3876665 by Guillaume.Abadie
Cherry-pick 3870715: Implements DOF's hybrid scatering bare bones.
Change 3876666 by Guillaume.Abadie
Cherry-pick 3871786: DOF hybrid scatering: fixes NaN source, transition to gather on close to screen edge and low intensity.
Change 3876677 by Guillaume.Abadie
Cherry-pick 3872348: Implements neighbor comparison for DOF's scattering compilation pass.
Change 3876680 by Guillaume.Abadie
Cherry-pick 3872357: Oups... fixes build...
Change 3876683 by Guillaume.Abadie
Cherry-pick 3872475: Controls number of mip to generate with DOF's reduce pass.
Change 3876687 by Guillaume.Abadie
Cherry-pick 3874104: Fixes various bugs in diaphragm DOF's hybrid scattering.
Change 3876690 by Guillaume.Abadie
Cherry-pick 3874144: Packs multiple DOF scattering group into same draw instance.
Change 3876694 by Guillaume.Abadie
Cherry-pick 3874275: Switches hybrid scattering with indexed indirect draw call to reduce scatter vertex shader invocation.
Change 3876695 by Guillaume.Abadie
Cherry-pick 3874674: Records min and max coc on DOF's setup's draw event.
Change 3876783 by Rolando.Caloca
DR - Static analysis fix
Change 3876845 by Guillaume.Abadie
Implements USceneCaptureComponent::ProfilingEventName
Change 3877197 by Rolando.Caloca
DR - vk - OQ fixes (disabled)
Change 3877428 by Krzysztof.Narkowicz
Merged with tiny tweaks Ansel photography plugin improvements from Adam Moss (GitHub pull request #4426):
-The free-roaming photography camera has new constraints by default, i.e. it can't pass through walls
-Photography session can be started and stopped programmatically, e.g. making it possible to bind photography to an alternative hotkey or button combo. This was an often-requested feature.
-Tweakables and utilities are now exposed through a Blueprint Function Library (rather than direct manipulation of console variables)
-The Ansel photography session UI now exposes some engine effect tweakables as sliders. For example, if the game is using depth-of-field then sliders are made available to allow the photographer to change the focal depth etc. The developer may suppress this behavior through the Blueprint Function Library.
-Letterboxing is now removed during multi-part capture, d'oh.
-Tiled shots are taken at full resolution even if ScreenPercentage < 100
-SSR is enabled during super-resolution shots since Ansel is now better at hiding any ensuing artifacts
-Postprocess settings are frozen at session start to avoid discontinuities during photography, i.e. wandering between postprocess volumes when the camera auto-moves for stereo and 360 shots.
#jira UE-54244
#4426
Change 3879086 by Krzysztof.Narkowicz
Fixed sky/reflection capture (without owner) update - they are now updated only with a correspoding world
Change 3879090 by Guillaume.Abadie
Fixes tones of regressions on diaphragm DOF's recombine passes.
Change 3879198 by Rolando.Caloca
DR - vk - Support for real uniform buffers on Android platforms
Change 3879993 by Krzysztof.Narkowicz
-Fixed int64->int32 FArchive offset truncation in TShaderMap, VertexFactory and TextureDerivedData
-Fixed FSerializationHistory bug, when trying to serialize 0 bytes
#jira UE-43203
Change 3881462 by Guillaume.Abadie
Implements full res DOF's setup pass for cheaper full res gathering in recombine pass.
Change 3881524 by Krzysztof.Narkowicz
Fixed compilation by removing FTickableEditorObject from FPreviewScene
Change 3881724 by Chris.Bunner
Static analysis fix.
#jira UE-54762
Change 3881861 by Rolando.Caloca
DR - vk - Fix layout warning when generating mip chain
Change 3881864 by Rolando.Caloca
DR - Use render passes on HZB
Change 3882236 by Yuriy.ODonnell
IndirectLightingColorScale is now applied to SubsurfaceLighting and DiffuseLighting. Was previously only applied to DiffuseLighting.
#jira UE-42534
#github 3326
Change 3882325 by Guillaume.Abadie
Implements FocusOnly lower gathering pass for Diaphragm DOF's slight out focus temporal stability.
Change 3882340 by Rolando.Caloca
DR - vk - Fix api dump
Change 3882430 by Rolando.Caloca
DR - vk - KHR_maintenance2
Change 3882563 by Rolando.Caloca
DR - Add depth-stencil access mode to PSO initializer
Change 3882929 by Rolando.Caloca
DR - vk - Proper fix for maintenance extension macros
Change 3883087 by Mark.Satterthwaite
Allow disabling VSync in windowed mode for macOS 10.13.4+ and above.
Change 3883597 by Guillaume.Abadie
Collapses full and half res DOF setup passes together.
Change 3883702 by Guillaume.Abadie
Fixes mac's build.
Change 3884747 by Uriel.Doyon
Fix for static analysis warning
Change 3884975 by Rolando.Caloca
DR - vk - Move some platform defines to platform properties
Change 3884988 by Rolando.Caloca
DR - vk - Make an override per platform
Change 3885832 by Rolando.Caloca
DR - vk - Cosmetic change to group similar members
Change 3885891 by Rolando.Caloca
DR - vk - Some _RenderThread functions to avoid stalls
Change 3886044 by Rolando.Caloca
DR - Added RHI api _RenderThread version of
RHICreateTextureReference
RHICreateShaderLibrary
RHICreateRenderQuery
Change 3886560 by Guillaume.Abadie
Fixes strong aliasing on TAAU's fast shader permutation.
This adds a 6th neighbor sampling, and switch AA_TONE ON as TAA does for its fast shader permutation.
Change 3886749 by Guillaume.Abadie
Cherry-pick 3884748: Implements DOF's BuildBokehLUT for diaphragm blades simulation.
Only used in hybrid scattering for now.
Change 3886750 by Guillaume.Abadie
Cherry-pick 3885457: Simulates diaphragm blades' curvature on bokeh.
Change 3886752 by Rolando.Caloca
DR - Fix metal static analysis
Change 3887460 by Uriel.Doyon
Fixed to more static analysis warning.
Change 3888201 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitAfterEveryEndRenderPass
- Fixed bad layout on rendering back buffer
Change 3888209 by Rolando.Caloca
DR - vk - Unity compile fix
Change 3888254 by Rolando.Caloca
DR - vk - Fix async texture layout
Change 3888893 by Guillaume.Abadie
Simulates bokeh in DOF's slight out of focus.
Change 3889085 by Guillaume.Abadie
Fixes DOF's reduce pass sampling outside viewport.
Change 3889924 by Rolando.Caloca
DR - vk - Skip seemingly bad validation error
Change 3890573 by Daniel.Wright
Only initialize FDiaphragmDOFGlobalResource in Feature Level 5
Change 3890590 by Arne.Schober
DR - Fix Paper2d crash. When addMesh is called the Vertex and Indexbuffers are nulled out. re-create Dynamic Mesh builder for every Mesh instead.
#jira UE-55063
Change 3890638 by Arne.Schober
DR - Better fix for Paper2d which honors batching
#jira UE-55063
Change 3891099 by Krzysztof.Narkowicz
1.5 texel shadow offset fix inside Manual2x2PCF based on #4485 GitHub pull request
#jira UE-54985
#4485
Change 3891234 by Krzysztof.Narkowicz
Optimized PCF2x2 and PCF3x3 - merged #4494 GithHub pull request
#jira UE-55121
Change 3891407 by Rolando.Caloca
DR - vk - Set vendor id earlier
Change 3891417 by Rolando.Caloca
DR - vk - Missing layout transitions
Change 3891718 by Arne.Schober
DR - Do not recreate one Frame Resource for dynamic draws
#jira UE-55063
Change 3891925 by Yuriy.ODonnell
Fix/workaround for inconsistent preprocessor definitions for NVAftermath that result in FD3D11DynamicRHI class layout mismatch. NVAftermath support is now enabled by default for Win64.
NVAftermath is declared as a private dependency in D3D11RHI. It does not automatically propagate to modules that explicitly include private RHI headers (OculusHMD, OSVR, OSVRInput). This results in NV_AFTERMATH being defined while compiling RHI module and not defined when compiling other modules, causing memory corruption at runtime.
The long-term solution for this and similar issues requires some mechanism for adding transitive module dependencies, so that anyone that depends on D3D11RHI module would automatically also get the NVAftermath. Additionally, private headers should *never* be included directly by external modules.
The short-term solution is to explicitly add NVAftermath dependency to OculusHMD, OSVR and OSVRInput.
Additionally, NV_AFTERMATH is no longer forced by D3D11RHIPrivate.h when it's not defined. This allows catching this kind of mismatch in the future through a compiler warning (C4668).
#jira UE-53065
Change 3891987 by Rolando.Caloca
DR - vk - Support for dedicated allocations
Change 3892339 by Jian.Ru
Fix a crash when tessellation shaders are used in dx12
#jira UE-55127
Change 3892528 by Rolando.Caloca
DR - vk - Update Linux headers
Change 3892867 by Rolando.Caloca
DR - vk - Don't create swapchain if not needed
Change 3893416 by Guillaume.Abadie
Implements bokeh simmulation on foreground and background gather.
Change 3893732 by Chris.Bunner
GetRelevance_Internal should use the immediate parent resource, not the base, as some features are overridden by permutations e.g. UsesWorldPositionOffset.
#jira UE-53404
Change 3893868 by Guillaume.Abadie
Allocates diaphragm DOF's buffers and structered buffer only on supported platforms.
Change 3893917 by Chris.Bunner
Potential fix for CIS.
Change 3893933 by Chris.Bunner
Duplicating CL 2647737 as this is the same issue from that JIRA where accessing game-thread data was being prevented. We don't have this check in UMaterial::GetMaterialResource already, but presumably the UMaterialInstance case was never removed as we've not been calling it until now.
Change 3894218 by Rolando.Caloca
DR - vk - Remove stat counters per draw call, gains 10% CPU on Infiltrator
Change 3894579 by Arne.Schober
RT - Fix assert not in RenderingThread from Triangle Renderer.
#jira UE-55247
Change 3894724 by Rolando.Caloca
DR - vk - New API for batching barriers
Change 3894909 by Arne.Schober
DR - Fix crash in Speedtree wind where Renderdata is unavailable
#jira UE-54544
Change 3895414 by Rolando.Caloca
DR - Add a configurable threshold for SCWs time outs
Change 3896429 by Marcus.Wassmer
Allow variable frame-latency delay in FrameGrabber frames. For performance you want at least a 1 frame delay so you don't sync the GPU to the CPU.
Change 3896495 by Marcus.Wassmer
Set pointer properly
Fix CIS
Change 3897253 by Guillaume.Abadie
Fixes CIS warning in diaphragm DOF
Change 3899179 by Guillaume.Abadie
Implements background hybrid scatter occlusion for diaphragm DOF.
Change 3903654 by Rolando.Caloca
DR - vk - Rework dump layer to allow other layers
Change 3903766 by Rolando.Caloca
DR - vk - More wrappers
Change 3904025 by Rolando.Caloca
DR - vk - More wrappers
Change 3904342 by Rolando.Caloca
DR - vk - Track image resources & callstacks
Change 3904346 by Rolando.Caloca
DR - vk - Copy fix from 4.19 for flickering grass
Change 3904510 by Rolando.Caloca
DR - vk - Compile fix
Change 3904914 by Daniel.Wright
[Integrate] Fixed PS4 transitions with forward shading
Change 3904916 by Daniel.Wright
[Integrate] Fixed PS4 transitions with occlusion queries
Change 3905975 by Rolando.Caloca
DR - vk - Missing wrappers
Change 3905977 by Rolando.Caloca
DR - vk - Missed file
Change 3907829 by Rolando.Caloca
DR - Move depth bounds to the PSO
Change 3907832 by Rolando.Caloca
DR - vk - Prep for delaying transitions
Change 3907834 by Rolando.Caloca
DR - vk - Fix for depth stencil issues/validation errors
Change 3907967 by Rolando.Caloca
DR - vk - Linux compile
Change 3908093 by Rolando.Caloca
DR - vk - Fix depthstencil layout on descriptors
Change 3908393 by Rolando.Caloca
DR - vk - Disable dedicated allocation as it causes crashes on Nvidia 700 series
Change 3908401 by Rolando.Caloca
DR - Do transitions outside render pass
Change 3908422 by Rolando.Caloca
DR - vk - Fix transition state not getting stored
Change 3908735 by Guillaume.Abadie
Cherry-pick 3896619: Fixes after TAAU post process material that had wrong default buffer UV.
#jira UE-55317
Change 3908736 by Guillaume.Abadie
Cherry-pick 3891352: Fixes ensure when visualizing HDR with TAAU.
#jira UE-55019
Change 3908753 by Guillaume.Abadie
Lets the renderer layout the views in the internal render targets like it prefers.
Change 3909119 by Daniel.Wright
Fix some static analysis warnings
Change 3911943 by Rolando.Caloca
DR - vk - Fix for packaging Vulkan projects
Change 3912145 by Rolando.Caloca
DR - vk - Fix layout on streaming textures
Change 3913029 by Rolando.Caloca
DR - Fix missing transition
Change 3913048 by Rolando.Caloca
DR - Fix for hlslcc
Change 3913054 by Rolando.Caloca
DR - vk - Fix number of layers on barrier
Change 3913171 by Rolando.Caloca
DR - vk - Fix for decal missing transition
Change 3913211 by Rolando.Caloca
DR - vk - Add debug name to image tracking
Change 3913449 by Rolando.Caloca
DR - vk - Restore transition
Change 3913466 by Rolando.Caloca
DR - Fix Vulkan EngineTest
Change 3913537 by Rolando.Caloca
DR - vk - Fixes independent samplers & textures (contributed by AMD)
Change 3913548 by Rolando.Caloca
DR - vk - Warning fix
Change 3913691 by Rolando.Caloca
DR - vk - Fixes for parallel (wip)
Change 3914656 by Rolando.Caloca
DR - vk - Fix bug when using separate samplerstates and textures
Change 3914730 by Rolando.Caloca
DR - vk - Bump version
Change 3914764 by Rolando.Caloca
DR - vk - Don't crash on exit
Change 3915532 by Rolando.Caloca
DR - vk - Parallel context fixes
Change 3915589 by Rolando.Caloca
DR - vk - Hoist and rename transition and layout manager class out of the context
Change 3915592 by Rolando.Caloca
DR - Fix gpu marker name
Change 3917607 by Rolando.Caloca
DR - vk - Fix depth bounds on Vulkan
Change 3917609 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3917616 by Rolando.Caloca
DR - Fix D3D11 initialization
Change 3920569 by Rolando.Caloca
DR - vk - Prep for layout mgr refactor
Change 3921023 by Rolando.Caloca
DR - vk - Dump layer fixes
Change 3921623 by Rolando.Caloca
DR - vk - Prep refactor for layouts
- Dump now shows marker tree
Change 3922007 by Rolando.Caloca
DR - vk - Fix extra allocation per draw call
Change 3922442 by Rolando.Caloca
DR - vk - Detect potential issues
Change 3922470 by Rolando.Caloca
DR - vk - Minor optimization
Change 3922482 by Rolando.Caloca
DR - vk - More minor optimizations
Change 3923158 by Rolando.Caloca
DR - Move r.DisableEngineAndAppRegistration out to common RHI and use it on Vulkan
Change 3923486 by Rolando.Caloca
DR - vk - Minor cpu optimizations
Change 3923505 by Rolando.Caloca
DR - vk - Use bigger allocations for uniform buffers
Change 3923516 by Rolando.Caloca
DR - vk - Android compile fix
Change 3923557 by Rolando.Caloca
DR - vk - Cache descriptorset layouts, refactor duplicated code
Change 3923851 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3924153 by Rolando.Caloca
DR - vk - Support for dynamic UBs
Change 3924193 by Rolando.Caloca
DR - vk - Remove old per pso descriptor pools
Change 3924197 by Rolando.Caloca
DR - vk - Remove unused global uniform buffer pool
Change 3924220 by Rolando.Caloca
DR - vk - Wrap some unused classes in their define
Change 3924234 by Rolando.Caloca
DR - vk - Show ring buffer wrapping messages
Change 3924243 by Rolando.Caloca
DR - vk - Fix bad dynamic buffer
Change 3924902 by Rolando.Caloca
DR - vk - Fix crash running infiltrator
Change 3925209 by Rolando.Caloca
DR - vk - Fix bug with dynamic buffers
- Remove old defines
Change 3925300 by Rolando.Caloca
DR - vk - Allow packed uniforms as dynamic UBs (with r.Vulkan.DynamicGlobalUBs)
Change 3925627 by Rolando.Caloca
DR - vk - Move DynamicOffsets into the pipeline state
Change 3925834 by Rolando.Caloca
DR - vk - Cache per stage information
Change 3925835 by Daniel.Wright
Fixed DisplayName for UParticleModuleCollisionGPU
Change 3925897 by Rolando.Caloca
DR - vk - Split update descriptors loop
Change 3926488 by Rolando.Caloca
DR - vk - 16MB for ring buffer on desktop, 8 MB for mobile
Change 3928168 by Guillaume.Abadie
Cherry-pick 3917219: Implements r.DOF.RecombineQuality
Change 3928173 by Guillaume.Abadie
Cherry-pick 3927888: Enables r.DOF.HybridScatter.BackgroundCompositing and r.DOF.HybridScatter.ForegroundCompositing to work when both enabled.
Change 3928216 by Rolando.Caloca
DR - vk - Fix Android
- Fix static analysis
Change 3929119 by Rolando.Caloca
DR - vk - Rename some classes for clarity
- Fix read-only cvar
Change 3929151 by Rolando.Caloca
DR - vk - Rename class
Change 3930046 by Rolando.Caloca
DR - Temp fix Vulkan flickering grass
Change 3930148 by Rolando.Caloca
DR - vk - Only update dirty descriptors
- Use dynamic descriptors for packed global uniform buffers
Change 3930998 by Guillaume.Abadie
Packs shader permutation in different XGE submissions.
Change 3931079 by Rolando.Caloca
DR - vk - Fixes for Android and non-real ubs platforms
Change 3931942 by Krzysztof.Narkowicz
Depth rendering - When EarlyZPassMode is set to DDM_AllOccluders, dynamic objects need also to test bUseAsOccluder just like static ones
#jira none
Change 3932819 by Daniel.Wright
[Integrate] Scene Textures uniform buffer
* Base Pass Uniform Buffer now contains a Scene Textures uniform buffer. Previously the translucent base pass had to check ~40 loose scene texture parameters every draw.
* FMeshMaterialShader's must now bind PassUniformBuffer and supply a valid pass uniform buffer. For most passes this is just FSceneTextureUniformParameters.
* FRendererModule::DrawTileMesh can now cleanly set dummy scene texture resources, just by configuring how the pass uniform buffer is created.
* Moved scene texture shader functions out of Common, into SceneTexturesCommon which must be manually included by shaders that want to use them
* Separate Mobile Scene Textures uniform buffer to silo the platform complexities
Moved DBuffer inputs out of FDeferredPixelShaderParameters and into FOpaqueBasePassUniformParameters
Removed per-frame material uniform expressions. GameTime material node with period is now implemented with an fmod in the shader, without the use of MaterialFloat, so that it will happen at full precision.
* Per-frame expressions were used when the GameTime material node had a period, to do the fmod on the CPU where 32 bit precision is guaranteed, for mobile GPU's where pixel shader precision is sometimes less than 32fp.
Moved forward shading data into the Base Pass Uniform Buffer
Removed instanced stereo support for the light cull grid - will have to be reimplemented without changing SRV's per draw
Base pass sets View Uniform Buffer from DrawRenderState instead of choosing which one to set per-draw
Fixed padding in nested uniform buffer structs
Skip SRV members on Feature Level SM4 and below
Change 3932964 by Rolando.Caloca
DR - vk - Renderdoc on Android
Change 3933095 by Daniel.Wright
Moved FSceneTextureUniformParameters out of the opaque base pass uniform buffer.
* Base Pass shaders now enable SCENE_TEXTURES_DISABLED when compiling for a material of any domain other than MD_Surface. These are used when rendering thumbnails of a material in a different domain, which could be opaque, but the opaque base pass drawing policy does not bind a scene textures uniform buffer, so the shader must not bind it.
* Opaque materials can no longer use EyeAdaptation.
Change 3933096 by Daniel.Wright
Better d3d11 assert message when a uniform buffer was not set by the renderer
Change 3933176 by Rolando.Caloca
DR - vk - Prefer mailbox if available
Change 3933271 by Ryan.Vance
#jira UE-55936
Fixed missing referenced uniform bindings on AR pass-through camera shaders.
Change 3934000 by Guillaume.Abadie
Fixes Win32 build in ShaderCompilerXGE.cpp
Change 3934299 by Guillaume.Abadie
Fixes a bug in DOF's reduce operator that was casusing color leaking between background and foreground.
Change 3934699 by Daniel.Wright
Added bAffectDistanceFieldLighting to landscape
Change 3935190 by Daniel.Wright
Forward Light Grid SRV's use StructuredBuffer on Metal, instead of 'invariant Buffer', which throws off RemoveUniformBuffersFromSource parsing
Change 3935606 by Daniel.Wright
Removed LightmapPolicy::Set which was needed for vertex lightmaps
Renamed FVertexFactory::Set to SetStreams to make it findable
Change 3936510 by Rolando.Caloca
DR - vk - Update glslangValidator.exe to 1.0.65.1 for dumped debug SPIRV shaders
Change 3936545 by Richard.Wallis
Clone of CL's (3925763, 3925430, 3925424, 3925385, 3925278) Mark Satt's Xcode fixes from task stream //Tasks/UE4/Dev-UERNDR-354-mtlpp/
Plus XCode 9.2 compile fix in ApplicationPlatformCompilerPreSetup.h for -Wunused-lambda-capture.
Change 3938061 by Daniel.Wright
Vulkan: Added support for SRV's in Uniform Buffers
Change 3938123 by Daniel.Wright
Vulkan: Slightly better assert for null resources in uniform buffer
Change 3939197 by Rolando.Caloca
DR - vk - Disable custom memory mgmt
Change 3939677 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3939809 by Rolando.Caloca
DR - vk - Fixes for async compute
Change 3939875 by Rolando.Caloca
DR - vk - Support for -vktrace
Change 3939977 by Rolando.Caloca
DR - vk - Skip a condition during gather UBs
- Set up efficient compute async var
- Fix validation cmd line
Change 3939982 by Rolando.Caloca
DR - vk - Revert mipchain
Change 3939984 by Rolando.Caloca
DR - vk - Remove unnecessary asserts
Change 3940082 by Rolando.Caloca
DR - vk - Custom mem mgr
Change 3940475 by Rolando.Caloca
DR - vk - Fix DFAO (indirect draw offset)
Change 3940555 by Rolando.Caloca
DR - vk - Minor fixes
Change 3940675 by Rolando.Caloca
DR - vk - Fix indirect type mismatch
Change 3941111 by Rolando.Caloca
DR - Renderpass bGeneratingMips
Change 3941847 by Daniel.Wright
Fixed Volumetric Lightmaps on Static geometry only working if the geometry had been built with Surface Lightmaps before
Change 3941978 by Rolando.Caloca
DR - vk - Minor fixes for presenting on compute queue
Change 3942074 by Rolando.Caloca
DR - vk - Remove some RHI stalls
- Fixed swap chain stat
Change 3943946 by Daniel.Wright
Fixed Texcoord0 on Volume materials on a particle sprite, including SubUV particles.
Change 3944065 by Daniel.Wright
Fixed SceneDepth collision getting broken on GPU particles when a scene capture is rendering
Change 3944158 by Daniel.Wright
Fixed ViewUniformShaderParameters accessing GEngine->PreIntegratedSkinBRDFTexture too early during slate loading screen
Change 3944865 by Rolando.Caloca
DR - vk - Prep for render passes
Change 3945196 by Rolando.Caloca
DR - Move render pass validate to cpp
Change 3945202 by Rolando.Caloca
DR - vk - Some fixes for using real render passes
Change 3945357 by Rolando.Caloca
DR - Fix bad condition
Change 3946295 by Yuriy.ODonnell
Added a sentinel member to FLightMap, which is initialized in the ctor and reset in the dtor. Sentinel is then checked in FLightCacheInterface::GetLightMapInteraction().
This aims to shed some more light on a hard-to-repro crash, which is suspected to be a use-after-free bug: http://crashreporter/Buggs/Show/1785593
Change 3946407 by Rolando.Caloca
DR - vk - Prep for refactor
Change 3946648 by Rolando.Caloca
DR - vk - Fixes for async compute (wip)
Change 3947299 by Rolando.Caloca
DR - vk - FIx static analysis
Change 3948434 by Rolando.Caloca
DR - vk - Fix exiting with parallel
Change 3948928 by Rolando.Caloca
DR - vk - Fix enabling draw markers for tools
Change 3949021 by Rolando.Caloca
DR - vk - Buffer tracking layer
Change 3949602 by Rolando.Caloca
DR - vk - static analysis fix
Change 3949757 by Rolando.Caloca
DR - vk - Remove bogus parameter
Change 3949810 by Rolando.Caloca
DR - vk - Move waits for cmd buffer
Change 3950270 by Guillaume.Abadie
Implements dedicated gather pass for foreground hole filling to avoid being VGPR bound in foreground gather pass, but still being hable to amend foreground.
Change 3950272 by Rolando.Caloca
DR - vk - Minor refactor for semaphores
Change 3950279 by Guillaume.Abadie
Oups... fixes build
Change 3950298 by Rolando.Caloca
DR - vk - Gather wait semaphores in the cmd buffers
Change 3950371 by Rolando.Caloca
DR - vk - fixes for async compute
Change 3950597 by Rolando.Caloca
DR - vk - Fix for clip distance (fixes planar reflections)
Change 3951075 by Rolando.Caloca
DR - vk - Fix for async compute
Change 3952524 by Guillaume.Abadie
Some DOF enum refactoring.
Change 3955016 by Daniel.Wright
Fixed BuiltData package getting renamed into the map package during a content browser folder move, causing a redirector to be incorrectly placed in the map package
Change 3955668 by Guillaume.Abadie
Fixes a bug where full res coc buffer was computed even if not doing slight out of focus.
Change 3956722 by Guillaume.Abadie
Fixes a bug where r.DOF.MaximalForegroundBlurringRadius was screen percentage dependent.
Change 3959212 by Guillaume.Abadie
Prefixes all DOF's shaders files with DOF keyword.
Change 3959705 by Guillaume.Abadie
Optimises the DOF setup pass outputing half res and full res with LDS downsample.
Change 3959941 by Guillaume.Abadie
Halfs DOF's hybrid scatter compilation by using a unique downsampling for both foreground and background, instead of 2 reduce passes.
Change 3962273 by Rolando.Caloca
DR - Fix typos
#jira UE-56317
PR #4586
Change 3962615 by Rolando.Caloca
DR - vk - Compile fix
Change 3962949 by Rolando.Caloca
DR - Fix DOFDownsample extension
Change 3962993 by Guillaume.Abadie
Back out changelist 3962949
Change 3963016 by Guillaume.Abadie
Adds missing DOFDownsample.usf
Change 3963041 by Rolando.Caloca
DR - vk - Misc changes to help integrate
Change 3964293 by Guillaume.Abadie
Fixes DOF's setup pass reading outside of the viewport.
Change 3964475 by Guillaume.Abadie
Collapses DOF's hybrid scatter compilation passes into reduce passes.
Change 3964883 by Daniel.Wright
Fixed 3d texture in uniform buffer on unsupporting RHI
Change 3964897 by Rolando.Caloca
DR - Compile fixes
Change 3964914 by Guillaume.Abadie
Fixes a bug on r.DOF.RecombineQuality=0
Change 3965153 by Guillaume.Abadie
Fixes compile warning in D3D12Commands.cpp.
Change 3965814 by Rolando.Caloca
DR - Prep for integration conflict resolve
Change 3965899 by Rolando.Caloca
DR - Fix odd linkage issue
Change 3966072 by Rolando.Caloca
DR - More prep for merge
Change 3966163 by Rolando.Caloca
DR - Merge prep
Change 3966844 by Guillaume.Abadie
Packs multiple DOF scattered bokeh per instance and uses PT_RectList in DOF for platforms that can.
Change 3967116 by Rolando.Caloca
DR - Compile fixes for integration
Change 3967273 by Rolando.Caloca
DR - Use same path for mip generation
Change 3967277 by Rolando.Caloca
DR - vk - Fix mips on cubemaps
Change 3967693 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, missing shaders
Change 3967851 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, Engine 2/2
Change 3968083 by Rolando.Caloca
DR - Integration compile fixes
Change 3968240 by Rolando.Caloca
DR - Shader compile fixes for integration
Change 3968270 by Rolando.Caloca
DR - Fix for missing hash calculation
Change 3969426 by Rolando.Caloca
DR - vk - Fix warning
Change 3969869 by Krzysztof.Narkowicz
Back out changelist 3946295 - UE-54537 is fixed, so no need for this debug sentinel.
#jira none
Change 3969944 by Rolando.Caloca
DR - Warning fix
Change 3970020 by Rolando.Caloca
DR - Bump after integration
Change 3970052 by Rolando.Caloca
DR - Fix for mobile
Change 3970236 by Daniel.Wright
Causing decal shader to recompile to fix a merge bug
Change 3970270 by Daniel.Wright
Bump shader version from merge
Change 3970339 by Olaf.Piesche
Replace series of locks/unlocks with a single one for curve injection
#tests QAGame
Change 3970390 by Rolando.Caloca
DR - Rename FSceneTextureUniformParameters to FSceneTexturesUniformParameters
- Remove duplicate method for occlusion queries
Change 3970523 by Rolando.Caloca
DR - Fix serialization of shaders
Change 3970533 by Arne.Schober
DR - fix for removing the Speed tree wind when the scene gets deleted. The original enque rendercommand requeues the element onto the renderthread although the call already came from the Renderthread and the scene can get lost in between.
#jira UE-56322
Change 3971160 by Guillaume.Abadie
Fixes CompositeEditorPrimtive pass and SelectionOutline pass for VR editor to work with TAAU.
Change 3971516 by Guillaume.Abadie
Cherry-pick 3912629: Fixes SSR that was computing vigneting according to PrevScreen that could let some outside viewport samples going through when rotating the camera.
#jira UE-55353
Change 3971594 by Krzysztof.Narkowicz
Fixed assert inside BindLightMapVertexBuffer. FSplineMeshSceneProxy was calling BindLightMapVertexBuffer for invalid (still not generated) lightmap UV channel after mesh reimport. Simplified assert, as at the moment almost all of the high callsites already clamp lightmap uv channel.
#jira UE-56321
Change 3971622 by Krzysztof.Narkowicz
Fixed crash inside Indirect Lighting Cache. Data (reflection captures and lightmap) generation calls ULevel::GetOrCreateMapBuildData(), which can destroy lightmap data if level has legacy data. Last Lightmap generation step recreates this data, but if user cancels lightmap generation - it won't do that.
#jira UE-56171
Change 3974788 by Rolando.Caloca
DR - Remove GSupportsGenerateMips
Change 3974789 by Rolando.Caloca
DR - Remove bogus function
Change 3974986 by Rolando.Caloca
DR - vk - Tracking fixes
Change 3974989 by Rolando.Caloca
DR - vk - Don't submit dummy barriers
Change 3975075 by Olaf.Piesche
Update for particle curve injection improvement, fixing ES2 problems
#tests QAGame tm-shadermodels, various color curve tests in-editor
Change 3975957 by Uriel.Doyon
Fixed invalid max texture resolution when using the bake material tools.
Change 3978471 by Daniel.Wright
New cvar r.SkylightUpdateEveryFrame
Change 3978779 by Rolando.Caloca
DR - Accessor for texture sizes
Change 3978797 by Rolando.Caloca
DR - Clean up RHI CopyTexture API
Change 3978832 by Rolando.Caloca
DR - vk - Workaround for RenderDoc crashing due to Descriptor Pool reset
Change 3978836 by Rolando.Caloca
DR - vk - Remove generate mips
Change 3979201 by Rolando.Caloca
DR - vk - RHI CopyTexture. Uses general layout for generating mips
Change 3979204 by Rolando.Caloca
DR - Use render passes and CopyTexture to generate mips
Change 3979592 by Rolando.Caloca
DR - Warning fix
Change 3980855 by Krzysztof.Narkowicz
Optimize bounding sphere radius after non-uniform scale by using bounding box extent.
#jira UE-56227
Change 3981065 by Rolando.Caloca
DR - vk - Fix bad layout
#jira UE-56238
Change 3981346 by Rolando.Caloca
DR - Copy from 3707257
Support for not flushing compute jobs (r.D3D11.UAVFlushNV)
Change 3981347 by Rolando.Caloca
DR - Copy from 3707257
Don't flush between morph dispatched
Change 3981932 by Mark.Satterthwaite
Generate the shader hash and function name when a Metal shader error needs to be reported so that even without shader code we get something to go on.
Change 3982442 by Rolando.Caloca
DR - Fix warning
Change 3982652 by Rolando.Caloca
DR - vk - Signal semaphore cleanup
Change 3983917 by Richard.Wallis
Clone of CL 3974146 converted for mtlpp along with extra mtlpp usage suggestions by Mark Satt:
Fix for black flickering on first paint with weighted material landscape on Mac. When using AsyncCopyFromBufferToTexture in Metal we put the blit operation on the prologue encoder - however after a draw call using that resource the copy operation should happen after on the current encoder, this keeps the correct order of operations.
Added Bool return from various Asnyc renderpass resource requests so caller can decide correct further action. Updated to include the other async functions.
Change 3984409 by Guillaume.Abadie
Attempts to make static analysis happy again.
Change 3984435 by Nick.Bullard
Checking in Performance Test level provided to us by Tor Frick based on UE-44841.
This has been utilized for checking issues against Aftermath performance impact.
The Map includes 2 Level Book marks, most testing has been done against Bookmark 1 view, in fullscreen, in game mode
Change 3985087 by Mark.Satterthwaite
Make sure that the particle scratch buffer is large enough to hold all the data for the curve texture we are rendering to, otherwise a full set of curves will start scribbling memory after 64Kb (the curve texture is 256Kb of data - 512x512x4 as sizeof(RGBAUInt8) == 4). This happens in ElementalDemo.
Change 3985201 by Rolando.Caloca
DR - Fix bad CopyTexture
Change 3985258 by Mark.Satterthwaite
Try and detect orientation changes so that we don't blow-up on iOS due to a huge mismatch between the drawable texture for the display and the scene's depth-stencil target. I can't just fiddle with the depth-stencil texture itself without running the risk of obliterating in-use data and really we shouldn't permit such a mismatch anyway but it is fallout from 3620990.
#jira UE-55756
Change 3986449 by Rolando.Caloca
DR - vk - Update & consolidate Vulkan headers to 1.1.70.1
Consolidate SDK into one
Change 3986571 by Guillaume.Abadie
Makes PVS-Studio happy again in DOF.
Change 3987039 by Yuriy.ODonnell
Initial implementation of tracing profiler to show CPU and multiple GPUs on the same timeline. Currently only supported on DX12 platforms.
Use `TracingProfiler frames=N` console command to trigger a capture of the next N frames. Trace is saved to disk as a JSON file into `Saved/Profiling/Traces` directory.
Trace file uses Google Tracing format and can be visualized in Chrome built-in profiler (chrome://tracing).
`r.GPUStatsChildTimesIncluded=1` CVar makes timing scopes hierarchical.
`TracingProfiler.BufferSize=N` CVar controls the size of the tracing buffer, which may need to be increased for long traces (default is 65k events). Only can be set at startup.
Change 3987074 by Yuriy.ODonnell
Implemented timestamp calibration on DX11. Calibration is only performed when tracing profiler session starts.
Change 3987160 by Yuriy.ODonnell
Added thread naming and ordering to the tracing profiler output
Change 3987331 by Mark.Satterthwaite
Remove the Nvidia hack to retain resource references in command-buffers for UE-46604 as the mtlpp refactor provides stronger resource lifetime guarantees.
#jira UE-46604
Change 3987754 by Mark.Satterthwaite
Fix MetalRHI memory reporting in non-default path.
PR #4568
Change 3988184 by Arciel.Rekman
Linux: Fix editor OpenGL performance (UE-55960).
- GetCurrentThreadId() calls became much more frequent with the OpenGL RHIT refactor.
- We used to only cache that value in monolithic builds, because having per-thread static variables in dynamic libraries is risky due to OS limits.
- This change adds dynamically-managed per-thread cache for non-monolithic builds.
#jira UE-55960
Change 3988394 by Rolando.Caloca
DR - vk - Improve memory mgmt
- Use 256MB pages for Device heap (or 1/8th if less).
- Remove texture allocations not going through resource manager
Change 3988405 by Marcin.Undak
Fix VulkanQuery crash on exit #codereview rolando.caloca #codereview arciel.rekman #rb arciel.rekman
Change 3988567 by Rolando.Caloca
DR - vk - Support for packed global UBs on pci aperture heap
Change 3988668 by Rolando.Caloca
DR - vk - Remove old comments
Change 3988956 by Marcin.Undak
RecordPerformance: added option to skip building/cooking before tests #rb none #codereview arciel.rekman
Change 3989161 by Yuriy.ODonnell
Static analysis error fix
Change 3989196 by Guillaume.Abadie
Fixes a crash in light shaft's TAA pass.
#jira UE-57366
Change 3989207 by Yuriy.ODonnell
Refactored FRealtimeGPUProfilerFrame to avoid splitting profile events when calculating exclusive times of scopes. This allows tracing profiler to retain the hierarchical view of the data, while keeping CSV and GPU Stat system behavior intact.
Change 3989469 by Rolando.Caloca
DR - vk - Fix for bad index; fix for bad transition
Change 3989772 by Yuriy.ODonnell
Implemented timestamp calibration on Vulkan
Change 3990040 by Marcus.Wassmer
Aftermath enabled by default.
Removed unnecessary warning for other vendors
Change 3990064 by Mark.Satterthwaite
Ensure that packed globals are reuploaded when the command-encoder is restarted - don't simply invalidate the existing parameters. This properly handles cases where a single logical render-pass is broken into multiple command-encoders and/or command-buffers - otherwise all shaders must reset all parameters each time. When we move between frames we *do* want to perform a full state reset though as previous frame globals are treated as invalid.
Change 3990080 by Mark.Satterthwaite
Change the way we invalidate the visibility buffer between command-buffers and command-encoders so that on iOS you can reuse the same buffer within the same command-buffer, but not across more than one. The code provides an exception to this rule when running under the MetalRHI validation tools which can break each draw call into its own buffer.
Change 3990084 by Mark.Satterthwaite
Get MetalStatistics compiling again.
Change 3990381 by Arciel.Rekman
Bring back D3D12 in RecordPerformance.
Change 3991113 by Rolando.Caloca
DR - Fix crash on RHI thread on mobile preview
- Check RHI objects are not null in the PSO initializer
Change 3991191 by Ryan.Vance
#jira UE-55952
Reimplemented instanced stereo for forward lighting cull grid after the srv/ub clean up.
Change 3991343 by Rolando.Caloca
DR - Copy from 3911492
UE4 - Disabled parallel mobile bass pass by default. This is experiemental and not known to be useful on any mobile platform.
Change 3991375 by Mark.Satterthwaite
Proper copyright assignment in the mtlpp debugger header.
Change 3993151 by Daniel.Wright
Fix RTDF resource transition found by Rolando
Change 3993818 by Rolando.Caloca
DR - Missed file
Change 3993923 by Krzysztof.Narkowicz
Fixed crashes inside RemoveSpeedTreeWind() and RemoveSpeedTreeWind_RenderThread().
FStaticMeshComponentRecreateRenderStateContext didn't flush deferred render updates causing stale RenderData to be left:
1. Thumbnail manager called SetStaticMesh(nullptr), which added StaticMeshComponent to deferred render updates.
2. UStaticMesh::Build called FStaticMeshComponentRecreateRenderStateContext and destroyed DenderData, but didn't touch Thumbnail's manager StaticMeshComponent as it was nullptr.
3. This resulted in a StaticMeshComponent with stale RenderData pointer.
#jira UE-54544
Change 3994033 by Rolando.Caloca
DR - vk - Reworked layers & extensions, as we were not doing it properly
- Remove -vulkanstandardvalidation and -novulkanstandardvalidation as they are not needed anymore
Change 3994275 by Mark.Satterthwaite
Change to linking against mtlpp via AddEngineThirdPartyPrivateStaticDependencies and marking its header with THIRD_PARTY_* macros in the vain hope that might convince the remote compilation code to distribute the module to the remote machine when building MetalRHI.
#jira UE-57507
Change 3994365 by Mark.Satterthwaite
Pilfer some code from the old MetalHeap file to handle calculating texture memory size on older macOS and iOS builds when running with stats or LLM enabled.
#jira UE-57513
Change 3994382 by Rolando.Caloca
DR - vk - Some missing locks during image tracking
Change 3994422 by Rolando.Caloca
DR - vk - Remove bogus shader format
Change 3995530 by Rolando.Caloca
DR - vk - Fix for crash when validation is enabled
Change 3995531 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3995532 by Rolando.Caloca
DR - vk - Added support for r.Vulkan.SaveValidationCache
Change 3995610 by Uriel.Doyon
Texture Streaming Changes and Fixes:
- Using the small FOV items (like scopes) now only affect visible primitives (through "r.Streaming.MaxHiddenPrimitiveViewBoost").
- Static components added after the level is registered in the streaming manager are now handled correctly (fixes the low quality on the chests)
- Dynamic components do not need to register to the streaming manager anymore.
- Optimized dynamic component management by removing duplicate entries in the update list.
- Added a pregarbage collect pass to the dynamic component management to optimize GC handling.
- Added a budget reset logic whenever the scene requirements change significantly.
- PIE worlds now have correct visibility information.
- Fixed possible invalid memory access when processing the streaming manager slave views.
- Refactored the incremental level texture data build to prevent new components from being unhandled.
- Removed StreamingManager callbacks for NotifyActorSpawned() and NotifyPrimitiveAttached()
- Added a StreamingManager callback NotifyPrimitiveUpdated(), to be used whenever a primitive streaming state must be updated.
#jira none
Change 3995908 by Arciel.Rekman
Fix compile errors when using new Vulkan queries.
Change 3995990 by Arciel.Rekman
More compile fixes to new Vulkan queries.
- MSVC did not catch this, clang did.
Change 3996101 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3996323 by Mark.Satterthwaite
Use the right include path to export the mtlpp headers.
#jira UE-57507
Change 3996392 by Arciel.Rekman
Vulkan: fix crash on start when using new queries.
- CommandBufferManager was not yet set at that point and the code in queries relied on it.
Change 3996585 by Rolando.Caloca
DR - Slight improvement to GL being black, but just a temporary 'workaround' as it's not correct.
Change 3998806 by Arciel.Rekman
Fix Linux build (UE-57602).
#jira UE-57602
Change 3998866 by Arciel.Rekman
SubwaySequencer: fix old shader platform name.
Change 3998947 by Mark.Satterthwaite
Silence deprecation warnings in CEF on macOS now that we've moved to 10.12 as the minimum.
#jira UE-57577
Change 3998951 by Mark.Satterthwaite
Fix last of the deprecation errors that I am aware of for macOS 10.12.
#jira UE-57581
Change 3998984 by Mark.Satterthwaite
Build mtlpp for iOS 9.0 not 9.3.
#jira UE-57586
Change 3999065 by Rolando.Caloca
DR - vk - Make sure we use version 1.0.0
#jira UE-57521
Change 3999071 by Arne.Schober
DR - [UE-55433, UE-57361] Hack SNORM support in OpenGL by re-interpreting UNORM. Underlying data is always SNORM.
#jira UE-55433, UE-57361
Change 3999494 by Rolando.Caloca
DR - Enable r.UnbindResourcesBetweenDrawsInDX11 in debug
- Clear compute resources when r.UnbindResourcesBetweenDrawsInDX11 is enabled
Change 4000197 by Krzysztof.Narkowicz
Mesh simplifier - normalize TexCoordWeights using min/max TexCoord range. This fixes precision issues for very big TexCoord values and allows to optimize for all TexCoord channels when channels have values of different magnitudes (e.g. non standard TexCoord data).
#jira UE-54935
Change 4000305 by Yuriy.ODonnell
Suppress PVS Studio warning V547 (Expression is always true) related to Aftermath
Reported issue to PVS team and to NVIDIA. Confirmed false positive, fix coming in future PVS version (v6.24).
#jira UE-57579
Change 4000853 by Arciel.Rekman
Linux: fix not calling CrashReportClient (UE-57678).
#jira UE-57678
Change 4001504 by Rolando.Caloca
DR - vk - Fix transition
Change 4002460 by Krzysztof.Narkowicz
Toggle for contant shadow length in word space
Exposed contact shadows to Blueprints
#jira none
Change 4002608 by Rolando.Caloca
DR - vk - Fix static analysis
- Fix potential debug image tracking crash
- Comment out unused methods
Change 4002615 by Rolando.Caloca
DR - vk - Allow r.Vulkan.WaitForIdleOnSubmit to be set at startup (e.g. in ConsoleVariables.ini)
Previously, if your map needed to UpdateSkyCaptureContents on startup, an ensure would fail if GWaitForIdleOnSubmit was set.
PrepareForCPURead needs to wait for the command buffer to finish before trying to read the results back, but the wait has already happened when r.Vulkan.WaitForIdleOnSubmit is set. Trying to wait again correctly complains that the command buffer is not in the correct state. So, skip the WaitForCmdBuffer call when r.Vulkan.WaitForIdleOnSubmit is set.
Change 4002640 by Rolando.Caloca
DR - vk - Missing support for CVarDefaultBackBufferPixelFormat
Change 4002919 by Guillaume.Abadie
Implements DOF's temporal upsampling pass for better dynamic resolution stability.
Change 4002984 by Guillaume.Abadie
Integrates Sebastian Aaltonen's ALU optimisations for TAAU.
Change 4003112 by Olaf.Piesche
Fir for TBB stall (resulting in severe hitches and hangs in the editor with stats active); tested multiple scenarios and encountered no hitches.
#tests QAGame PerformanceTest and RenderTest map with various stats on and off
Change 4003159 by Mark.Satterthwaite
Undo parts of changelist 3970553 - the ref-counted pointer approach to returning textures to the pool is not working as expected so we'll remove that. It'll be faster on the CPU without it and everything works thanks to the changes this CL made to the way textures were released.
#jira UE-57538
Change 4003287 by zachary.wilson
Adding reflection capture content to TM-LightingScenarios
Change 4003395 by Arne.Schober
DR - Fix unitzialised value when clicking Go To in the editor
#jira UE-57048
Change 4003425 by Rolando.Caloca
DR - vk - Fix for new occlusion queries
Change 4003530 by Arne.Schober
DR - Disable GPU Benchmark in headless configurations
#jira UE-57673
Change 4003717 by Rolando.Caloca
DR - vk - Fix for depth not store, stencil store
Change 4003719 by Rolando.Caloca
DR - Minor switch to render pass
Change 4003720 by Mark.Satterthwaite
Don't suballocate private memory buffers on Vega and only Vega as there is something wrong with the blits in those cases but I can't capture a GPU trace to find out what right now (the driver is broken) - could be a bug in my code but this works on Polaris and Nvidia so it will need to be filed as a radar for AMD.
Remove the FMetalBufferChunk from FMetalBuffer and simply store a pointer to the owning Heap/Magazine allocator. The FMetalResourceHeap now calls a new Release function to return the buffer to the allocator which will be faster on the CPU.
#jira UE-57659
Change 4003854 by Mark.Satterthwaite
Undo parts of 3990064 and try a different approach to get the uniforms to upload and remain available in the right places. As the original bug has been lost to time we should keep an eye out for missing buffer bindings by running under the Metal validation layer periodically.
#jira UE-57576
Change 4004709 by Rolando.Caloca
DR - Support for D3D 11, 12 & Vulkan for UAVs off Index Buffers
Change 4005149 by Guillaume.Abadie
Adds shader permutation to avoid clamping input buffer UV in DOF's gather pass.
Change 4005284 by Uriel.Doyon
Resaved volume texture assets with proper engine version.
#jira UE-57534
Change 4005286 by Guillaume.Abadie
Reduces constant setup in DOF's gather pass.
Change 4005359 by Rolando.Caloca
DR - vk - Fix annoying warning
Change 4005363 by Rolando.Caloca
DR - Fix android not finding vulkan shaders
Change 4005457 by Rolando.Caloca
DR - vk - Fix swapchain crash
Change 4005473 by Patrick.Kelly
UE-57135: Editor crash if set Reflection Capture Resolution to be 64 and New a Default level
Codde by Daniel
Tested by Patrick
Change 4005474 by Rolando.Caloca
DR - vk - Remove glsl code from shaders. Packaged QAGame goes from 176MB to 162MB
Change 4005759 by Krzysztof.Narkowicz
Fixed a bug, where reflection capture build is called, even though we are in mobile preview mode.
#jira UE-57743
Change 4005774 by Mark.Satterthwaite
Update the wave intrinsics to avoid implicit bool->uint conversion that Apple don't like.
#jira UE-57750
Change 4005974 by Mark.Satterthwaite
Don't use cubemap array types on iOS Metal as they aren't available on all devices and we need to maintain backward compatibiliy for years to come.
#jira UE-57083
Change 4006056 by Mark.Satterthwaite
Remove the use of the PrimitiveType argument from Metal draw calls.
#jira UE-57822
Change 4006139 by Mark.Satterthwaite
- Move the render-pass functions into the MetalRHI implementation for later alteration.
- Implement Index buffer UAVs for Metal - makes them more like vertex-buffers so this is one more step on the road to a unified buffer base-class implementation.
Change 4006215 by Mark.Satterthwaite
Metal's begin & end render/compute pass API implementation will take some time, but for now make it not depend on the parent stub implementation.
Change 4006394 by Mark.Satterthwaite
In lieu of a real instruction count just use the number of lines in the "Main" function of the shader as the instruction count for Metal.
#jira UE-57551
Change 4006493 by Mark.Satterthwaite
MetalRHI can currently support 4-component formats for Buffer UAVs - this might need some thought in the future as the API evolves but we might as well take advantage while we can.
Change 4006495 by Daniel.Wright
Integrate from Refactor branch
* New FMaterialRenderProxy function GetMaterialWithFallback which provides both the FMaterialRenderProxy and FMaterial. Needed when falling back to default material, so that proxy and material resource match.
* Local vertex factory uniform buffer
Change 4006851 by Brian.Karis
Fix for joined charts forming an L to inflate both axii.
Thanks to Jess Kube of The Coalition.
Change 4006852 by Brian.Karis
Fix for hard coded reflection capture cube map size. Should fix light static light aliasing in captures
Change 4006918 by Brian.Karis
New ByteBuffer functionality. Memcpy and scatter upload. Can implement GPU side TArray reflection.
Not yet used by checked in code. WIP optimization.
Change 4007246 by Guillaume.Abadie
Creates lower quality permutation for DOF's gathering pass, without Coc based weighting of the samples, and lower number of gathering ring for fast accumulator.
Change 4007291 by Guillaume.Abadie
Exposes more DOF scalability settings.
Change 4007328 by Guillaume.Abadie
Optimises DOF's half res only setup pass using gather4
Change 4007627 by Richard.Wallis
Fix for when Magic Mouse cannot zoom in World Composition editor. Missing default SNodePanel::OnMouseMove behaviour. Tested using a classic 2xbutton + wheel mouse and a Mac MagicMouse.
#jira UE-57030
Change 4007682 by Richard.Wallis
No video when playing HLS streaming video on Mac. 2 Issues, FPS was zero making duration for video sample buffer nonsense and Video Track dimensions were going to zero on the AVAsset once fully initialized when playing HSL streams. Now cache relevant details and handle zero frame rate.
Notes:
- Caching the frame rate is not as important as we could look it up each time and fix for zero - ignoring that at the moment.
- Assume we DO NOT want the FrameSize to be the last fetched video frame size from the AvfMediaVideoSampler as I think that is the video quality for streaming video and not the media frame size.
- Renamed a variable in the AvfMediaVideoSample - was called FrameRate but it was the FrameDuration by that point.
#jira UE-56734
Change 4007731 by Rolando.Caloca
DR - Disable byte buffers on non-hlsl based platforms
#jira UE-57851
Change 4007741 by Rolando.Caloca
DR - Disable byte buffers on hlslcc platforms
Change 4007782 by Mark.Satterthwaite
Force Metal shaders, including the stdlib, to recompile.
Change 4007918 by Rolando.Caloca
DR - vk - Some static asserts
Change 4008404 by Arciel.Rekman
Do not crash on incompatible Vulkan drivers (UE-57521).
#jira UE-57521
Change 4008442 by Daniel.Wright
Better comments on ERHIFeatureLevel expectations
Change 4008494 by Arne.Schober
DR - moved bDeletedThroughDeferredCleanup before begincleanup to catch cases where the reference is added twice to the array. also removed finishcleanup as all they ever did was deleting the pointer anyway, and it sould be adfded if such functionallity is ever required fom outside of the regular destructor.
#jira UE-57754
Change 4008730 by Mark.Satterthwaite
After the most recent changes to handling uniform buffer dirty bits in MetalRHI we should guard against attempts to set an unbound uniform buffer.
#jira UE-57870
Change 4008949 by Brian.Karis
Fix compile warning
Change 4008951 by Brian.Karis
Added LTC LUT textures
Change 4009326 by Guillaume.Abadie
Compiles out DOF's gathering bokeh simulation on platform other than desktop.
Change 4009380 by Krzysztof.Narkowicz
Moved area light code before the contact shadows, so contact shadows use representative light's direction.
Merged all contact shadows shader code.
Contact shadows keep constant screen space length independent of FoV settings.
Contact shadows for translucents.
Contact shadows for eye.
Change 4009555 by Guillaume.Abadie
Splits DOFCocTile.usf in two.
Change 4009999 by Yuriy.ODonnell
MallocStomp can now be enabled on certain platforms using '-stompmalloc' command line argument.
Previously it was necessary to modify MallocaStomp.h and re-compile the engine.
Currently supported platforms: Win64, Mac, Linux.
Replaced hard-coded page size with FPlatformMemory::GetConstants().PageSize.
Change 4010288 by Rolando.Caloca
DR - vk - Fix for vertex streams
Change 4010289 by Krzysztof.Narkowicz
D3D12 - fixed depth bounds bug, where depth bounds wasn't properly set to [0;1] after disabling.
#jira UE-57510
Change 4010297 by Rolando.Caloca
DR - vk - Remove some functions for android
Change 4010315 by Rolando.Caloca
DR - vk - Remove create info macro
Change 4010451 by Rolando.Caloca
DR - vk - Reuse samplers
- Infiltrator goes from 5759 to 24 samplers!
Change 4010627 by Rolando.Caloca
DR - vk - Fix missing values for tracking swapchain validation
Change 4011924 by Guillaume.Abadie
Implements tile based early return optimisation on DOF's postfiltering method.
Change 4011941 by Guillaume.Abadie
Shaves some ALU in DOF's accumulator for LowQuality permutation.
Change 4012093 by Yuriy.ODonnell
Disable MallocStompOverrunTest() in static analysis config, as it intentionally performs an out-of-bounds access.
Change 4012195 by Rolando.Caloca
DR - vk - Fix for mobile backbuffer layout
Change 4012202 by Rolando.Caloca
DR - vk - Don't use staging buffers on UMA
Change 4012467 by Rolando.Caloca
DR - Remove redundant check
Change 4012486 by Rolando.Caloca
DR - Fix missing transition
Change 4012518 by Guillaume.Abadie
Implements fast shader permutation for DOF's TAA pass.
Change 4013084 by Arciel.Rekman
Fix for Linux clock discrepancy.
- Causing at least one precision issue, possibly more.
(Edigrating 4003273, 4012462 from //UE4/Dev-Editor/... to //UE4/Dev-Rendering/...)
Change 4013266 by Uriel.Doyon
Fixed crash when setting SceneDepthTextureNonMS and not having valid depth buffers in the SceneContext.
Change 4013626 by Uriel.Doyon
Fixed crash in the lighting build when creating a blueprint of the ALight and placing a light component in it.
#jira UE-51672
Change 4013805 by Rolando.Caloca
DR - Fix more missing transitions
Change 4014128 by Arne.Schober
DR - Do not create LocalVFUniformBuffer when running without MVF
#jira UE-57929
Change 4014193 by Uriel.Doyon
Editing component transforms now invalidate the component's lighting cache.
#jira UE-48134
Change 4014282 by Rolando.Caloca
DR - vk - Remove extra validation during dump
Change 4014584 by Uriel.Doyon
Duplicated static meshes now generate a new GUID to prevent possible issues with lightmass.
#jira UE-49064
Change 4014604 by Uriel.Doyon
UStaticMesh postduplicate now only generates a new GUID if !bDuplicateForPIE.
Change 4015460 by Guillaume.Abadie
Composes separate translucency within DOF's recombine pass.
Change 4015571 by Guillaume.Abadie
Refactors tonemapper to use global shader permutation API, that adds permutation for HDR output device rather than dynamic branching that some shader compiler are not very well optimizing.
Change 4015984 by Krzysztof.Narkowicz
Fixed crash inside DFAO resource allocation, when DFAO viewport has zero area.
#jira UE-58000
Change 4016056 by Mark.Satterthwaite
Fix Mac Metal shader compilation of texture cube arrays.
Change 4016062 by Richard.Wallis
Convert things like Space, Delete, F6 etc to unicode so they display correctly on the Mac menu rather than first letter of word. Added the default Mac commands to the GenericCommands so we get a Chord overwrite message and stop things like cmd+ q / w / h from getting bound.
#jira UE-46999
Change 4016109 by Mark.Satterthwaite
One unified Metal buffer implementation - will make further changes a heck of a lot easier.
Change 4016221 by Patrick.Kelly
UE-57617: Ensure changing viewmode to ShaderComplexity while in -game
Change 4016238 by Guillaume.Abadie
Makes clang happy again in Tonemapper.
Change 4016309 by Mark.Satterthwaite
More *_RenderThread implementations for MetalRHI.
Change 4016414 by Mark.Satterthwaite
And MetalRHI version of CreateStructuredBuffer_RenderThread...
Change 4016498 by Mark.Satterthwaite
Don't hold on to the uniform buffers bound to the hull shader when switching to a tessellated draw call as they'll have the wrong buffer layout.
#jira UE-57930
Change 4017394 by Juan.Canada
OpenGL: Fixed shading artifacts due incorrect UNORM/SNORM conversions in skin/skincache/computetangent shaderss.
#jira UE-57691
Change 4017522 by Rolando.Caloca
DR - vk - Remove unused code path (old mip generation detection)
Change 4017539 by Rolando.Caloca
DR - vk - Fix for sky lighting mips showing green on AMD
Change 4017542 by Arciel.Rekman
Moved appCountTrailingZeros to a non-SSE header (fixes ARM64 build).
- Arguably WITH_SLI shouldn't apply to Linux on ARM but the fact that the function wasn't available is bad on its own.
Change 4017827 by Guillaume.Abadie
Optimises DOF's scattering cost by a third.
Change 4017835 by Rolando.Caloca
DR - Only allow a render pass to generate mips for one color render target
Change 4017889 by Mark.Satterthwaite
Cache all the Metal state objects to avoid hitting the API unnecessarily.
Change 4018251 by Mark.Satterthwaite
Fix broken rendering on Metal that tracked back to the innocuous looking changes in CL #4006495 (no blame attached - these changes are entirely reasonable) and cause various bugs in QAGame's TM-DistanceFields, ElementalDemo and probably more. Doesn't fix broken SpeedTree rendering :(.
MetalRHI was allowing uniform buffers to blow away linear texture buffers when the constant buffer has been elided due to dead-code elimination. This problem can manifest without linear textures if the uniform buffer contains both constant data and a resource-table but the shader doesn't use any of the constant data. That's because Metal doesn't separate constant buffers from any other kind of buffer unlike D3D which separates all the slots out - and Metal doesn't provide enough buffers to emulate the D3D arrangement. So far this has only manifested in the MVF + Linear Texture case but a more robust solution will be necessary long term.
Change 4018514 by Guillaume.Abadie
Implements r.DOF.Scatter.MinCocRadius.
Change 4018553 by Guillaume.Abadie
Implements r.DOF.Scatter.MaxSpriteRatio to control the budget upperbound of DOF's scattering
Change 4020369 by Yuriy.ODonnell
Disable MallocStompOverrunTest in all static analysis configs (using USING_CODE_ANALYSIS macro)
Previously was only disabled for PVS-Studio.
Change 4020620 by Arciel.Rekman
Fix XboxOne CIS (fallout of appCountTrailingZeros move).
Change 4020949 by Guillaume.Abadie
Configures DOF in scalability settings.
Change 4021593 by Rolando.Caloca
DR - vk - Support for Aftermath style api on AMD
Change 4021740 by Rolando.Caloca
DR - vk - Change log output
Change 4022008 by Uriel.Doyon
Fixed renderthread stalls when streaming texture mips on low end systems.
Change 4022135 by Rolando.Caloca
DR - vk - Fix last mip's layout during mip chain creation
Change 4022607 by Jian.Ru
Speculative fix for a bug where an invalid vertex buffer is deferenced
#jira UE-56229
Change 4022890 by Rolando.Caloca
DR - Fix reference count not getting released
Change 4023540 by Mark.Satterthwaite
Avoid some pointless retain/release calls on Metal Encoders.
Change 4023796 by Marcus.Wassmer
Tell users they are over the maximum size when allocating very large rendertargets.
Change 4025337 by Yuriy.ODonnell
Improved use-after-free detection mechanism and physical memory usage of MallocStomp on Windows.
MallocStomp on Windows will now reserve virtual address space for every allocation and then commit physical pages only to the valid usable part.
Physical pages will be unmapped on Free, but virtual address space will not be released and therefore will never be re-used.
Virtual address space is allocated from the OS in blocks of 1GB and then linearly sub-allocated.
This reduces VA space usage, as VirtualAlloc returns blocks on 64KB granularity even if we just need 4KB. As a small bonus, this also reduces number of syscalls per allocation.
This dramatically increases accuracy of use-after-free detection, but consumes significant amount of memory for the OS page table.
Virtual memory limit for a process on Win10 is 128 TB, which means we can afford to keep virtual memory reserved for a long time.
Running Infiltrator demo consumes ~700MB of virtual address space per second.
Additionally, committing physical pages only for the usable part of the entire virtual block reduces physical memory usage by ~30% compared to old behavior,
which allocated and committed entire block of pages via BinnedAllocFromOS and then marks border page as non-accessible.
Change 4026047 by Rolando.Caloca
DR - Fix test/shipping
#jira UE-58148
Change 4026150 by Krzysztof.Narkowicz
Force proper ordering of buffer visualization materials - after tonemapping (so exposure doesn't influence it) and before editor stuff like icons.
#jira UE-57992
Change 4026226 by Rolando.Caloca
DR - Fix static analysis
#jira UE-58150
Change 4026354 by Jian.Ru
Debug check trying to catch a crash. Only enabled in editor build
#jira UE-50111
Change 4026655 by Rolando.Caloca
DR - Fix for static analysis
#jira UE-58149
Change 4026763 by Rolando.Caloca
DR - Remove references to defunct CCT to avoid confusing licensees
Change 4027167 by Uriel.Doyon
Fixed possible out of bound buffer access when serializing with FDuplicateDataWriter.
#jira UE-56509
Change 4027850 by Jian.Ru
Prevent log spam
#jira UE-50111
Change 4029546 by Rolando.Caloca
DR - Compile fixes
Change 4029624 by Yuriy.ODonnell
Addressed static analysis errors in MallocStomp
- VirtualAlloc return value is now explicitly checked.
- C6250 is suppressed, as VirtualFree does not release address space by design.
Change 4030225 by Yuriy.ODonnell
Static analysis warning fix: make sure declaration of Sleep() is consistent between Windows headers and TBB
The complexity with this particular case is that the warning is generated in synchapi.h, which is included by some Windows headers.
If a module includes TBB and then Windows platform headers, static analyzer will report this warning.
Suppressing it would require wrapping all instances of Windows header includes in third-party macros.
Current pragmatic solution is to modify the Sleep() declaration in TBB header to be consistent with Windows and to report the issue to Intel for a permanent fix.
Change 4030440 by Rolando.Caloca
DR - Fix crash on mobile
#jira UE-58222
Change 4030570 by Daniel.Wright
Allow null SRV's in uniform buffers for feature levels that don't support SRV's in shaders
Change 4030618 by Arne.Schober
DR - missing tangent/normal sign conversion after integration from main
#jira UE-58224
Change 4031588 by Rolando.Caloca
DR - vk - Fix compile error when missing vkCmdWriteBufferMarkerAMD
Change 4032145 by Mark.Satterthwaite
Fix UE-58268 by only emitting the base_instance/base_vertex variables required to fix-up the instance/vertex ID values to match D3D when the Metal version is 1.1 or higher, earlier versions don't support these features.
#jira UE-58268
Change 4032209 by Rolando.Caloca
DR - Fix crash on EngineTest: Mesh Batch's UserIndex is not a union anymore
Change 4033178 by Guillaume.Abadie
Fixes FXAA sampling outside viewports, that was causing black outline on bottom and right edge of the screen when ViewSize != BufferSize, problematic for some screenshot automated test.
#jira UE-58151
Change 4034489 by Daniel.Wright
Fixed UStaticMeshComponent modifying its UStaticMesh when undoing a change. This caused a crash when other static mesh components using the same mesh asset were rendered, since their rendering state was not recreated. A component should not modify its asset during PostEditUndo.
* This behavior has been present for a long time but was previously hidden because only the vertex factory of the mesh asset is cached in static draw lists, not any of its rendering resources (eg vertex declaration).
Change 4035157 by Uriel.Doyon
Fixed deadlock in the streaming code when running with -onethread.
#jira UE-58299
Change 4035198 by Rolando.Caloca
DR - vk - Fix issue when an older SDK was installed, UBT would pick it (should pick the newer of ThirdParty\Vulkan or installed SDK).
#jira UE-58267
Change 4035730 by Arne.Schober
DR - Fix missing Fog parameters during LightScattering Injection
#jira UE-57608
Change 4035843 by Daniel.Wright
Reimplemented support for EyeAdaptation node in opaque materials
Change 4036837 by Marcus.Wassmer
Replace some of the screenshots to match new un-tonemapped buffer visualization
Change 4036980 by Rolando.Caloca
DR - vk - Fix deadlock contention during mem allocation on Linux
Change 4037225 by Guillaume.Abadie
Fixes jittering selection outline.
#jira UE-58350
Change 4038056 by Marcus.Wassmer
roll back changelist 4026150. breaks a bunch of automated tests by cutting off half the image.
Change can go back in later with that part fixed also
Change 4038296 by Jian.Ru
Static analysis fix
#jira UE-58377
Change 4038402 by Ben.Marsh
Suppress IncludeTool warnings caused by CL 3998947.
Change 4038514 by Arne.Schober
DR - Fix case with MVF where instance offset is not supported by the API (in this case only foliage OpenGL and TvOS), usually the buffers are offsetted instead but with MVF we do not use offsetted buffers, therfore the offset needs to be passed into the shader although we are drawing with offset of 0.
#jira UE-57652
Change 4038747 by Marcus.Wassmer
Back out changelist 3853645, causing us to lose shadows in the shaderhair test
Change 4040138 by Rolando.Caloca
DR - Fix compile warning
Change 4041614 by Rolando.Caloca
DR - vk - Fix for Oculus module
#jira UE-58267
Change 3810277 by Daniel.Wright
Ray Traced Distance Field shadows use a two pass tile culling algorithm with no tile max - fixes flickering from tile overflow in dense areas or with a low sun angle. Costs .2ms on PS4.
The distance field scene buffers now use float4 on PS4 and Xbox, saves .1ms on PS4.
Change 3817029 by Uriel.Doyon
Added UVolumeTexture, which use 3D textures. Compressed formats are supported on DX11, DX12, PS4 and XB1.
Projects targetting OpengGL don't have access to compressed formats (as the implementation has texture tiling issues).
Add "r.AllowVolumeTextureAssetCreation" set as 0 by default, which controls whether volume texture can be sampled in materials and whether they can be created from 2D texture assets.
Platform not supporting BC7, will now fallback on RGBA8 instead of DXT to preserve quality, in an attemps to increase usage of BC7.
#jira UE-32263
Change 3819960 by Michael.Lentine
Expose UEPhysics Clothing Parameters through UI.
Change 3823401 by Rolando.Caloca
DR - Add NumQueriesInBatch to RHIBeginOcclusionQueryBatch
Change 3844805 by Arne.Schober
DR - Increased Intermediate normal of Umodel and Skelmesh from 8bit Unorm Compressed to float. A resave/rebuid/reimport of the meshes is recommended to recover some lost precision.
Fixed an issue with compressed (packed) normals on the GPU which were off by one integer representation. Also switched from UNORM to SNORM to get a discrete zero representation and removed some mads from all the VertexShaders.
Change 3847283 by Marcus.Wassmer
Extra fixes from Uriel
Change 3876607 by Rolando.Caloca
DR - Use render passes when running occlusion queries
- Removes the RHI(Begin|End)OcclusionQueryBatch API
Change 3903799 by Daniel.Wright
[Integrate] Pass Uniform Buffers
* All pass-constant shader inputs should go into the appropriate pass uniform buffer, instead of being set per-draw
* Moved many per-draw base pass parameters over to the Base Pass Uniform Buffer
* Opaque and Translucent base pass shaders have different uniform buffers, which allows compile errors when accessing an invalid resource (eg GBuffer in Opaque), instead of silently falling back to GBlackTexture
Uniform buffers can now contain nested structs with UNIFORM_MEMBER_STRUCT()
* This allows composing a uniform buffer at a particular update frequency out of many features, with encapsulation of each feature's parameters in a struct.
* Eg deferred fog uses FFogUniformParameters, but so does translucency in the base pass, where FFogUniformParameters is reused nested inside the base pass uniform buffer.
* Resources can now be located anywhere in the uniform buffer. Padding is inserted to the cbuffer representation to keep memory layouts matching. In the future the cbuffer could be compacted.
* RemoveUniformBuffersFromSource() which works around HLSLCC lack of struct initializers now handles nested structs
Change 3917500 by Rolando.Caloca
DR - Change depth bounds so only the enable bit is in the PSO, allow min/max to be dynamically modified
Change 3964907 by Guillaume.Abadie
Implements RectList topology support in RHI.
Change 3979171 by Mark.Satterthwaite
Copying //Tasks/UE4/Dev-UERNDR-354-mtlpp to Dev-Rendering (//UE4/Dev-Rendering):
Rewrites MetalRHI in terms of mtlpp, which is a C++ wrapper library built around Metal's Objective-C API that attempts to reduce overheads and eliminate resource lifetime errors.
Regarding mtlpp:
- The mtlpp library uses C++ constructor/destructor and smart-pointer style management of Objective-C retain/release calls to prevent over- and under-release problems.
- To reduce Objective-C overheads the mtlpp library caches the internal C-function that implements the Objective-C selectors for the most commonly used Metal protocol types and calls the function directly - this avoids objc_msgSend which does this look-up dynamically and thus improves CPU performance slightly.
- Another advantage is that mtlpp provides infrastructure to extend the Metal API slightly to help improve MetalRHI - the two important aspects are mtlpp::CommandBufferFence which provides a consistent CPU<->GPU synchronisation primitive and sub-buffer allocations from mtlpp::Buffer which allow for far superior memory management.
- Validation functionality is also provided by mtlpp to detect CPU vs. GPU data races and resource lifetime validation - this is expensive and is thus optional and compiled out from Shipping binaries that should be used when performance is most critical. The validation only works between resource modification and *submitted* command-buffers - anything that is being actively encoded on the CPU is ignored and it remains the responsibility of the application to validate the order of operations when encoding.
Apple Platform:
- LLM support which tracks Objective-C objects is enabled only on macOS - we don't have the necessary libraries to intercept and override the internal system calls on iOS.
MetalRHI:
- All the types are switched over, (mostly) insuling the external API from the horror of Metal and Objective-C.
- Buffers are now managed quite differently, small buffers are allocated from a magazine allocator that allocates in fixed blocks from a larger parent buffer, intermediate sized buffers are allocated from a simple heap allocator that wraps a larger buffer and anything of reasonable size (>2Mb) will use the pooled allocator. This *radically* reduces the number of buffer resources, by as much as a factor of 10, because they are now sub-allocated without the need to use MTLHeap or MTLFence so they are performance equivalent to the existing implementation on the GPU and much faster on the CPU. Total memory use is approximately the same.
- Vertex & index buffer management has been updated to reflect changes in the management and to avoid reallocating buffers which provide a Linear Texture (for SRVs) unless strictly necessary. This ensures that even in cases where a dynamic buffer is updated multiple times in a frame it will still work acceptably well.
- The Metal ring-buffer implementation is completely different again, this time it can use Managed memory on macOS which allows for much better performance on eGPUs which will be more and more important for Mac.
- Everyone that needs to wait on a command-buffer fence (rather than a command-buffer itself) now use mtlpp::CommandBufferFence, which prevents race conditions between the different command-buffer handlers (which sometimes execute out of order).
- LLM tracking should now report the same data as the MetalRHI stats group for buffer & texture allocations - there is no segmentation for Vertex/index/Structured/Uniform allocations in Metal so these numbers are going to be wrong and will need to be rethought.
- What will be unseen are the number of small but important resource usage fixes that avoid stale resources from being bound to the device after the point at which they become invalid. This should eliminate a class of errors where the GPU uses a resource pointer that is modified by the CPU and was necessary to satisfy the new mtlpp validation code.
Other:
- Remove the Metal focused workarounds from the ClothBuffer resource binding and related vertex-buffer SRV - these were put in when MetalRHI/MetalShaderFormat couldn't handle float->uint conversions correctly and they should now.
- Fix a validation error caused by trying to render a 0-sized scissor rect which is invalid in Metal and simply pointless elsewhere.
- Consistency of disabling the Manual Vertex Fetch behaviour in shaders.
#jira UERNDR-354
Change 3979312 by Rolando.Caloca
DR - Remove bogus bKeepOriginalSurface parameter in CopyToResolveTarget
Change 4005122 by Rolando.Caloca
DR - Support for PS4 Index Buffer UAVs
Change 4016298 by Guillaume.Abadie
Fixes DOF hybrid scattering on platforms that supports RectList topology.
Change 4018575 by Guillaume.Abadie
Optimises DOF's reduce pass when doing scattering compilation.
Change 4020317 by Guillaume.Abadie
Implements WaveBroadcastIntrinsics.ush.
[CL 4042226 by Marcus Wassmer in Main branch]
2018-05-01 10:36:33 -04:00
{
2019-10-01 13:03:04 -04:00
// Any thread is used due to FViewInfo initialization.
return CVarPostProcessingPreferCompute . GetValueOnAnyThread ( ) & & FeatureLevel > = ERHIFeatureLevel : : SM5 ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 4041614)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3774677 by Arne.Schober
DR - Deprecated SetLocal from the RHICmdlist
Fixed some unnecessary PSO collisions.
Change 3809579 by Chris.Bunner
Back out changelist 3774677.
#jira UE-53483
Change 3810363 by Mark.Satterthwaite
More random fixes to mtlpp: most important is the extension to Buffer that allows creation of sub-buffers that are merely views onto a sub-range of the parent. These sub-buffers are valid to use throughout the mtlpp API with two exceptions: they may not be used for visibilityResultsBuffers and Set*BufferOffset functions cannot take this offset into account (as the encoder does not hold onto the buffers and I don't want it to). In the case of Set*BufferOffset the caller has to know what is going on and in the case of visibilityResultsBuffers it'll just assert as it isn't sensible.
This makes it *much* easier to do things like sub-buffer allocation, though the caller must be aware of the alignment restrictions of their intended usage as they are not possible to enforce. For example, a call to SetVertexBuffer requires an offset alignment must match the alignment of the data-type in the shader for "device" resources, or for "constant" data it must be max(4, sizeof(datatype)) on iOS and 256 on macOS. This should allow for much more tightly packed sub-allocations than earlier approaches, though older drivers (e.g. Mac OS X 10.11) enforce only the coarser "constant" data restriction everywhere.
Change 3810407 by Marcus.Wassmer
PR #4322: ShadowSetup Bug Fix: Only stencil mask drawn meshes (Contributed by DSDambuster)
Change 3810676 by Guillaume.Abadie
Makes r.Test.SecondaryUpscaleOverride work with any arbitrary pixel size.
Change 3810696 by Guillaume.Abadie
Adds support for #include "../MyFile.ush" in the shader compiler.
Change 3810698 by Guillaume.Abadie
Implements enum class based shader permutation dimension.
Change 3810699 by Guillaume.Abadie
Implements Diaphragm DOF ground work.
Change 3811536 by Guillaume.Abadie
Pulls the trigger on CircleDOF's setup pass for DiaphragmDOF.
Change 3811958 by Mark.Satterthwaite
More fixes for mtlpp.
Change 3811964 by Mark.Satterthwaite
Only views onto a mtlpp::Buffer should return a valid parent-buffer.
Change 3812604 by Guillaume.Abadie
Changes Diaphragm DOF's source file layout.
Change 3812827 by Mark.Satterthwaite
More missing/broken functionality in mtlpp fixed and fixed obvious leaks.
Change 3812920 by Guillaume.Abadie
Adds support for per mip level UAV in FSceneRenderTarget.
Change 3812926 by Mark.Satterthwaite
Change the way we handle mtlpp resource construction to avoid leaks.
Change 3812960 by Rolando.Caloca
DR - vk - Disable DFGI
Change 3812968 by Rolando.Caloca
DR - Linker fix
Change 3813318 by Mark.Satterthwaite
Fix linear texture allocation from a buffer sub-view.
Change 3813326 by Mark.Satterthwaite
Fix another Metal mtlpp sub-buffer allocation failure.
Change 3813328 by Guillaume.Abadie
Removes global samplers in TAA for GL4, Vulkan and Switch.
Change 3813937 by Rolando.Caloca
DR - Fix logs not getting dumped when r.DumpSCWQueuedJobs is on
Change 3813947 by Rolando.Caloca
DR - noshaderworker should override r.XGEShaderCompile
Change 3817017 by Uriel.Doyon
Fixed texture editor black screen
#jira UE-53653
Change 3818568 by Rolando.Caloca
DR - Fix log when shader jobs crash
- Move log10 to common
- Added COMPILER_VULKAN define
Change 3818603 by Uriel.Doyon
Fix to static analysis warning
Change 3818623 by Rolando.Caloca
DR - Workaround hlslcc loop unrolling bug
Change 3819070 by Uriel.Doyon
Fix to stat duplication.
Change 3819105 by Uriel.Doyon
Refactored volume sample shader to avoid using texture dimension.
Change 3819136 by Rolando.Caloca
DR - vk - Per platform files (empty)
Change 3819180 by Rolando.Caloca
DR - vk - Move defines out of config into per platform
Change 3819247 by Rolando.Caloca
DR - vk - Remove more defines into platform settings
Change 3819318 by Rolando.Caloca
DR - vk - Fixes for linking
Change 3819868 by Rolando.Caloca
DR - vk - Linux & Android fixes
Change 3819873 by Guillaume.Abadie
Adds support for PermutationId on r.DumpShaderDebugInfo=1
Change 3819940 by Rolando.Caloca
DR - vk - Fix Linux issues
Change 3819956 by Rolando.Caloca
DR - vk - Invalid check
Change 3819961 by Michael.Lentine
Hide attributes when plugin is not present
Change 3819980 by Rolando.Caloca
DR - vk - Standard validation always
Change 3820039 by Rolando.Caloca
DR - vk - Fix invalid ensure
Change 3820326 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3820422 by Michael.Lentine
Add back GBufferAO.
Change 3820433 by Rolando.Caloca
DR - Fix D3D12 crash on 20 thread (10x2 cores) machines
Change 3821677 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3821961 by Rolando.Caloca
DR - Vulkan uses real UB by default on non-Android
Change 3821968 by Rolando.Caloca
DR - vk - Update glslang 1.0.65.1
Change 3821969 by Uriel.Doyon
Added support for stat groups that must be sorted by name. Defined by DECLARE_STATS_GROUP_SORTBYNAME.
Change 3821983 by Rolando.Caloca
DR - vk - Change to static array (0.1ms on 10k draw calls)
Change 3824141 by Rolando.Caloca
DR - vk - Fix static analysis
- Bumped up some (c) 2017->2018
Change 3824355 by Rolando.Caloca
DR - vk - Accessor to find out if a cmd buffer has been submitted
Change 3824420 by Rolando.Caloca
DR - Sanity check number of queries per batch on D3D11 as to not break other RHIs
Change 3824463 by Rolando.Caloca
DR - Removed dummy ensure for D3D12
Change 3824609 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3826074 by Mark.Satterthwaite
Start IMP-caching the various descriptor types in mtlpp.
Change 3826098 by Rolando.Caloca
DR - vk - Dump layer compile fixes
Change 3826113 by Rolando.Caloca
DR - vk - Missing dump functions
Change 3826302 by Rolando.Caloca
DR - vk - Compile fix
- Change dump handles to %p
Change 3826635 by Mark.Satterthwaite
Forward declarations required for mtlpp compilation without exposing Metal headers - plus fixes to the mtlpp test compiler.
Change 3827072 by Mark.Satterthwaite
Switch some more mtlpp descriptors over to IMPTables from objc_msgSend.
Change 3827909 by Guillaume.Abadie
Replaces diaphragm DOF's prefiltering with LDS bank coherent bilateral reduction, and implements 1/8 res background gathering pass.
Change 3827952 by Guillaume.Abadie
Updates copy right to year 2018 on diaphragm DOF's new files.
Change 3828055 by Rolando.Caloca
DR - vk - Rename in prep for changes
Change 3828229 by Guillaume.Abadie
Avoids to log multiple time global shader type name that have multiple permutations when verifying global shader map.
Change 3828427 by Guillaume.Abadie
Reimplements Max3x3 gathering post filtering for Diaphragm DOF with proper shader permutation.
Change 3829979 by Guillaume.Abadie
Fixes a color NaN source in diaphragm DOF's TAA pass.
Change 3830116 by Rolando.Caloca
DR - vk - Fix GPU queries/frame time on old system
- New system in place, disabled temporarily
Change 3830169 by Rolando.Caloca
DR - vk - Fix async pso creation crash
Change 3830193 by Rolando.Caloca
DR - vk - CPU RHI thread improvement
Change 3830291 by Guillaume.Abadie
Automatically lower the number of gathering rings on background half res gather pass as far CoC is getting smaller.
Change 3830300 by Rolando.Caloca
DR - vk - Static analysis fix: Split VulkanCommon.h out of VulkanConfiguration.h
Change 3830589 by Mark.Satterthwaite
In mtlpp cache the IMPTables for all the Metal @protocol's that are dependent on the MTLDevice, this avoids a mutex & map lookup. Also make all the concrete types store their IMPTable statically as it won't change.
Change 3830793 by Mark.Satterthwaite
Fix a small number of bugs introduced with the mtlpp descriptor and table caching.
Change 3831491 by Jian.Ru
Fix driver version unknown
#jira UE-53688
Change 3832335 by Rolando.Caloca
DR - vk - Change include
Change 3832550 by Rolando.Caloca
DR - vk - Occlusion query rewrite WIP
Change 3832589 by Rolando.Caloca
DR - vk - Minor refactor to pools in prep for timestamps
Change 3832618 by Rolando.Caloca
DR - vk - Do not block timestamp queries
Change 3832636 by Rolando.Caloca
DR - vk - Fix old timestamp queries
Change 3833138 by Rolando.Caloca
DR - vk - Fix timestamp queries
Change 3833249 by Rolando.Caloca
DR - vk - Test lock
Change 3833667 by Rolando.Caloca
DR - vk - Old queries wait on the RHI thread now instead of the driver (disabled)
Change 3833907 by Daniel.Wright
Fixed NextStartOffset UAV index out of bounds
Change 3833918 by Daniel.Wright
D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC or Xbox. The refcounting was heavy on performance as reported by a licensee because FRHIResource uses atomics for refcounting, which is only necessary when GRHINeedsExtraDeletionLatency is disabled.
Change 3834852 by Rolando.Caloca
DR - vk - Missing file
Change 3834858 by Guillaume.Abadie
Implements r.DOF.MinimalFullresBlurringRadius
Change 3834979 by Rolando.Caloca
DR - vk - Fix
Change 3836117 by Rolando.Caloca
DR - vk - Update to 1.0.65.1
Change 3836122 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOcclusionBatchCmdBuffer
- Added new error codes/messages
Change 3836421 by Mark.Satterthwaite
For the purposes of debugging and conformance testing mtlpp make it possible to compile *without* the IMP cache so that we call the underlying Objective-C.
Change 3836896 by Uriel.Doyon
Fixed concurrency and exit issues around d3d12 pipeline states on windows.
Change 3837385 by Rolando.Caloca
DR - vk - Dump memory on OOM
Change 3837427 by Rolando.Caloca
DR - vk - Change some arrays to array views
Change 3837800 by Guillaume.Abadie
Implements SHADER_PERMUTATION_RANGE_INT to make contiguous integer permutations that does not start to 0.
Change 3838128 by Rolando.Caloca
DR - vk - Support for non-cached memory types
Change 3838540 by Guillaume.Abadie
Refactors Diaphragm DOF's CoC tile buffer under a single API for better maintainability.
Change 3838731 by Rolando.Caloca
DR - vk - Descriptor pools per command buffer pool (turned off)
Change 3838961 by Rolando.Caloca
DR - vk - Use ring buffer for per frame uniform buffers
- Enable descriptor pools per layout recycled per command buffer
Change 3839087 by Rolando.Caloca
DR - vk - Compile fixes for Android
Change 3839106 by Marcus.Wassmer
PR #4413: Removing unnecessary call to FString::ToLower (Contributed by gsfreema)
Change 3839252 by Mark.Satterthwaite
Fix mtlpp::Resource move operators.
Change 3839426 by Marcus.Wassmer
Duplicate 380972
Make PC GPU Benchmarks more reliable
Change 3840041 by Guillaume.Abadie
Fixes shader compilation failure in TAA with alpha channel through post processing support.
Change 3840257 by Chris.Bunner
Swapping a mul() to * in HLSLTranslator::Dot to allow scalar transformations per a UDN ticket.
Change 3840308 by Rolando.Caloca
DR - vk - Support for UB & non-UB on emulation mode
Change 3840586 by Rolando.Caloca
DR - Copy 3840577
Fix for CPUs with more than 16 cores
Change 3840671 by Rolando.Caloca
DR - vk - Copy from 3840663
Fix for layout ensure on HMD projects on Vulkan
Change 3840980 by Rolando.Caloca
DR - vk - Android compile fixes
Change 3841989 by Guillaume.Abadie
Slices Diaphragm DOF's Gather pass in multi shader files, and CFLAG_StandardOptimization flag for faster iteration time.
Change 3842216 by Guillaume.Abadie
Fixes DDOF's foreground alpha channel.
Change 3842217 by Guillaume.Abadie
Implements r.DOF.MaximalForegroundBlurringRadius
Change 3842353 by Guillaume.Abadie
Allows to disable foreground gathering with r.DOF.MaximalForegroundBlurringRadius=0
Change 3842747 by Rolando.Caloca
DR - vk - Missing use of GPoolSizeVRAMPercentage
- Support for smaller allocations if page size is not available
Change 3842791 by Rolando.Caloca
DR - vk - Use 95% of available GPU memory to handle some fragmentation
Change 3843690 by Guillaume.Abadie
Fixes diaphragm DOF's foreground after all this refactoring.
Change 3844439 by Guillaume.Abadie
Improves Coc dilate pass to make the gather pass as fast as possible, but still without artifacts caused by the fast gathering optimisation.
Change 3844946 by Mark.Satterthwaite
rd_route v1.1.1 with attached TPS approval.
For macOS function interposition which is useful for debugging and the occasional workaround.
Change 3845164 by Mark.Satterthwaite
Add LLM support for macOS, including tracking of memory allocated in Objective-C. This makes use of runtime method swizzling in the Objective-C runtime and the rd_route library I added for Richard Wallis, which allows for arbitrary runtime function interposition and allows me to hook the custom allocators used in Apple's many Objective-C frameworks on which the whole macOS edifice is built. Objective-C objects are charged to the calling scope as they are too common to impose their own without murdering frame rate.
We would need a TPS approval for an iOS function interposition library for this to work fully on iOS, if desired in the short term discarding LowLevelFree events that aren't in the map rather than asserting will workaround the problem.
Change 3845849 by Marcus.Wassmer
Fix clang and some normal refactor errors
Change 3846026 by Rolando.Caloca
DR - vk - Descriptor set allocation scheme rewrite
- Type hash for each pool
- Desc sets Pool on device
Change 3846169 by Rolando.Caloca
DR - vk - Remove old code for non-layout descriptor set pools
Change 3846205 by Mark.Satterthwaite
Disambiguate the PatchControlPointOut struct definitions in Metal tessellation shaders at Apple's suggestion to avoid a metallib gotcha.
Change 3846346 by Arne.Schober
DR - Missing Vector instructions
Change 3847037 by Arne.Schober
DR - Fix issue with GPU skincache where the offset of the clothbuffer is not relative to the offset of the actual vertexbuffer.
Fixed MorphTarget Skincache Offset mixxup
Change 3847275 by Marcus.Wassmer
Copying MGPU to Dev-Rendering (//UE4/Dev-Rendering)
Change 3847464 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3847707 by Michael.Lentine
Only use MorphTargetOffset when the shader enables morph targets.
Change 3848533 by Richard.Wallis
Handle Metal adding FirstInstance into [[ instance_id ]] which is different to other APIs. SV_InstanceID and SV_VertexID should now have their respective base instance and base vertex ID's subtracted before use in the shader.
#jira UE-51716
Change 3848625 by Richard.Wallis
Compile Fix
Change 3848725 by Rolando.Caloca
DR - Remove use of Build/SetLocalGraphicsPipelineState
Change 3848797 by Rolando.Caloca
DR - Deprecate Build/SetLocalGraphicsPipelineState
Change 3849237 by Arne.Schober
DR - AddCustom Ver for ModelVertex Serialization
Change 3851247 by Rolando.Caloca
DR - vk - Util functions
Change 3851523 by Arne.Schober
DR - Update Reflection Comparission shot from the BuildFarm.
Change 3851859 by Rolando.Caloca
DR - vk - Skip loader
Change 3851889 by Krzysztof.Narkowicz
Removed lights with lighting channels out of tiled deferred light list. Tiled deferred lights do not support lighting channels and it's wasn't worth to add extra complexity to this shader in order support this special case.
#jira UE-51512
Change 3852181 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3852547 by Uriel.Doyon
Fixed Pre-Exposure shader compilation and Temporal AA issue.
#jira UE-54276
Change 3852637 by Arne.Schober
DR - Fixing Normal Automated Test Result
Change 3853167 by Richard.Wallis
AvfPlayer - support for streaming media. Due to an operator new/delete mismatch in Apples CFNetwork - we've had to change out one of that framework allocators using rd_route to avoid the memory corruption.
#jira UE-35637
Change 3853447 by Chris.Bunner
Fixing typos.
Change 3853645 by Krzysztof.Narkowicz
Fixed light functions on subsurface materials
Removed strange code from blending between static and dynamic shadows
#jira UE-50275
Change 3853660 by Rolando.Caloca
DR - Fix OpenGL overwriting texture samplers on forward renderer
Change 3853945 by Mark.Satterthwaite
Duplicate #3831616
Fix the black ground scattering on Metal - we've had issues with the atmospheric fog calculations for a long time - one or more intermediate operations generates different precision on Metal so we end up passing -ve values into sqrt which then generates NaN/INF. For Metal when compiling this file and this file only #define sqrt() to sqrt(abs()) so that we don't see anymore unexpected black in atmospheric rendering. This is far from ideal but I don't want to make abs all inputs into every sqrt because AFAIK this is the only case where we have an issue, and until we to investigate each intermediate calculation that isn't ridiculously, soul-crushingly tedious, it isn't practical to identify the source of the error.
#jira UE-53720
Change 3853966 by Mark.Satterthwaite
Duplicate #3835852
Fix tessellation shaders in Metal with Manual Vertex Fetch enabled:
- The control points idnex buffer shouldn't collide with anything else.
- We can't use the optimisation of loading texture width & height from the buffer meta-table in tessellation shaders as the combined stages don't guarantee not to clobber unused buffer slots and screw it up when we use linear textures.
#jira UE-53851
Change 3854250 by Uriel.Doyon
Fix fbx automation tests
Change 3854736 by Uriel.Doyon
Added a tooltip to the EV100 slider in the exposure menu.
Using game settings now disables the slider.
#jira UE-53945
Change 3855047 by Jian.Ru
Fix DFAO getting NANs when samples out of ViewRect
#jira UE-54403
Change 3858197 by Krzysztof.Narkowicz
View frustum shadow caster culling for pointlights/spotlights
#jira UE-54381
Change 3860081 by Krzysztof.Narkowicz
Tighter bounding sphere for a spotlight
Replaced IntersectSphere(LightProxy->Origin, LightProxy->Radius) with LightProxy->SphereBounds for tighter culling of spotlights
Directional light GetBoundingSphere() now everywhere returns Sphere((0,0,0),HALF_WORLD_MAX) for consistency and proper SphereBounds
#jira UE-54258
Change 3860324 by Mark.Satterthwaite
Update the macOS deployment target version to 10.12 from 10.11 as we officially ended support for El Capitan a while ago. Should mean that libraries compiled for 10.12 and up won't cause link warnings.
Change 3860945 by Arne.Schober
DR - Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer.
#jira UE-54587
Change 3861129 by Jian.Ru
Prevent distance culled objects from casting distance field direct shadows
#jira UE-54533
Change 3861502 by Jian.Ru
Exclude distance culled objects from DFAO calculation
#jira UE-54533
Change 3862243 by Krzysztof.Narkowicz
Changed radius of a directional light's bounding sphere from HALF_WORLD_MAX to WORLD_MAX in order to encopass entire WORLD_MAX box
Change 3863476 by Krzysztof.Narkowicz
Added BuildReflections option to ResavePackages commandlet
#jira UE-54581
Change 3863717 by Rolando.Caloca
DR - vk - Missed using pipeline cache on compute PSOs
Change 3865332 by Arne.Schober
DR - Fix UE-52356 Bone Weight
Change 3866220 by Rolando.Caloca
DR - vk - Fixed GetNativeResource missing on textures
- Added support for -preferNvidia|AMD|Intel
- Added VulkanRHIBridge.h
- Minor fixes
Change 3866222 by Rolando.Caloca
DR - vk - Missed file
Change 3866951 by Krzysztof.Narkowicz
Fixed FreezeRendering on non editor builds: ComputeAndMarkRelevanceForViewParallel was calling FrozenMatricesGuard on multiple threads, reading and writing view matrices state in parallel.
#jira UE-53640
Change 3867231 by Guillaume.Abadie
Adds alpha mode to allow the tonemapper to passthrough the alpha channel for broadcast industry.
Change 3867233 by Guillaume.Abadie
Fixes a compilation failures in TAAU with r.PostProcessing.PropagateAlpha==2
Change 3867594 by Daniel.Wright
Removed EditorOnlyDefaultMaterials, which added 79s of shader compilation during startup
Added a dialog when opening the Material Editor on a Default Material, warning of advanced workflow
Preventing Material Editor Apply or Save for a Default Material when the preview material has compilation errors
Change 3870048 by Daniel.Wright
Cleaned up formatting in TranslucentRendering from merges
Change 3870106 by Krzysztof.Narkowicz
Fixed some FArchive Tell()/Seek() 64bit->32bit truncations
Change 3870211 by Rolando.Caloca
DR - vk - Added -vulkanvalidation=N/-vulkanstandardvalidation/-novulkanstandardvalidation to set validation layer behaviour from cmd line
Change 3870225 by Rolando.Caloca
DR - vk - Some platforms do not use a standard swapchain
Change 3870267 by Arne.Schober
DR - SafeRelease SRVs that might be hold by the Vertexfactories (maybe due to indirect use in GlobalResources)
Note that the VFs are not owners of the data, e.g the underlying Buffers might be released before this and this reference counting should be uneccessary
Change 3870647 by Daniel.Wright
Moved FogRendering.h to Renderer
Change 3872130 by Krzysztof.Narkowicz
Disable USE_GLOBAL_CLIP_PLANE for MATERIAL_DOMAIN_POSTPROCESS and MERIAL_DOMAIN_UI
Merging GitHub Pull request #4459
"When material domain is not needing global clip plane there is no need to generate any code involving it. This does not alter output but removes lot of code at vertex shader and pixel shaders. At least on mobile rendered was actually generating clipping code for ui materials."
#jira UE-54616
Change 3872145 by Rolando.Caloca
DR - vk - Optional SupportsMarkersWithoutExtension
Change 3872404 by Uriel.Doyon
Added some guards when streaming virtual textures.
Fixed optimized UCanvasRenderTarget2D::RepaintCanvas() to prevent resolving the texture twice.
Fixed bad mipmap generation with UCanvasRenderTarget2D.
Change 3872507 by Arne.Schober
Back out changelist 3870267
Change 3874176 by Ben.Marsh
IncludeTool: Add an flag to prevent scanning source files for exported symbols.
Change 3874935 by Krzysztof.Narkowicz
Fixed white thumbnails and other issues with sky lighting on ES3_1 path, by disabling GGX prefiltering, as mobile path doesn't have a single cubemap with all initialized mips. Instead it ping-pongs between 2 partially initialized.
#jira UE-54656
Change 3875710 by Daniel.Wright
Renamed uniform buffer member macros to be much shorter for readability
Change 3876665 by Guillaume.Abadie
Cherry-pick 3870715: Implements DOF's hybrid scatering bare bones.
Change 3876666 by Guillaume.Abadie
Cherry-pick 3871786: DOF hybrid scatering: fixes NaN source, transition to gather on close to screen edge and low intensity.
Change 3876677 by Guillaume.Abadie
Cherry-pick 3872348: Implements neighbor comparison for DOF's scattering compilation pass.
Change 3876680 by Guillaume.Abadie
Cherry-pick 3872357: Oups... fixes build...
Change 3876683 by Guillaume.Abadie
Cherry-pick 3872475: Controls number of mip to generate with DOF's reduce pass.
Change 3876687 by Guillaume.Abadie
Cherry-pick 3874104: Fixes various bugs in diaphragm DOF's hybrid scattering.
Change 3876690 by Guillaume.Abadie
Cherry-pick 3874144: Packs multiple DOF scattering group into same draw instance.
Change 3876694 by Guillaume.Abadie
Cherry-pick 3874275: Switches hybrid scattering with indexed indirect draw call to reduce scatter vertex shader invocation.
Change 3876695 by Guillaume.Abadie
Cherry-pick 3874674: Records min and max coc on DOF's setup's draw event.
Change 3876783 by Rolando.Caloca
DR - Static analysis fix
Change 3876845 by Guillaume.Abadie
Implements USceneCaptureComponent::ProfilingEventName
Change 3877197 by Rolando.Caloca
DR - vk - OQ fixes (disabled)
Change 3877428 by Krzysztof.Narkowicz
Merged with tiny tweaks Ansel photography plugin improvements from Adam Moss (GitHub pull request #4426):
-The free-roaming photography camera has new constraints by default, i.e. it can't pass through walls
-Photography session can be started and stopped programmatically, e.g. making it possible to bind photography to an alternative hotkey or button combo. This was an often-requested feature.
-Tweakables and utilities are now exposed through a Blueprint Function Library (rather than direct manipulation of console variables)
-The Ansel photography session UI now exposes some engine effect tweakables as sliders. For example, if the game is using depth-of-field then sliders are made available to allow the photographer to change the focal depth etc. The developer may suppress this behavior through the Blueprint Function Library.
-Letterboxing is now removed during multi-part capture, d'oh.
-Tiled shots are taken at full resolution even if ScreenPercentage < 100
-SSR is enabled during super-resolution shots since Ansel is now better at hiding any ensuing artifacts
-Postprocess settings are frozen at session start to avoid discontinuities during photography, i.e. wandering between postprocess volumes when the camera auto-moves for stereo and 360 shots.
#jira UE-54244
#4426
Change 3879086 by Krzysztof.Narkowicz
Fixed sky/reflection capture (without owner) update - they are now updated only with a correspoding world
Change 3879090 by Guillaume.Abadie
Fixes tones of regressions on diaphragm DOF's recombine passes.
Change 3879198 by Rolando.Caloca
DR - vk - Support for real uniform buffers on Android platforms
Change 3879993 by Krzysztof.Narkowicz
-Fixed int64->int32 FArchive offset truncation in TShaderMap, VertexFactory and TextureDerivedData
-Fixed FSerializationHistory bug, when trying to serialize 0 bytes
#jira UE-43203
Change 3881462 by Guillaume.Abadie
Implements full res DOF's setup pass for cheaper full res gathering in recombine pass.
Change 3881524 by Krzysztof.Narkowicz
Fixed compilation by removing FTickableEditorObject from FPreviewScene
Change 3881724 by Chris.Bunner
Static analysis fix.
#jira UE-54762
Change 3881861 by Rolando.Caloca
DR - vk - Fix layout warning when generating mip chain
Change 3881864 by Rolando.Caloca
DR - Use render passes on HZB
Change 3882236 by Yuriy.ODonnell
IndirectLightingColorScale is now applied to SubsurfaceLighting and DiffuseLighting. Was previously only applied to DiffuseLighting.
#jira UE-42534
#github 3326
Change 3882325 by Guillaume.Abadie
Implements FocusOnly lower gathering pass for Diaphragm DOF's slight out focus temporal stability.
Change 3882340 by Rolando.Caloca
DR - vk - Fix api dump
Change 3882430 by Rolando.Caloca
DR - vk - KHR_maintenance2
Change 3882563 by Rolando.Caloca
DR - Add depth-stencil access mode to PSO initializer
Change 3882929 by Rolando.Caloca
DR - vk - Proper fix for maintenance extension macros
Change 3883087 by Mark.Satterthwaite
Allow disabling VSync in windowed mode for macOS 10.13.4+ and above.
Change 3883597 by Guillaume.Abadie
Collapses full and half res DOF setup passes together.
Change 3883702 by Guillaume.Abadie
Fixes mac's build.
Change 3884747 by Uriel.Doyon
Fix for static analysis warning
Change 3884975 by Rolando.Caloca
DR - vk - Move some platform defines to platform properties
Change 3884988 by Rolando.Caloca
DR - vk - Make an override per platform
Change 3885832 by Rolando.Caloca
DR - vk - Cosmetic change to group similar members
Change 3885891 by Rolando.Caloca
DR - vk - Some _RenderThread functions to avoid stalls
Change 3886044 by Rolando.Caloca
DR - Added RHI api _RenderThread version of
RHICreateTextureReference
RHICreateShaderLibrary
RHICreateRenderQuery
Change 3886560 by Guillaume.Abadie
Fixes strong aliasing on TAAU's fast shader permutation.
This adds a 6th neighbor sampling, and switch AA_TONE ON as TAA does for its fast shader permutation.
Change 3886749 by Guillaume.Abadie
Cherry-pick 3884748: Implements DOF's BuildBokehLUT for diaphragm blades simulation.
Only used in hybrid scattering for now.
Change 3886750 by Guillaume.Abadie
Cherry-pick 3885457: Simulates diaphragm blades' curvature on bokeh.
Change 3886752 by Rolando.Caloca
DR - Fix metal static analysis
Change 3887460 by Uriel.Doyon
Fixed to more static analysis warning.
Change 3888201 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitAfterEveryEndRenderPass
- Fixed bad layout on rendering back buffer
Change 3888209 by Rolando.Caloca
DR - vk - Unity compile fix
Change 3888254 by Rolando.Caloca
DR - vk - Fix async texture layout
Change 3888893 by Guillaume.Abadie
Simulates bokeh in DOF's slight out of focus.
Change 3889085 by Guillaume.Abadie
Fixes DOF's reduce pass sampling outside viewport.
Change 3889924 by Rolando.Caloca
DR - vk - Skip seemingly bad validation error
Change 3890573 by Daniel.Wright
Only initialize FDiaphragmDOFGlobalResource in Feature Level 5
Change 3890590 by Arne.Schober
DR - Fix Paper2d crash. When addMesh is called the Vertex and Indexbuffers are nulled out. re-create Dynamic Mesh builder for every Mesh instead.
#jira UE-55063
Change 3890638 by Arne.Schober
DR - Better fix for Paper2d which honors batching
#jira UE-55063
Change 3891099 by Krzysztof.Narkowicz
1.5 texel shadow offset fix inside Manual2x2PCF based on #4485 GitHub pull request
#jira UE-54985
#4485
Change 3891234 by Krzysztof.Narkowicz
Optimized PCF2x2 and PCF3x3 - merged #4494 GithHub pull request
#jira UE-55121
Change 3891407 by Rolando.Caloca
DR - vk - Set vendor id earlier
Change 3891417 by Rolando.Caloca
DR - vk - Missing layout transitions
Change 3891718 by Arne.Schober
DR - Do not recreate one Frame Resource for dynamic draws
#jira UE-55063
Change 3891925 by Yuriy.ODonnell
Fix/workaround for inconsistent preprocessor definitions for NVAftermath that result in FD3D11DynamicRHI class layout mismatch. NVAftermath support is now enabled by default for Win64.
NVAftermath is declared as a private dependency in D3D11RHI. It does not automatically propagate to modules that explicitly include private RHI headers (OculusHMD, OSVR, OSVRInput). This results in NV_AFTERMATH being defined while compiling RHI module and not defined when compiling other modules, causing memory corruption at runtime.
The long-term solution for this and similar issues requires some mechanism for adding transitive module dependencies, so that anyone that depends on D3D11RHI module would automatically also get the NVAftermath. Additionally, private headers should *never* be included directly by external modules.
The short-term solution is to explicitly add NVAftermath dependency to OculusHMD, OSVR and OSVRInput.
Additionally, NV_AFTERMATH is no longer forced by D3D11RHIPrivate.h when it's not defined. This allows catching this kind of mismatch in the future through a compiler warning (C4668).
#jira UE-53065
Change 3891987 by Rolando.Caloca
DR - vk - Support for dedicated allocations
Change 3892339 by Jian.Ru
Fix a crash when tessellation shaders are used in dx12
#jira UE-55127
Change 3892528 by Rolando.Caloca
DR - vk - Update Linux headers
Change 3892867 by Rolando.Caloca
DR - vk - Don't create swapchain if not needed
Change 3893416 by Guillaume.Abadie
Implements bokeh simmulation on foreground and background gather.
Change 3893732 by Chris.Bunner
GetRelevance_Internal should use the immediate parent resource, not the base, as some features are overridden by permutations e.g. UsesWorldPositionOffset.
#jira UE-53404
Change 3893868 by Guillaume.Abadie
Allocates diaphragm DOF's buffers and structered buffer only on supported platforms.
Change 3893917 by Chris.Bunner
Potential fix for CIS.
Change 3893933 by Chris.Bunner
Duplicating CL 2647737 as this is the same issue from that JIRA where accessing game-thread data was being prevented. We don't have this check in UMaterial::GetMaterialResource already, but presumably the UMaterialInstance case was never removed as we've not been calling it until now.
Change 3894218 by Rolando.Caloca
DR - vk - Remove stat counters per draw call, gains 10% CPU on Infiltrator
Change 3894579 by Arne.Schober
RT - Fix assert not in RenderingThread from Triangle Renderer.
#jira UE-55247
Change 3894724 by Rolando.Caloca
DR - vk - New API for batching barriers
Change 3894909 by Arne.Schober
DR - Fix crash in Speedtree wind where Renderdata is unavailable
#jira UE-54544
Change 3895414 by Rolando.Caloca
DR - Add a configurable threshold for SCWs time outs
Change 3896429 by Marcus.Wassmer
Allow variable frame-latency delay in FrameGrabber frames. For performance you want at least a 1 frame delay so you don't sync the GPU to the CPU.
Change 3896495 by Marcus.Wassmer
Set pointer properly
Fix CIS
Change 3897253 by Guillaume.Abadie
Fixes CIS warning in diaphragm DOF
Change 3899179 by Guillaume.Abadie
Implements background hybrid scatter occlusion for diaphragm DOF.
Change 3903654 by Rolando.Caloca
DR - vk - Rework dump layer to allow other layers
Change 3903766 by Rolando.Caloca
DR - vk - More wrappers
Change 3904025 by Rolando.Caloca
DR - vk - More wrappers
Change 3904342 by Rolando.Caloca
DR - vk - Track image resources & callstacks
Change 3904346 by Rolando.Caloca
DR - vk - Copy fix from 4.19 for flickering grass
Change 3904510 by Rolando.Caloca
DR - vk - Compile fix
Change 3904914 by Daniel.Wright
[Integrate] Fixed PS4 transitions with forward shading
Change 3904916 by Daniel.Wright
[Integrate] Fixed PS4 transitions with occlusion queries
Change 3905975 by Rolando.Caloca
DR - vk - Missing wrappers
Change 3905977 by Rolando.Caloca
DR - vk - Missed file
Change 3907829 by Rolando.Caloca
DR - Move depth bounds to the PSO
Change 3907832 by Rolando.Caloca
DR - vk - Prep for delaying transitions
Change 3907834 by Rolando.Caloca
DR - vk - Fix for depth stencil issues/validation errors
Change 3907967 by Rolando.Caloca
DR - vk - Linux compile
Change 3908093 by Rolando.Caloca
DR - vk - Fix depthstencil layout on descriptors
Change 3908393 by Rolando.Caloca
DR - vk - Disable dedicated allocation as it causes crashes on Nvidia 700 series
Change 3908401 by Rolando.Caloca
DR - Do transitions outside render pass
Change 3908422 by Rolando.Caloca
DR - vk - Fix transition state not getting stored
Change 3908735 by Guillaume.Abadie
Cherry-pick 3896619: Fixes after TAAU post process material that had wrong default buffer UV.
#jira UE-55317
Change 3908736 by Guillaume.Abadie
Cherry-pick 3891352: Fixes ensure when visualizing HDR with TAAU.
#jira UE-55019
Change 3908753 by Guillaume.Abadie
Lets the renderer layout the views in the internal render targets like it prefers.
Change 3909119 by Daniel.Wright
Fix some static analysis warnings
Change 3911943 by Rolando.Caloca
DR - vk - Fix for packaging Vulkan projects
Change 3912145 by Rolando.Caloca
DR - vk - Fix layout on streaming textures
Change 3913029 by Rolando.Caloca
DR - Fix missing transition
Change 3913048 by Rolando.Caloca
DR - Fix for hlslcc
Change 3913054 by Rolando.Caloca
DR - vk - Fix number of layers on barrier
Change 3913171 by Rolando.Caloca
DR - vk - Fix for decal missing transition
Change 3913211 by Rolando.Caloca
DR - vk - Add debug name to image tracking
Change 3913449 by Rolando.Caloca
DR - vk - Restore transition
Change 3913466 by Rolando.Caloca
DR - Fix Vulkan EngineTest
Change 3913537 by Rolando.Caloca
DR - vk - Fixes independent samplers & textures (contributed by AMD)
Change 3913548 by Rolando.Caloca
DR - vk - Warning fix
Change 3913691 by Rolando.Caloca
DR - vk - Fixes for parallel (wip)
Change 3914656 by Rolando.Caloca
DR - vk - Fix bug when using separate samplerstates and textures
Change 3914730 by Rolando.Caloca
DR - vk - Bump version
Change 3914764 by Rolando.Caloca
DR - vk - Don't crash on exit
Change 3915532 by Rolando.Caloca
DR - vk - Parallel context fixes
Change 3915589 by Rolando.Caloca
DR - vk - Hoist and rename transition and layout manager class out of the context
Change 3915592 by Rolando.Caloca
DR - Fix gpu marker name
Change 3917607 by Rolando.Caloca
DR - vk - Fix depth bounds on Vulkan
Change 3917609 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3917616 by Rolando.Caloca
DR - Fix D3D11 initialization
Change 3920569 by Rolando.Caloca
DR - vk - Prep for layout mgr refactor
Change 3921023 by Rolando.Caloca
DR - vk - Dump layer fixes
Change 3921623 by Rolando.Caloca
DR - vk - Prep refactor for layouts
- Dump now shows marker tree
Change 3922007 by Rolando.Caloca
DR - vk - Fix extra allocation per draw call
Change 3922442 by Rolando.Caloca
DR - vk - Detect potential issues
Change 3922470 by Rolando.Caloca
DR - vk - Minor optimization
Change 3922482 by Rolando.Caloca
DR - vk - More minor optimizations
Change 3923158 by Rolando.Caloca
DR - Move r.DisableEngineAndAppRegistration out to common RHI and use it on Vulkan
Change 3923486 by Rolando.Caloca
DR - vk - Minor cpu optimizations
Change 3923505 by Rolando.Caloca
DR - vk - Use bigger allocations for uniform buffers
Change 3923516 by Rolando.Caloca
DR - vk - Android compile fix
Change 3923557 by Rolando.Caloca
DR - vk - Cache descriptorset layouts, refactor duplicated code
Change 3923851 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3924153 by Rolando.Caloca
DR - vk - Support for dynamic UBs
Change 3924193 by Rolando.Caloca
DR - vk - Remove old per pso descriptor pools
Change 3924197 by Rolando.Caloca
DR - vk - Remove unused global uniform buffer pool
Change 3924220 by Rolando.Caloca
DR - vk - Wrap some unused classes in their define
Change 3924234 by Rolando.Caloca
DR - vk - Show ring buffer wrapping messages
Change 3924243 by Rolando.Caloca
DR - vk - Fix bad dynamic buffer
Change 3924902 by Rolando.Caloca
DR - vk - Fix crash running infiltrator
Change 3925209 by Rolando.Caloca
DR - vk - Fix bug with dynamic buffers
- Remove old defines
Change 3925300 by Rolando.Caloca
DR - vk - Allow packed uniforms as dynamic UBs (with r.Vulkan.DynamicGlobalUBs)
Change 3925627 by Rolando.Caloca
DR - vk - Move DynamicOffsets into the pipeline state
Change 3925834 by Rolando.Caloca
DR - vk - Cache per stage information
Change 3925835 by Daniel.Wright
Fixed DisplayName for UParticleModuleCollisionGPU
Change 3925897 by Rolando.Caloca
DR - vk - Split update descriptors loop
Change 3926488 by Rolando.Caloca
DR - vk - 16MB for ring buffer on desktop, 8 MB for mobile
Change 3928168 by Guillaume.Abadie
Cherry-pick 3917219: Implements r.DOF.RecombineQuality
Change 3928173 by Guillaume.Abadie
Cherry-pick 3927888: Enables r.DOF.HybridScatter.BackgroundCompositing and r.DOF.HybridScatter.ForegroundCompositing to work when both enabled.
Change 3928216 by Rolando.Caloca
DR - vk - Fix Android
- Fix static analysis
Change 3929119 by Rolando.Caloca
DR - vk - Rename some classes for clarity
- Fix read-only cvar
Change 3929151 by Rolando.Caloca
DR - vk - Rename class
Change 3930046 by Rolando.Caloca
DR - Temp fix Vulkan flickering grass
Change 3930148 by Rolando.Caloca
DR - vk - Only update dirty descriptors
- Use dynamic descriptors for packed global uniform buffers
Change 3930998 by Guillaume.Abadie
Packs shader permutation in different XGE submissions.
Change 3931079 by Rolando.Caloca
DR - vk - Fixes for Android and non-real ubs platforms
Change 3931942 by Krzysztof.Narkowicz
Depth rendering - When EarlyZPassMode is set to DDM_AllOccluders, dynamic objects need also to test bUseAsOccluder just like static ones
#jira none
Change 3932819 by Daniel.Wright
[Integrate] Scene Textures uniform buffer
* Base Pass Uniform Buffer now contains a Scene Textures uniform buffer. Previously the translucent base pass had to check ~40 loose scene texture parameters every draw.
* FMeshMaterialShader's must now bind PassUniformBuffer and supply a valid pass uniform buffer. For most passes this is just FSceneTextureUniformParameters.
* FRendererModule::DrawTileMesh can now cleanly set dummy scene texture resources, just by configuring how the pass uniform buffer is created.
* Moved scene texture shader functions out of Common, into SceneTexturesCommon which must be manually included by shaders that want to use them
* Separate Mobile Scene Textures uniform buffer to silo the platform complexities
Moved DBuffer inputs out of FDeferredPixelShaderParameters and into FOpaqueBasePassUniformParameters
Removed per-frame material uniform expressions. GameTime material node with period is now implemented with an fmod in the shader, without the use of MaterialFloat, so that it will happen at full precision.
* Per-frame expressions were used when the GameTime material node had a period, to do the fmod on the CPU where 32 bit precision is guaranteed, for mobile GPU's where pixel shader precision is sometimes less than 32fp.
Moved forward shading data into the Base Pass Uniform Buffer
Removed instanced stereo support for the light cull grid - will have to be reimplemented without changing SRV's per draw
Base pass sets View Uniform Buffer from DrawRenderState instead of choosing which one to set per-draw
Fixed padding in nested uniform buffer structs
Skip SRV members on Feature Level SM4 and below
Change 3932964 by Rolando.Caloca
DR - vk - Renderdoc on Android
Change 3933095 by Daniel.Wright
Moved FSceneTextureUniformParameters out of the opaque base pass uniform buffer.
* Base Pass shaders now enable SCENE_TEXTURES_DISABLED when compiling for a material of any domain other than MD_Surface. These are used when rendering thumbnails of a material in a different domain, which could be opaque, but the opaque base pass drawing policy does not bind a scene textures uniform buffer, so the shader must not bind it.
* Opaque materials can no longer use EyeAdaptation.
Change 3933096 by Daniel.Wright
Better d3d11 assert message when a uniform buffer was not set by the renderer
Change 3933176 by Rolando.Caloca
DR - vk - Prefer mailbox if available
Change 3933271 by Ryan.Vance
#jira UE-55936
Fixed missing referenced uniform bindings on AR pass-through camera shaders.
Change 3934000 by Guillaume.Abadie
Fixes Win32 build in ShaderCompilerXGE.cpp
Change 3934299 by Guillaume.Abadie
Fixes a bug in DOF's reduce operator that was casusing color leaking between background and foreground.
Change 3934699 by Daniel.Wright
Added bAffectDistanceFieldLighting to landscape
Change 3935190 by Daniel.Wright
Forward Light Grid SRV's use StructuredBuffer on Metal, instead of 'invariant Buffer', which throws off RemoveUniformBuffersFromSource parsing
Change 3935606 by Daniel.Wright
Removed LightmapPolicy::Set which was needed for vertex lightmaps
Renamed FVertexFactory::Set to SetStreams to make it findable
Change 3936510 by Rolando.Caloca
DR - vk - Update glslangValidator.exe to 1.0.65.1 for dumped debug SPIRV shaders
Change 3936545 by Richard.Wallis
Clone of CL's (3925763, 3925430, 3925424, 3925385, 3925278) Mark Satt's Xcode fixes from task stream //Tasks/UE4/Dev-UERNDR-354-mtlpp/
Plus XCode 9.2 compile fix in ApplicationPlatformCompilerPreSetup.h for -Wunused-lambda-capture.
Change 3938061 by Daniel.Wright
Vulkan: Added support for SRV's in Uniform Buffers
Change 3938123 by Daniel.Wright
Vulkan: Slightly better assert for null resources in uniform buffer
Change 3939197 by Rolando.Caloca
DR - vk - Disable custom memory mgmt
Change 3939677 by Rolando.Caloca
DR - vk - Fix static analysis warning
Change 3939809 by Rolando.Caloca
DR - vk - Fixes for async compute
Change 3939875 by Rolando.Caloca
DR - vk - Support for -vktrace
Change 3939977 by Rolando.Caloca
DR - vk - Skip a condition during gather UBs
- Set up efficient compute async var
- Fix validation cmd line
Change 3939982 by Rolando.Caloca
DR - vk - Revert mipchain
Change 3939984 by Rolando.Caloca
DR - vk - Remove unnecessary asserts
Change 3940082 by Rolando.Caloca
DR - vk - Custom mem mgr
Change 3940475 by Rolando.Caloca
DR - vk - Fix DFAO (indirect draw offset)
Change 3940555 by Rolando.Caloca
DR - vk - Minor fixes
Change 3940675 by Rolando.Caloca
DR - vk - Fix indirect type mismatch
Change 3941111 by Rolando.Caloca
DR - Renderpass bGeneratingMips
Change 3941847 by Daniel.Wright
Fixed Volumetric Lightmaps on Static geometry only working if the geometry had been built with Surface Lightmaps before
Change 3941978 by Rolando.Caloca
DR - vk - Minor fixes for presenting on compute queue
Change 3942074 by Rolando.Caloca
DR - vk - Remove some RHI stalls
- Fixed swap chain stat
Change 3943946 by Daniel.Wright
Fixed Texcoord0 on Volume materials on a particle sprite, including SubUV particles.
Change 3944065 by Daniel.Wright
Fixed SceneDepth collision getting broken on GPU particles when a scene capture is rendering
Change 3944158 by Daniel.Wright
Fixed ViewUniformShaderParameters accessing GEngine->PreIntegratedSkinBRDFTexture too early during slate loading screen
Change 3944865 by Rolando.Caloca
DR - vk - Prep for render passes
Change 3945196 by Rolando.Caloca
DR - Move render pass validate to cpp
Change 3945202 by Rolando.Caloca
DR - vk - Some fixes for using real render passes
Change 3945357 by Rolando.Caloca
DR - Fix bad condition
Change 3946295 by Yuriy.ODonnell
Added a sentinel member to FLightMap, which is initialized in the ctor and reset in the dtor. Sentinel is then checked in FLightCacheInterface::GetLightMapInteraction().
This aims to shed some more light on a hard-to-repro crash, which is suspected to be a use-after-free bug: http://crashreporter/Buggs/Show/1785593
Change 3946407 by Rolando.Caloca
DR - vk - Prep for refactor
Change 3946648 by Rolando.Caloca
DR - vk - Fixes for async compute (wip)
Change 3947299 by Rolando.Caloca
DR - vk - FIx static analysis
Change 3948434 by Rolando.Caloca
DR - vk - Fix exiting with parallel
Change 3948928 by Rolando.Caloca
DR - vk - Fix enabling draw markers for tools
Change 3949021 by Rolando.Caloca
DR - vk - Buffer tracking layer
Change 3949602 by Rolando.Caloca
DR - vk - static analysis fix
Change 3949757 by Rolando.Caloca
DR - vk - Remove bogus parameter
Change 3949810 by Rolando.Caloca
DR - vk - Move waits for cmd buffer
Change 3950270 by Guillaume.Abadie
Implements dedicated gather pass for foreground hole filling to avoid being VGPR bound in foreground gather pass, but still being hable to amend foreground.
Change 3950272 by Rolando.Caloca
DR - vk - Minor refactor for semaphores
Change 3950279 by Guillaume.Abadie
Oups... fixes build
Change 3950298 by Rolando.Caloca
DR - vk - Gather wait semaphores in the cmd buffers
Change 3950371 by Rolando.Caloca
DR - vk - fixes for async compute
Change 3950597 by Rolando.Caloca
DR - vk - Fix for clip distance (fixes planar reflections)
Change 3951075 by Rolando.Caloca
DR - vk - Fix for async compute
Change 3952524 by Guillaume.Abadie
Some DOF enum refactoring.
Change 3955016 by Daniel.Wright
Fixed BuiltData package getting renamed into the map package during a content browser folder move, causing a redirector to be incorrectly placed in the map package
Change 3955668 by Guillaume.Abadie
Fixes a bug where full res coc buffer was computed even if not doing slight out of focus.
Change 3956722 by Guillaume.Abadie
Fixes a bug where r.DOF.MaximalForegroundBlurringRadius was screen percentage dependent.
Change 3959212 by Guillaume.Abadie
Prefixes all DOF's shaders files with DOF keyword.
Change 3959705 by Guillaume.Abadie
Optimises the DOF setup pass outputing half res and full res with LDS downsample.
Change 3959941 by Guillaume.Abadie
Halfs DOF's hybrid scatter compilation by using a unique downsampling for both foreground and background, instead of 2 reduce passes.
Change 3962273 by Rolando.Caloca
DR - Fix typos
#jira UE-56317
PR #4586
Change 3962615 by Rolando.Caloca
DR - vk - Compile fix
Change 3962949 by Rolando.Caloca
DR - Fix DOFDownsample extension
Change 3962993 by Guillaume.Abadie
Back out changelist 3962949
Change 3963016 by Guillaume.Abadie
Adds missing DOFDownsample.usf
Change 3963041 by Rolando.Caloca
DR - vk - Misc changes to help integrate
Change 3964293 by Guillaume.Abadie
Fixes DOF's setup pass reading outside of the viewport.
Change 3964475 by Guillaume.Abadie
Collapses DOF's hybrid scatter compilation passes into reduce passes.
Change 3964883 by Daniel.Wright
Fixed 3d texture in uniform buffer on unsupporting RHI
Change 3964897 by Rolando.Caloca
DR - Compile fixes
Change 3964914 by Guillaume.Abadie
Fixes a bug on r.DOF.RecombineQuality=0
Change 3965153 by Guillaume.Abadie
Fixes compile warning in D3D12Commands.cpp.
Change 3965814 by Rolando.Caloca
DR - Prep for integration conflict resolve
Change 3965899 by Rolando.Caloca
DR - Fix odd linkage issue
Change 3966072 by Rolando.Caloca
DR - More prep for merge
Change 3966163 by Rolando.Caloca
DR - Merge prep
Change 3966844 by Guillaume.Abadie
Packs multiple DOF scattered bokeh per instance and uses PT_RectList in DOF for platforms that can.
Change 3967116 by Rolando.Caloca
DR - Compile fixes for integration
Change 3967273 by Rolando.Caloca
DR - Use same path for mip generation
Change 3967277 by Rolando.Caloca
DR - vk - Fix mips on cubemaps
Change 3967693 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, missing shaders
Change 3967851 by Rolando.Caloca
DR - Copying //UE4/Dev-Main@3912313 to //UE4-DevRendering, Engine 2/2
Change 3968083 by Rolando.Caloca
DR - Integration compile fixes
Change 3968240 by Rolando.Caloca
DR - Shader compile fixes for integration
Change 3968270 by Rolando.Caloca
DR - Fix for missing hash calculation
Change 3969426 by Rolando.Caloca
DR - vk - Fix warning
Change 3969869 by Krzysztof.Narkowicz
Back out changelist 3946295 - UE-54537 is fixed, so no need for this debug sentinel.
#jira none
Change 3969944 by Rolando.Caloca
DR - Warning fix
Change 3970020 by Rolando.Caloca
DR - Bump after integration
Change 3970052 by Rolando.Caloca
DR - Fix for mobile
Change 3970236 by Daniel.Wright
Causing decal shader to recompile to fix a merge bug
Change 3970270 by Daniel.Wright
Bump shader version from merge
Change 3970339 by Olaf.Piesche
Replace series of locks/unlocks with a single one for curve injection
#tests QAGame
Change 3970390 by Rolando.Caloca
DR - Rename FSceneTextureUniformParameters to FSceneTexturesUniformParameters
- Remove duplicate method for occlusion queries
Change 3970523 by Rolando.Caloca
DR - Fix serialization of shaders
Change 3970533 by Arne.Schober
DR - fix for removing the Speed tree wind when the scene gets deleted. The original enque rendercommand requeues the element onto the renderthread although the call already came from the Renderthread and the scene can get lost in between.
#jira UE-56322
Change 3971160 by Guillaume.Abadie
Fixes CompositeEditorPrimtive pass and SelectionOutline pass for VR editor to work with TAAU.
Change 3971516 by Guillaume.Abadie
Cherry-pick 3912629: Fixes SSR that was computing vigneting according to PrevScreen that could let some outside viewport samples going through when rotating the camera.
#jira UE-55353
Change 3971594 by Krzysztof.Narkowicz
Fixed assert inside BindLightMapVertexBuffer. FSplineMeshSceneProxy was calling BindLightMapVertexBuffer for invalid (still not generated) lightmap UV channel after mesh reimport. Simplified assert, as at the moment almost all of the high callsites already clamp lightmap uv channel.
#jira UE-56321
Change 3971622 by Krzysztof.Narkowicz
Fixed crash inside Indirect Lighting Cache. Data (reflection captures and lightmap) generation calls ULevel::GetOrCreateMapBuildData(), which can destroy lightmap data if level has legacy data. Last Lightmap generation step recreates this data, but if user cancels lightmap generation - it won't do that.
#jira UE-56171
Change 3974788 by Rolando.Caloca
DR - Remove GSupportsGenerateMips
Change 3974789 by Rolando.Caloca
DR - Remove bogus function
Change 3974986 by Rolando.Caloca
DR - vk - Tracking fixes
Change 3974989 by Rolando.Caloca
DR - vk - Don't submit dummy barriers
Change 3975075 by Olaf.Piesche
Update for particle curve injection improvement, fixing ES2 problems
#tests QAGame tm-shadermodels, various color curve tests in-editor
Change 3975957 by Uriel.Doyon
Fixed invalid max texture resolution when using the bake material tools.
Change 3978471 by Daniel.Wright
New cvar r.SkylightUpdateEveryFrame
Change 3978779 by Rolando.Caloca
DR - Accessor for texture sizes
Change 3978797 by Rolando.Caloca
DR - Clean up RHI CopyTexture API
Change 3978832 by Rolando.Caloca
DR - vk - Workaround for RenderDoc crashing due to Descriptor Pool reset
Change 3978836 by Rolando.Caloca
DR - vk - Remove generate mips
Change 3979201 by Rolando.Caloca
DR - vk - RHI CopyTexture. Uses general layout for generating mips
Change 3979204 by Rolando.Caloca
DR - Use render passes and CopyTexture to generate mips
Change 3979592 by Rolando.Caloca
DR - Warning fix
Change 3980855 by Krzysztof.Narkowicz
Optimize bounding sphere radius after non-uniform scale by using bounding box extent.
#jira UE-56227
Change 3981065 by Rolando.Caloca
DR - vk - Fix bad layout
#jira UE-56238
Change 3981346 by Rolando.Caloca
DR - Copy from 3707257
Support for not flushing compute jobs (r.D3D11.UAVFlushNV)
Change 3981347 by Rolando.Caloca
DR - Copy from 3707257
Don't flush between morph dispatched
Change 3981932 by Mark.Satterthwaite
Generate the shader hash and function name when a Metal shader error needs to be reported so that even without shader code we get something to go on.
Change 3982442 by Rolando.Caloca
DR - Fix warning
Change 3982652 by Rolando.Caloca
DR - vk - Signal semaphore cleanup
Change 3983917 by Richard.Wallis
Clone of CL 3974146 converted for mtlpp along with extra mtlpp usage suggestions by Mark Satt:
Fix for black flickering on first paint with weighted material landscape on Mac. When using AsyncCopyFromBufferToTexture in Metal we put the blit operation on the prologue encoder - however after a draw call using that resource the copy operation should happen after on the current encoder, this keeps the correct order of operations.
Added Bool return from various Asnyc renderpass resource requests so caller can decide correct further action. Updated to include the other async functions.
Change 3984409 by Guillaume.Abadie
Attempts to make static analysis happy again.
Change 3984435 by Nick.Bullard
Checking in Performance Test level provided to us by Tor Frick based on UE-44841.
This has been utilized for checking issues against Aftermath performance impact.
The Map includes 2 Level Book marks, most testing has been done against Bookmark 1 view, in fullscreen, in game mode
Change 3985087 by Mark.Satterthwaite
Make sure that the particle scratch buffer is large enough to hold all the data for the curve texture we are rendering to, otherwise a full set of curves will start scribbling memory after 64Kb (the curve texture is 256Kb of data - 512x512x4 as sizeof(RGBAUInt8) == 4). This happens in ElementalDemo.
Change 3985201 by Rolando.Caloca
DR - Fix bad CopyTexture
Change 3985258 by Mark.Satterthwaite
Try and detect orientation changes so that we don't blow-up on iOS due to a huge mismatch between the drawable texture for the display and the scene's depth-stencil target. I can't just fiddle with the depth-stencil texture itself without running the risk of obliterating in-use data and really we shouldn't permit such a mismatch anyway but it is fallout from 3620990.
#jira UE-55756
Change 3986449 by Rolando.Caloca
DR - vk - Update & consolidate Vulkan headers to 1.1.70.1
Consolidate SDK into one
Change 3986571 by Guillaume.Abadie
Makes PVS-Studio happy again in DOF.
Change 3987039 by Yuriy.ODonnell
Initial implementation of tracing profiler to show CPU and multiple GPUs on the same timeline. Currently only supported on DX12 platforms.
Use `TracingProfiler frames=N` console command to trigger a capture of the next N frames. Trace is saved to disk as a JSON file into `Saved/Profiling/Traces` directory.
Trace file uses Google Tracing format and can be visualized in Chrome built-in profiler (chrome://tracing).
`r.GPUStatsChildTimesIncluded=1` CVar makes timing scopes hierarchical.
`TracingProfiler.BufferSize=N` CVar controls the size of the tracing buffer, which may need to be increased for long traces (default is 65k events). Only can be set at startup.
Change 3987074 by Yuriy.ODonnell
Implemented timestamp calibration on DX11. Calibration is only performed when tracing profiler session starts.
Change 3987160 by Yuriy.ODonnell
Added thread naming and ordering to the tracing profiler output
Change 3987331 by Mark.Satterthwaite
Remove the Nvidia hack to retain resource references in command-buffers for UE-46604 as the mtlpp refactor provides stronger resource lifetime guarantees.
#jira UE-46604
Change 3987754 by Mark.Satterthwaite
Fix MetalRHI memory reporting in non-default path.
PR #4568
Change 3988184 by Arciel.Rekman
Linux: Fix editor OpenGL performance (UE-55960).
- GetCurrentThreadId() calls became much more frequent with the OpenGL RHIT refactor.
- We used to only cache that value in monolithic builds, because having per-thread static variables in dynamic libraries is risky due to OS limits.
- This change adds dynamically-managed per-thread cache for non-monolithic builds.
#jira UE-55960
Change 3988394 by Rolando.Caloca
DR - vk - Improve memory mgmt
- Use 256MB pages for Device heap (or 1/8th if less).
- Remove texture allocations not going through resource manager
Change 3988405 by Marcin.Undak
Fix VulkanQuery crash on exit #codereview rolando.caloca #codereview arciel.rekman #rb arciel.rekman
Change 3988567 by Rolando.Caloca
DR - vk - Support for packed global UBs on pci aperture heap
Change 3988668 by Rolando.Caloca
DR - vk - Remove old comments
Change 3988956 by Marcin.Undak
RecordPerformance: added option to skip building/cooking before tests #rb none #codereview arciel.rekman
Change 3989161 by Yuriy.ODonnell
Static analysis error fix
Change 3989196 by Guillaume.Abadie
Fixes a crash in light shaft's TAA pass.
#jira UE-57366
Change 3989207 by Yuriy.ODonnell
Refactored FRealtimeGPUProfilerFrame to avoid splitting profile events when calculating exclusive times of scopes. This allows tracing profiler to retain the hierarchical view of the data, while keeping CSV and GPU Stat system behavior intact.
Change 3989469 by Rolando.Caloca
DR - vk - Fix for bad index; fix for bad transition
Change 3989772 by Yuriy.ODonnell
Implemented timestamp calibration on Vulkan
Change 3990040 by Marcus.Wassmer
Aftermath enabled by default.
Removed unnecessary warning for other vendors
Change 3990064 by Mark.Satterthwaite
Ensure that packed globals are reuploaded when the command-encoder is restarted - don't simply invalidate the existing parameters. This properly handles cases where a single logical render-pass is broken into multiple command-encoders and/or command-buffers - otherwise all shaders must reset all parameters each time. When we move between frames we *do* want to perform a full state reset though as previous frame globals are treated as invalid.
Change 3990080 by Mark.Satterthwaite
Change the way we invalidate the visibility buffer between command-buffers and command-encoders so that on iOS you can reuse the same buffer within the same command-buffer, but not across more than one. The code provides an exception to this rule when running under the MetalRHI validation tools which can break each draw call into its own buffer.
Change 3990084 by Mark.Satterthwaite
Get MetalStatistics compiling again.
Change 3990381 by Arciel.Rekman
Bring back D3D12 in RecordPerformance.
Change 3991113 by Rolando.Caloca
DR - Fix crash on RHI thread on mobile preview
- Check RHI objects are not null in the PSO initializer
Change 3991191 by Ryan.Vance
#jira UE-55952
Reimplemented instanced stereo for forward lighting cull grid after the srv/ub clean up.
Change 3991343 by Rolando.Caloca
DR - Copy from 3911492
UE4 - Disabled parallel mobile bass pass by default. This is experiemental and not known to be useful on any mobile platform.
Change 3991375 by Mark.Satterthwaite
Proper copyright assignment in the mtlpp debugger header.
Change 3993151 by Daniel.Wright
Fix RTDF resource transition found by Rolando
Change 3993818 by Rolando.Caloca
DR - Missed file
Change 3993923 by Krzysztof.Narkowicz
Fixed crashes inside RemoveSpeedTreeWind() and RemoveSpeedTreeWind_RenderThread().
FStaticMeshComponentRecreateRenderStateContext didn't flush deferred render updates causing stale RenderData to be left:
1. Thumbnail manager called SetStaticMesh(nullptr), which added StaticMeshComponent to deferred render updates.
2. UStaticMesh::Build called FStaticMeshComponentRecreateRenderStateContext and destroyed DenderData, but didn't touch Thumbnail's manager StaticMeshComponent as it was nullptr.
3. This resulted in a StaticMeshComponent with stale RenderData pointer.
#jira UE-54544
Change 3994033 by Rolando.Caloca
DR - vk - Reworked layers & extensions, as we were not doing it properly
- Remove -vulkanstandardvalidation and -novulkanstandardvalidation as they are not needed anymore
Change 3994275 by Mark.Satterthwaite
Change to linking against mtlpp via AddEngineThirdPartyPrivateStaticDependencies and marking its header with THIRD_PARTY_* macros in the vain hope that might convince the remote compilation code to distribute the module to the remote machine when building MetalRHI.
#jira UE-57507
Change 3994365 by Mark.Satterthwaite
Pilfer some code from the old MetalHeap file to handle calculating texture memory size on older macOS and iOS builds when running with stats or LLM enabled.
#jira UE-57513
Change 3994382 by Rolando.Caloca
DR - vk - Some missing locks during image tracking
Change 3994422 by Rolando.Caloca
DR - vk - Remove bogus shader format
Change 3995530 by Rolando.Caloca
DR - vk - Fix for crash when validation is enabled
Change 3995531 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3995532 by Rolando.Caloca
DR - vk - Added support for r.Vulkan.SaveValidationCache
Change 3995610 by Uriel.Doyon
Texture Streaming Changes and Fixes:
- Using the small FOV items (like scopes) now only affect visible primitives (through "r.Streaming.MaxHiddenPrimitiveViewBoost").
- Static components added after the level is registered in the streaming manager are now handled correctly (fixes the low quality on the chests)
- Dynamic components do not need to register to the streaming manager anymore.
- Optimized dynamic component management by removing duplicate entries in the update list.
- Added a pregarbage collect pass to the dynamic component management to optimize GC handling.
- Added a budget reset logic whenever the scene requirements change significantly.
- PIE worlds now have correct visibility information.
- Fixed possible invalid memory access when processing the streaming manager slave views.
- Refactored the incremental level texture data build to prevent new components from being unhandled.
- Removed StreamingManager callbacks for NotifyActorSpawned() and NotifyPrimitiveAttached()
- Added a StreamingManager callback NotifyPrimitiveUpdated(), to be used whenever a primitive streaming state must be updated.
#jira none
Change 3995908 by Arciel.Rekman
Fix compile errors when using new Vulkan queries.
Change 3995990 by Arciel.Rekman
More compile fixes to new Vulkan queries.
- MSVC did not catch this, clang did.
Change 3996101 by Rolando.Caloca
DR - vk - Win32 compile fix
Change 3996323 by Mark.Satterthwaite
Use the right include path to export the mtlpp headers.
#jira UE-57507
Change 3996392 by Arciel.Rekman
Vulkan: fix crash on start when using new queries.
- CommandBufferManager was not yet set at that point and the code in queries relied on it.
Change 3996585 by Rolando.Caloca
DR - Slight improvement to GL being black, but just a temporary 'workaround' as it's not correct.
Change 3998806 by Arciel.Rekman
Fix Linux build (UE-57602).
#jira UE-57602
Change 3998866 by Arciel.Rekman
SubwaySequencer: fix old shader platform name.
Change 3998947 by Mark.Satterthwaite
Silence deprecation warnings in CEF on macOS now that we've moved to 10.12 as the minimum.
#jira UE-57577
Change 3998951 by Mark.Satterthwaite
Fix last of the deprecation errors that I am aware of for macOS 10.12.
#jira UE-57581
Change 3998984 by Mark.Satterthwaite
Build mtlpp for iOS 9.0 not 9.3.
#jira UE-57586
Change 3999065 by Rolando.Caloca
DR - vk - Make sure we use version 1.0.0
#jira UE-57521
Change 3999071 by Arne.Schober
DR - [UE-55433, UE-57361] Hack SNORM support in OpenGL by re-interpreting UNORM. Underlying data is always SNORM.
#jira UE-55433, UE-57361
Change 3999494 by Rolando.Caloca
DR - Enable r.UnbindResourcesBetweenDrawsInDX11 in debug
- Clear compute resources when r.UnbindResourcesBetweenDrawsInDX11 is enabled
Change 4000197 by Krzysztof.Narkowicz
Mesh simplifier - normalize TexCoordWeights using min/max TexCoord range. This fixes precision issues for very big TexCoord values and allows to optimize for all TexCoord channels when channels have values of different magnitudes (e.g. non standard TexCoord data).
#jira UE-54935
Change 4000305 by Yuriy.ODonnell
Suppress PVS Studio warning V547 (Expression is always true) related to Aftermath
Reported issue to PVS team and to NVIDIA. Confirmed false positive, fix coming in future PVS version (v6.24).
#jira UE-57579
Change 4000853 by Arciel.Rekman
Linux: fix not calling CrashReportClient (UE-57678).
#jira UE-57678
Change 4001504 by Rolando.Caloca
DR - vk - Fix transition
Change 4002460 by Krzysztof.Narkowicz
Toggle for contant shadow length in word space
Exposed contact shadows to Blueprints
#jira none
Change 4002608 by Rolando.Caloca
DR - vk - Fix static analysis
- Fix potential debug image tracking crash
- Comment out unused methods
Change 4002615 by Rolando.Caloca
DR - vk - Allow r.Vulkan.WaitForIdleOnSubmit to be set at startup (e.g. in ConsoleVariables.ini)
Previously, if your map needed to UpdateSkyCaptureContents on startup, an ensure would fail if GWaitForIdleOnSubmit was set.
PrepareForCPURead needs to wait for the command buffer to finish before trying to read the results back, but the wait has already happened when r.Vulkan.WaitForIdleOnSubmit is set. Trying to wait again correctly complains that the command buffer is not in the correct state. So, skip the WaitForCmdBuffer call when r.Vulkan.WaitForIdleOnSubmit is set.
Change 4002640 by Rolando.Caloca
DR - vk - Missing support for CVarDefaultBackBufferPixelFormat
Change 4002919 by Guillaume.Abadie
Implements DOF's temporal upsampling pass for better dynamic resolution stability.
Change 4002984 by Guillaume.Abadie
Integrates Sebastian Aaltonen's ALU optimisations for TAAU.
Change 4003112 by Olaf.Piesche
Fir for TBB stall (resulting in severe hitches and hangs in the editor with stats active); tested multiple scenarios and encountered no hitches.
#tests QAGame PerformanceTest and RenderTest map with various stats on and off
Change 4003159 by Mark.Satterthwaite
Undo parts of changelist 3970553 - the ref-counted pointer approach to returning textures to the pool is not working as expected so we'll remove that. It'll be faster on the CPU without it and everything works thanks to the changes this CL made to the way textures were released.
#jira UE-57538
Change 4003287 by zachary.wilson
Adding reflection capture content to TM-LightingScenarios
Change 4003395 by Arne.Schober
DR - Fix unitzialised value when clicking Go To in the editor
#jira UE-57048
Change 4003425 by Rolando.Caloca
DR - vk - Fix for new occlusion queries
Change 4003530 by Arne.Schober
DR - Disable GPU Benchmark in headless configurations
#jira UE-57673
Change 4003717 by Rolando.Caloca
DR - vk - Fix for depth not store, stencil store
Change 4003719 by Rolando.Caloca
DR - Minor switch to render pass
Change 4003720 by Mark.Satterthwaite
Don't suballocate private memory buffers on Vega and only Vega as there is something wrong with the blits in those cases but I can't capture a GPU trace to find out what right now (the driver is broken) - could be a bug in my code but this works on Polaris and Nvidia so it will need to be filed as a radar for AMD.
Remove the FMetalBufferChunk from FMetalBuffer and simply store a pointer to the owning Heap/Magazine allocator. The FMetalResourceHeap now calls a new Release function to return the buffer to the allocator which will be faster on the CPU.
#jira UE-57659
Change 4003854 by Mark.Satterthwaite
Undo parts of 3990064 and try a different approach to get the uniforms to upload and remain available in the right places. As the original bug has been lost to time we should keep an eye out for missing buffer bindings by running under the Metal validation layer periodically.
#jira UE-57576
Change 4004709 by Rolando.Caloca
DR - Support for D3D 11, 12 & Vulkan for UAVs off Index Buffers
Change 4005149 by Guillaume.Abadie
Adds shader permutation to avoid clamping input buffer UV in DOF's gather pass.
Change 4005284 by Uriel.Doyon
Resaved volume texture assets with proper engine version.
#jira UE-57534
Change 4005286 by Guillaume.Abadie
Reduces constant setup in DOF's gather pass.
Change 4005359 by Rolando.Caloca
DR - vk - Fix annoying warning
Change 4005363 by Rolando.Caloca
DR - Fix android not finding vulkan shaders
Change 4005457 by Rolando.Caloca
DR - vk - Fix swapchain crash
Change 4005473 by Patrick.Kelly
UE-57135: Editor crash if set Reflection Capture Resolution to be 64 and New a Default level
Codde by Daniel
Tested by Patrick
Change 4005474 by Rolando.Caloca
DR - vk - Remove glsl code from shaders. Packaged QAGame goes from 176MB to 162MB
Change 4005759 by Krzysztof.Narkowicz
Fixed a bug, where reflection capture build is called, even though we are in mobile preview mode.
#jira UE-57743
Change 4005774 by Mark.Satterthwaite
Update the wave intrinsics to avoid implicit bool->uint conversion that Apple don't like.
#jira UE-57750
Change 4005974 by Mark.Satterthwaite
Don't use cubemap array types on iOS Metal as they aren't available on all devices and we need to maintain backward compatibiliy for years to come.
#jira UE-57083
Change 4006056 by Mark.Satterthwaite
Remove the use of the PrimitiveType argument from Metal draw calls.
#jira UE-57822
Change 4006139 by Mark.Satterthwaite
- Move the render-pass functions into the MetalRHI implementation for later alteration.
- Implement Index buffer UAVs for Metal - makes them more like vertex-buffers so this is one more step on the road to a unified buffer base-class implementation.
Change 4006215 by Mark.Satterthwaite
Metal's begin & end render/compute pass API implementation will take some time, but for now make it not depend on the parent stub implementation.
Change 4006394 by Mark.Satterthwaite
In lieu of a real instruction count just use the number of lines in the "Main" function of the shader as the instruction count for Metal.
#jira UE-57551
Change 4006493 by Mark.Satterthwaite
MetalRHI can currently support 4-component formats for Buffer UAVs - this might need some thought in the future as the API evolves but we might as well take advantage while we can.
Change 4006495 by Daniel.Wright
Integrate from Refactor branch
* New FMaterialRenderProxy function GetMaterialWithFallback which provides both the FMaterialRenderProxy and FMaterial. Needed when falling back to default material, so that proxy and material resource match.
* Local vertex factory uniform buffer
Change 4006851 by Brian.Karis
Fix for joined charts forming an L to inflate both axii.
Thanks to Jess Kube of The Coalition.
Change 4006852 by Brian.Karis
Fix for hard coded reflection capture cube map size. Should fix light static light aliasing in captures
Change 4006918 by Brian.Karis
New ByteBuffer functionality. Memcpy and scatter upload. Can implement GPU side TArray reflection.
Not yet used by checked in code. WIP optimization.
Change 4007246 by Guillaume.Abadie
Creates lower quality permutation for DOF's gathering pass, without Coc based weighting of the samples, and lower number of gathering ring for fast accumulator.
Change 4007291 by Guillaume.Abadie
Exposes more DOF scalability settings.
Change 4007328 by Guillaume.Abadie
Optimises DOF's half res only setup pass using gather4
Change 4007627 by Richard.Wallis
Fix for when Magic Mouse cannot zoom in World Composition editor. Missing default SNodePanel::OnMouseMove behaviour. Tested using a classic 2xbutton + wheel mouse and a Mac MagicMouse.
#jira UE-57030
Change 4007682 by Richard.Wallis
No video when playing HLS streaming video on Mac. 2 Issues, FPS was zero making duration for video sample buffer nonsense and Video Track dimensions were going to zero on the AVAsset once fully initialized when playing HSL streams. Now cache relevant details and handle zero frame rate.
Notes:
- Caching the frame rate is not as important as we could look it up each time and fix for zero - ignoring that at the moment.
- Assume we DO NOT want the FrameSize to be the last fetched video frame size from the AvfMediaVideoSampler as I think that is the video quality for streaming video and not the media frame size.
- Renamed a variable in the AvfMediaVideoSample - was called FrameRate but it was the FrameDuration by that point.
#jira UE-56734
Change 4007731 by Rolando.Caloca
DR - Disable byte buffers on non-hlsl based platforms
#jira UE-57851
Change 4007741 by Rolando.Caloca
DR - Disable byte buffers on hlslcc platforms
Change 4007782 by Mark.Satterthwaite
Force Metal shaders, including the stdlib, to recompile.
Change 4007918 by Rolando.Caloca
DR - vk - Some static asserts
Change 4008404 by Arciel.Rekman
Do not crash on incompatible Vulkan drivers (UE-57521).
#jira UE-57521
Change 4008442 by Daniel.Wright
Better comments on ERHIFeatureLevel expectations
Change 4008494 by Arne.Schober
DR - moved bDeletedThroughDeferredCleanup before begincleanup to catch cases where the reference is added twice to the array. also removed finishcleanup as all they ever did was deleting the pointer anyway, and it sould be adfded if such functionallity is ever required fom outside of the regular destructor.
#jira UE-57754
Change 4008730 by Mark.Satterthwaite
After the most recent changes to handling uniform buffer dirty bits in MetalRHI we should guard against attempts to set an unbound uniform buffer.
#jira UE-57870
Change 4008949 by Brian.Karis
Fix compile warning
Change 4008951 by Brian.Karis
Added LTC LUT textures
Change 4009326 by Guillaume.Abadie
Compiles out DOF's gathering bokeh simulation on platform other than desktop.
Change 4009380 by Krzysztof.Narkowicz
Moved area light code before the contact shadows, so contact shadows use representative light's direction.
Merged all contact shadows shader code.
Contact shadows keep constant screen space length independent of FoV settings.
Contact shadows for translucents.
Contact shadows for eye.
Change 4009555 by Guillaume.Abadie
Splits DOFCocTile.usf in two.
Change 4009999 by Yuriy.ODonnell
MallocStomp can now be enabled on certain platforms using '-stompmalloc' command line argument.
Previously it was necessary to modify MallocaStomp.h and re-compile the engine.
Currently supported platforms: Win64, Mac, Linux.
Replaced hard-coded page size with FPlatformMemory::GetConstants().PageSize.
Change 4010288 by Rolando.Caloca
DR - vk - Fix for vertex streams
Change 4010289 by Krzysztof.Narkowicz
D3D12 - fixed depth bounds bug, where depth bounds wasn't properly set to [0;1] after disabling.
#jira UE-57510
Change 4010297 by Rolando.Caloca
DR - vk - Remove some functions for android
Change 4010315 by Rolando.Caloca
DR - vk - Remove create info macro
Change 4010451 by Rolando.Caloca
DR - vk - Reuse samplers
- Infiltrator goes from 5759 to 24 samplers!
Change 4010627 by Rolando.Caloca
DR - vk - Fix missing values for tracking swapchain validation
Change 4011924 by Guillaume.Abadie
Implements tile based early return optimisation on DOF's postfiltering method.
Change 4011941 by Guillaume.Abadie
Shaves some ALU in DOF's accumulator for LowQuality permutation.
Change 4012093 by Yuriy.ODonnell
Disable MallocStompOverrunTest() in static analysis config, as it intentionally performs an out-of-bounds access.
Change 4012195 by Rolando.Caloca
DR - vk - Fix for mobile backbuffer layout
Change 4012202 by Rolando.Caloca
DR - vk - Don't use staging buffers on UMA
Change 4012467 by Rolando.Caloca
DR - Remove redundant check
Change 4012486 by Rolando.Caloca
DR - Fix missing transition
Change 4012518 by Guillaume.Abadie
Implements fast shader permutation for DOF's TAA pass.
Change 4013084 by Arciel.Rekman
Fix for Linux clock discrepancy.
- Causing at least one precision issue, possibly more.
(Edigrating 4003273, 4012462 from //UE4/Dev-Editor/... to //UE4/Dev-Rendering/...)
Change 4013266 by Uriel.Doyon
Fixed crash when setting SceneDepthTextureNonMS and not having valid depth buffers in the SceneContext.
Change 4013626 by Uriel.Doyon
Fixed crash in the lighting build when creating a blueprint of the ALight and placing a light component in it.
#jira UE-51672
Change 4013805 by Rolando.Caloca
DR - Fix more missing transitions
Change 4014128 by Arne.Schober
DR - Do not create LocalVFUniformBuffer when running without MVF
#jira UE-57929
Change 4014193 by Uriel.Doyon
Editing component transforms now invalidate the component's lighting cache.
#jira UE-48134
Change 4014282 by Rolando.Caloca
DR - vk - Remove extra validation during dump
Change 4014584 by Uriel.Doyon
Duplicated static meshes now generate a new GUID to prevent possible issues with lightmass.
#jira UE-49064
Change 4014604 by Uriel.Doyon
UStaticMesh postduplicate now only generates a new GUID if !bDuplicateForPIE.
Change 4015460 by Guillaume.Abadie
Composes separate translucency within DOF's recombine pass.
Change 4015571 by Guillaume.Abadie
Refactors tonemapper to use global shader permutation API, that adds permutation for HDR output device rather than dynamic branching that some shader compiler are not very well optimizing.
Change 4015984 by Krzysztof.Narkowicz
Fixed crash inside DFAO resource allocation, when DFAO viewport has zero area.
#jira UE-58000
Change 4016056 by Mark.Satterthwaite
Fix Mac Metal shader compilation of texture cube arrays.
Change 4016062 by Richard.Wallis
Convert things like Space, Delete, F6 etc to unicode so they display correctly on the Mac menu rather than first letter of word. Added the default Mac commands to the GenericCommands so we get a Chord overwrite message and stop things like cmd+ q / w / h from getting bound.
#jira UE-46999
Change 4016109 by Mark.Satterthwaite
One unified Metal buffer implementation - will make further changes a heck of a lot easier.
Change 4016221 by Patrick.Kelly
UE-57617: Ensure changing viewmode to ShaderComplexity while in -game
Change 4016238 by Guillaume.Abadie
Makes clang happy again in Tonemapper.
Change 4016309 by Mark.Satterthwaite
More *_RenderThread implementations for MetalRHI.
Change 4016414 by Mark.Satterthwaite
And MetalRHI version of CreateStructuredBuffer_RenderThread...
Change 4016498 by Mark.Satterthwaite
Don't hold on to the uniform buffers bound to the hull shader when switching to a tessellated draw call as they'll have the wrong buffer layout.
#jira UE-57930
Change 4017394 by Juan.Canada
OpenGL: Fixed shading artifacts due incorrect UNORM/SNORM conversions in skin/skincache/computetangent shaderss.
#jira UE-57691
Change 4017522 by Rolando.Caloca
DR - vk - Remove unused code path (old mip generation detection)
Change 4017539 by Rolando.Caloca
DR - vk - Fix for sky lighting mips showing green on AMD
Change 4017542 by Arciel.Rekman
Moved appCountTrailingZeros to a non-SSE header (fixes ARM64 build).
- Arguably WITH_SLI shouldn't apply to Linux on ARM but the fact that the function wasn't available is bad on its own.
Change 4017827 by Guillaume.Abadie
Optimises DOF's scattering cost by a third.
Change 4017835 by Rolando.Caloca
DR - Only allow a render pass to generate mips for one color render target
Change 4017889 by Mark.Satterthwaite
Cache all the Metal state objects to avoid hitting the API unnecessarily.
Change 4018251 by Mark.Satterthwaite
Fix broken rendering on Metal that tracked back to the innocuous looking changes in CL #4006495 (no blame attached - these changes are entirely reasonable) and cause various bugs in QAGame's TM-DistanceFields, ElementalDemo and probably more. Doesn't fix broken SpeedTree rendering :(.
MetalRHI was allowing uniform buffers to blow away linear texture buffers when the constant buffer has been elided due to dead-code elimination. This problem can manifest without linear textures if the uniform buffer contains both constant data and a resource-table but the shader doesn't use any of the constant data. That's because Metal doesn't separate constant buffers from any other kind of buffer unlike D3D which separates all the slots out - and Metal doesn't provide enough buffers to emulate the D3D arrangement. So far this has only manifested in the MVF + Linear Texture case but a more robust solution will be necessary long term.
Change 4018514 by Guillaume.Abadie
Implements r.DOF.Scatter.MinCocRadius.
Change 4018553 by Guillaume.Abadie
Implements r.DOF.Scatter.MaxSpriteRatio to control the budget upperbound of DOF's scattering
Change 4020369 by Yuriy.ODonnell
Disable MallocStompOverrunTest in all static analysis configs (using USING_CODE_ANALYSIS macro)
Previously was only disabled for PVS-Studio.
Change 4020620 by Arciel.Rekman
Fix XboxOne CIS (fallout of appCountTrailingZeros move).
Change 4020949 by Guillaume.Abadie
Configures DOF in scalability settings.
Change 4021593 by Rolando.Caloca
DR - vk - Support for Aftermath style api on AMD
Change 4021740 by Rolando.Caloca
DR - vk - Change log output
Change 4022008 by Uriel.Doyon
Fixed renderthread stalls when streaming texture mips on low end systems.
Change 4022135 by Rolando.Caloca
DR - vk - Fix last mip's layout during mip chain creation
Change 4022607 by Jian.Ru
Speculative fix for a bug where an invalid vertex buffer is deferenced
#jira UE-56229
Change 4022890 by Rolando.Caloca
DR - Fix reference count not getting released
Change 4023540 by Mark.Satterthwaite
Avoid some pointless retain/release calls on Metal Encoders.
Change 4023796 by Marcus.Wassmer
Tell users they are over the maximum size when allocating very large rendertargets.
Change 4025337 by Yuriy.ODonnell
Improved use-after-free detection mechanism and physical memory usage of MallocStomp on Windows.
MallocStomp on Windows will now reserve virtual address space for every allocation and then commit physical pages only to the valid usable part.
Physical pages will be unmapped on Free, but virtual address space will not be released and therefore will never be re-used.
Virtual address space is allocated from the OS in blocks of 1GB and then linearly sub-allocated.
This reduces VA space usage, as VirtualAlloc returns blocks on 64KB granularity even if we just need 4KB. As a small bonus, this also reduces number of syscalls per allocation.
This dramatically increases accuracy of use-after-free detection, but consumes significant amount of memory for the OS page table.
Virtual memory limit for a process on Win10 is 128 TB, which means we can afford to keep virtual memory reserved for a long time.
Running Infiltrator demo consumes ~700MB of virtual address space per second.
Additionally, committing physical pages only for the usable part of the entire virtual block reduces physical memory usage by ~30% compared to old behavior,
which allocated and committed entire block of pages via BinnedAllocFromOS and then marks border page as non-accessible.
Change 4026047 by Rolando.Caloca
DR - Fix test/shipping
#jira UE-58148
Change 4026150 by Krzysztof.Narkowicz
Force proper ordering of buffer visualization materials - after tonemapping (so exposure doesn't influence it) and before editor stuff like icons.
#jira UE-57992
Change 4026226 by Rolando.Caloca
DR - Fix static analysis
#jira UE-58150
Change 4026354 by Jian.Ru
Debug check trying to catch a crash. Only enabled in editor build
#jira UE-50111
Change 4026655 by Rolando.Caloca
DR - Fix for static analysis
#jira UE-58149
Change 4026763 by Rolando.Caloca
DR - Remove references to defunct CCT to avoid confusing licensees
Change 4027167 by Uriel.Doyon
Fixed possible out of bound buffer access when serializing with FDuplicateDataWriter.
#jira UE-56509
Change 4027850 by Jian.Ru
Prevent log spam
#jira UE-50111
Change 4029546 by Rolando.Caloca
DR - Compile fixes
Change 4029624 by Yuriy.ODonnell
Addressed static analysis errors in MallocStomp
- VirtualAlloc return value is now explicitly checked.
- C6250 is suppressed, as VirtualFree does not release address space by design.
Change 4030225 by Yuriy.ODonnell
Static analysis warning fix: make sure declaration of Sleep() is consistent between Windows headers and TBB
The complexity with this particular case is that the warning is generated in synchapi.h, which is included by some Windows headers.
If a module includes TBB and then Windows platform headers, static analyzer will report this warning.
Suppressing it would require wrapping all instances of Windows header includes in third-party macros.
Current pragmatic solution is to modify the Sleep() declaration in TBB header to be consistent with Windows and to report the issue to Intel for a permanent fix.
Change 4030440 by Rolando.Caloca
DR - Fix crash on mobile
#jira UE-58222
Change 4030570 by Daniel.Wright
Allow null SRV's in uniform buffers for feature levels that don't support SRV's in shaders
Change 4030618 by Arne.Schober
DR - missing tangent/normal sign conversion after integration from main
#jira UE-58224
Change 4031588 by Rolando.Caloca
DR - vk - Fix compile error when missing vkCmdWriteBufferMarkerAMD
Change 4032145 by Mark.Satterthwaite
Fix UE-58268 by only emitting the base_instance/base_vertex variables required to fix-up the instance/vertex ID values to match D3D when the Metal version is 1.1 or higher, earlier versions don't support these features.
#jira UE-58268
Change 4032209 by Rolando.Caloca
DR - Fix crash on EngineTest: Mesh Batch's UserIndex is not a union anymore
Change 4033178 by Guillaume.Abadie
Fixes FXAA sampling outside viewports, that was causing black outline on bottom and right edge of the screen when ViewSize != BufferSize, problematic for some screenshot automated test.
#jira UE-58151
Change 4034489 by Daniel.Wright
Fixed UStaticMeshComponent modifying its UStaticMesh when undoing a change. This caused a crash when other static mesh components using the same mesh asset were rendered, since their rendering state was not recreated. A component should not modify its asset during PostEditUndo.
* This behavior has been present for a long time but was previously hidden because only the vertex factory of the mesh asset is cached in static draw lists, not any of its rendering resources (eg vertex declaration).
Change 4035157 by Uriel.Doyon
Fixed deadlock in the streaming code when running with -onethread.
#jira UE-58299
Change 4035198 by Rolando.Caloca
DR - vk - Fix issue when an older SDK was installed, UBT would pick it (should pick the newer of ThirdParty\Vulkan or installed SDK).
#jira UE-58267
Change 4035730 by Arne.Schober
DR - Fix missing Fog parameters during LightScattering Injection
#jira UE-57608
Change 4035843 by Daniel.Wright
Reimplemented support for EyeAdaptation node in opaque materials
Change 4036837 by Marcus.Wassmer
Replace some of the screenshots to match new un-tonemapped buffer visualization
Change 4036980 by Rolando.Caloca
DR - vk - Fix deadlock contention during mem allocation on Linux
Change 4037225 by Guillaume.Abadie
Fixes jittering selection outline.
#jira UE-58350
Change 4038056 by Marcus.Wassmer
roll back changelist 4026150. breaks a bunch of automated tests by cutting off half the image.
Change can go back in later with that part fixed also
Change 4038296 by Jian.Ru
Static analysis fix
#jira UE-58377
Change 4038402 by Ben.Marsh
Suppress IncludeTool warnings caused by CL 3998947.
Change 4038514 by Arne.Schober
DR - Fix case with MVF where instance offset is not supported by the API (in this case only foliage OpenGL and TvOS), usually the buffers are offsetted instead but with MVF we do not use offsetted buffers, therfore the offset needs to be passed into the shader although we are drawing with offset of 0.
#jira UE-57652
Change 4038747 by Marcus.Wassmer
Back out changelist 3853645, causing us to lose shadows in the shaderhair test
Change 4040138 by Rolando.Caloca
DR - Fix compile warning
Change 4041614 by Rolando.Caloca
DR - vk - Fix for Oculus module
#jira UE-58267
Change 3810277 by Daniel.Wright
Ray Traced Distance Field shadows use a two pass tile culling algorithm with no tile max - fixes flickering from tile overflow in dense areas or with a low sun angle. Costs .2ms on PS4.
The distance field scene buffers now use float4 on PS4 and Xbox, saves .1ms on PS4.
Change 3817029 by Uriel.Doyon
Added UVolumeTexture, which use 3D textures. Compressed formats are supported on DX11, DX12, PS4 and XB1.
Projects targetting OpengGL don't have access to compressed formats (as the implementation has texture tiling issues).
Add "r.AllowVolumeTextureAssetCreation" set as 0 by default, which controls whether volume texture can be sampled in materials and whether they can be created from 2D texture assets.
Platform not supporting BC7, will now fallback on RGBA8 instead of DXT to preserve quality, in an attemps to increase usage of BC7.
#jira UE-32263
Change 3819960 by Michael.Lentine
Expose UEPhysics Clothing Parameters through UI.
Change 3823401 by Rolando.Caloca
DR - Add NumQueriesInBatch to RHIBeginOcclusionQueryBatch
Change 3844805 by Arne.Schober
DR - Increased Intermediate normal of Umodel and Skelmesh from 8bit Unorm Compressed to float. A resave/rebuid/reimport of the meshes is recommended to recover some lost precision.
Fixed an issue with compressed (packed) normals on the GPU which were off by one integer representation. Also switched from UNORM to SNORM to get a discrete zero representation and removed some mads from all the VertexShaders.
Change 3847283 by Marcus.Wassmer
Extra fixes from Uriel
Change 3876607 by Rolando.Caloca
DR - Use render passes when running occlusion queries
- Removes the RHI(Begin|End)OcclusionQueryBatch API
Change 3903799 by Daniel.Wright
[Integrate] Pass Uniform Buffers
* All pass-constant shader inputs should go into the appropriate pass uniform buffer, instead of being set per-draw
* Moved many per-draw base pass parameters over to the Base Pass Uniform Buffer
* Opaque and Translucent base pass shaders have different uniform buffers, which allows compile errors when accessing an invalid resource (eg GBuffer in Opaque), instead of silently falling back to GBlackTexture
Uniform buffers can now contain nested structs with UNIFORM_MEMBER_STRUCT()
* This allows composing a uniform buffer at a particular update frequency out of many features, with encapsulation of each feature's parameters in a struct.
* Eg deferred fog uses FFogUniformParameters, but so does translucency in the base pass, where FFogUniformParameters is reused nested inside the base pass uniform buffer.
* Resources can now be located anywhere in the uniform buffer. Padding is inserted to the cbuffer representation to keep memory layouts matching. In the future the cbuffer could be compacted.
* RemoveUniformBuffersFromSource() which works around HLSLCC lack of struct initializers now handles nested structs
Change 3917500 by Rolando.Caloca
DR - Change depth bounds so only the enable bit is in the PSO, allow min/max to be dynamically modified
Change 3964907 by Guillaume.Abadie
Implements RectList topology support in RHI.
Change 3979171 by Mark.Satterthwaite
Copying //Tasks/UE4/Dev-UERNDR-354-mtlpp to Dev-Rendering (//UE4/Dev-Rendering):
Rewrites MetalRHI in terms of mtlpp, which is a C++ wrapper library built around Metal's Objective-C API that attempts to reduce overheads and eliminate resource lifetime errors.
Regarding mtlpp:
- The mtlpp library uses C++ constructor/destructor and smart-pointer style management of Objective-C retain/release calls to prevent over- and under-release problems.
- To reduce Objective-C overheads the mtlpp library caches the internal C-function that implements the Objective-C selectors for the most commonly used Metal protocol types and calls the function directly - this avoids objc_msgSend which does this look-up dynamically and thus improves CPU performance slightly.
- Another advantage is that mtlpp provides infrastructure to extend the Metal API slightly to help improve MetalRHI - the two important aspects are mtlpp::CommandBufferFence which provides a consistent CPU<->GPU synchronisation primitive and sub-buffer allocations from mtlpp::Buffer which allow for far superior memory management.
- Validation functionality is also provided by mtlpp to detect CPU vs. GPU data races and resource lifetime validation - this is expensive and is thus optional and compiled out from Shipping binaries that should be used when performance is most critical. The validation only works between resource modification and *submitted* command-buffers - anything that is being actively encoded on the CPU is ignored and it remains the responsibility of the application to validate the order of operations when encoding.
Apple Platform:
- LLM support which tracks Objective-C objects is enabled only on macOS - we don't have the necessary libraries to intercept and override the internal system calls on iOS.
MetalRHI:
- All the types are switched over, (mostly) insuling the external API from the horror of Metal and Objective-C.
- Buffers are now managed quite differently, small buffers are allocated from a magazine allocator that allocates in fixed blocks from a larger parent buffer, intermediate sized buffers are allocated from a simple heap allocator that wraps a larger buffer and anything of reasonable size (>2Mb) will use the pooled allocator. This *radically* reduces the number of buffer resources, by as much as a factor of 10, because they are now sub-allocated without the need to use MTLHeap or MTLFence so they are performance equivalent to the existing implementation on the GPU and much faster on the CPU. Total memory use is approximately the same.
- Vertex & index buffer management has been updated to reflect changes in the management and to avoid reallocating buffers which provide a Linear Texture (for SRVs) unless strictly necessary. This ensures that even in cases where a dynamic buffer is updated multiple times in a frame it will still work acceptably well.
- The Metal ring-buffer implementation is completely different again, this time it can use Managed memory on macOS which allows for much better performance on eGPUs which will be more and more important for Mac.
- Everyone that needs to wait on a command-buffer fence (rather than a command-buffer itself) now use mtlpp::CommandBufferFence, which prevents race conditions between the different command-buffer handlers (which sometimes execute out of order).
- LLM tracking should now report the same data as the MetalRHI stats group for buffer & texture allocations - there is no segmentation for Vertex/index/Structured/Uniform allocations in Metal so these numbers are going to be wrong and will need to be rethought.
- What will be unseen are the number of small but important resource usage fixes that avoid stale resources from being bound to the device after the point at which they become invalid. This should eliminate a class of errors where the GPU uses a resource pointer that is modified by the CPU and was necessary to satisfy the new mtlpp validation code.
Other:
- Remove the Metal focused workarounds from the ClothBuffer resource binding and related vertex-buffer SRV - these were put in when MetalRHI/MetalShaderFormat couldn't handle float->uint conversions correctly and they should now.
- Fix a validation error caused by trying to render a 0-sized scissor rect which is invalid in Metal and simply pointless elsewhere.
- Consistency of disabling the Manual Vertex Fetch behaviour in shaders.
#jira UERNDR-354
Change 3979312 by Rolando.Caloca
DR - Remove bogus bKeepOriginalSurface parameter in CopyToResolveTarget
Change 4005122 by Rolando.Caloca
DR - Support for PS4 Index Buffer UAVs
Change 4016298 by Guillaume.Abadie
Fixes DOF hybrid scattering on platforms that supports RectList topology.
Change 4018575 by Guillaume.Abadie
Optimises DOF's reduce pass when doing scattering compilation.
Change 4020317 by Guillaume.Abadie
Implements WaveBroadcastIntrinsics.ush.
[CL 4042226 by Marcus Wassmer in Main branch]
2018-05-01 10:36:33 -04:00
}
2019-10-01 13:03:04 -04:00
bool IsPostProcessingOutputInHDR ( )
2019-09-17 11:58:25 -04:00
{
static const auto CVarDumpFramesAsHDR = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.BufferVisualizationDumpFramesAsHDR " ) ) ;
2019-10-01 13:03:04 -04:00
return CVarDumpFramesAsHDR - > GetValueOnRenderThread ( ) ! = 0 | | GetHighResScreenshotConfig ( ) . bCaptureHDR ;
2019-09-17 11:58:25 -04:00
}
2019-10-01 13:03:04 -04:00
bool IsPostProcessingEnabled ( const FViewInfo & View )
{
if ( View . GetFeatureLevel ( ) > = ERHIFeatureLevel : : SM5 )
{
return
View . Family - > EngineShowFlags . PostProcessing & &
! View . Family - > EngineShowFlags . VisualizeDistanceFieldAO & &
! View . Family - > EngineShowFlags . VisualizeShadingModels & &
2020-12-11 14:21:20 -04:00
! View . Family - > EngineShowFlags . VisualizeVolumetricCloudConservativeDensity & &
2019-10-01 13:03:04 -04:00
! View . Family - > EngineShowFlags . ShaderComplexity ;
}
else
{
2020-09-24 00:43:27 -04:00
return View . Family - > EngineShowFlags . PostProcessing & & ! View . Family - > EngineShowFlags . ShaderComplexity & & IsMobileHDR ( ) ;
2019-10-01 13:03:04 -04:00
}
}
2020-07-06 18:58:26 -04:00
bool IsPostProcessingQuarterResolutionDownsampleEnabled ( )
{
return CVarPostProcessingQuarterResolutionDownsample . GetValueOnRenderThread ( ) ! = 0 ;
}
2019-10-01 13:03:04 -04:00
bool IsPostProcessingWithAlphaChannelSupported ( )
{
return CVarPostProcessingPropagateAlpha . GetValueOnAnyThread ( ) ! = 0 ;
}
2021-10-12 21:21:22 -04:00
# if DEBUG_POST_PROCESS_VOLUME_ENABLE
FScreenPassTexture AddFinalPostProcessDebugInfoPasses ( FRDGBuilder & GraphBuilder , const FViewInfo & View , FScreenPassTexture & ScreenPassSceneColor ) ;
# endif
2020-07-06 18:58:26 -04:00
void AddTemporalAA2Passes (
FRDGBuilder & GraphBuilder ,
const FSceneTextureParameters & SceneTextures ,
const FViewInfo & View ,
FRDGTextureRef InputSceneColorTexture ,
FRDGTextureRef * OutSceneColorTexture ,
FIntRect * OutSceneColorViewRect ) ;
2021-07-12 14:15:42 -04:00
bool ComposeSeparateTranslucencyInTSR ( const FViewInfo & View ) ;
2022-01-27 15:49:31 -05:00
void AddPostProcessingPasses (
FRDGBuilder & GraphBuilder ,
2022-04-12 23:44:41 -04:00
const FViewInfo & View , int32 ViewIndex ,
2022-02-02 05:55:10 -05:00
bool bAnyLumenActive ,
2022-01-27 15:49:31 -05:00
const FPostProcessingInputs & Inputs ,
const Nanite : : FRasterResults * NaniteRasterResults ,
FInstanceCullingManager & InstanceCullingManager ,
2022-02-02 05:55:10 -05:00
FVirtualShadowMapArray * VirtualShadowMapArray ,
FLumenSceneFrameTemporaries & LumenFrameTemporaries )
2019-09-17 11:58:25 -04:00
{
2020-09-24 00:43:27 -04:00
RDG_CSV_STAT_EXCLUSIVE_SCOPE ( GraphBuilder , RenderPostProcessing ) ;
2019-10-01 13:03:04 -04:00
QUICK_SCOPE_CYCLE_COUNTER ( STAT_PostProcessing_Process ) ;
2019-09-17 11:58:25 -04:00
2019-10-01 13:03:04 -04:00
check ( IsInRenderingThread ( ) ) ;
check ( View . VerifyMembersChecks ( ) ) ;
Inputs . Validate ( ) ;
2019-09-17 11:58:25 -04:00
2021-10-25 20:05:28 -04:00
FScene * Scene = View . Family - > Scene - > GetRenderScene ( ) ;
2019-10-01 13:03:04 -04:00
const FIntRect PrimaryViewRect = View . ViewRect ;
2019-09-17 11:58:25 -04:00
2020-09-24 00:43:27 -04:00
const FSceneTextureParameters SceneTextureParameters = GetSceneTextureParameters ( GraphBuilder , Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
const FScreenPassRenderTarget ViewFamilyOutput = FScreenPassRenderTarget : : CreateViewFamilyOutput ( Inputs . ViewFamilyTexture , View ) ;
2020-09-24 00:43:27 -04:00
const FScreenPassTexture SceneDepth ( SceneTextureParameters . SceneDepthTexture , PrimaryViewRect ) ;
2021-04-30 13:02:00 -04:00
const FScreenPassTexture CustomDepth ( Inputs . CustomDepthTexture , PrimaryViewRect ) ;
2020-09-24 00:43:27 -04:00
const FScreenPassTexture Velocity ( SceneTextureParameters . GBufferVelocityTexture , PrimaryViewRect ) ;
2019-10-01 13:03:04 -04:00
const FScreenPassTexture BlackDummy ( GSystemTextures . GetBlackDummy ( GraphBuilder ) ) ;
2021-05-19 02:09:02 -04:00
2022-01-28 08:13:09 -05:00
const FTranslucencyPassResources & PostDOFTranslucencyResources = Inputs . TranslucencyViewResourcesMap . Get ( ETranslucencyPass : : TPT_TranslucencyAfterDOF ) ;
const FTranslucencyPassResources & PostMotionBlurTranslucencyResources = Inputs . TranslucencyViewResourcesMap . Get ( ETranslucencyPass : : TPT_TranslucencyAfterMotionBlur ) ;
2019-09-17 11:58:25 -04:00
2022-02-14 07:30:53 -05:00
// Whether should process the alpha channel of the scene color.
const bool bProcessSceneColorAlpha = IsPostProcessingWithAlphaChannelSupported ( ) ;
const EPixelFormat SceneColorFormat = bProcessSceneColorAlpha ? PF_FloatRGBA : PF_FloatR11G11B10 ;
2019-10-01 13:03:04 -04:00
// Scene color is updated incrementally through the post process pipeline.
2020-09-24 00:43:27 -04:00
FScreenPassTexture SceneColor ( ( * Inputs . SceneTextures ) - > SceneColorTexture , PrimaryViewRect ) ;
2019-09-17 11:58:25 -04:00
2019-10-01 13:03:04 -04:00
// Assigned before and after the tonemapper.
FScreenPassTexture SceneColorBeforeTonemap ;
FScreenPassTexture SceneColorAfterTonemap ;
2019-09-17 11:58:25 -04:00
2019-10-01 13:03:04 -04:00
// Unprocessed scene color stores the original input.
const FScreenPassTexture OriginalSceneColor = SceneColor ;
2019-09-17 11:58:25 -04:00
2019-10-01 13:03:04 -04:00
// Default the new eye adaptation to the last one in case it's not generated this frame.
const FEyeAdaptationParameters EyeAdaptationParameters = GetEyeAdaptationParameters ( View , ERHIFeatureLevel : : SM5 ) ;
FRDGTextureRef LastEyeAdaptationTexture = GetEyeAdaptationTexture ( GraphBuilder , View ) ;
FRDGTextureRef EyeAdaptationTexture = LastEyeAdaptationTexture ;
2019-09-17 11:58:25 -04:00
2019-10-01 13:03:04 -04:00
// Histogram defaults to black because the histogram eye adaptation pass is used for the manual metering mode.
FRDGTextureRef HistogramTexture = BlackDummy . Texture ;
2015-10-28 08:58:16 -04:00
2021-09-01 11:22:04 -04:00
FRDGTextureRef LocalExposureTexture = nullptr ;
FRDGTextureRef LocalExposureBlurredLogLumTexture = BlackDummy . Texture ;
Copying //UE4/Odin-Staging to //UE4/Dev-Main (Source: //Odin/Main @ 3226588)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3226413 on 2016/12/07 by Jeff.Farris
Fixed potential crash in USkeletalMeshComponent::InitArticulated().
Change 3226257 on 2016/12/07 by Mike.Beach
Mirroring CL 3219381 from Dev-Blueprints
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3226147 on 2016/12/07 by Aaron.McLeran
Implementing UE-39421 fix into odin
Change 3225906 on 2016/12/07 by Jeff.Farris
Merge-copied 3216144 from Dev-Framework to Odin (Fix FConstraintInstance scaling issues in FSkeletalMeshComponent::InitArticulated.)
Change 3225097 on 2016/12/07 by Zak.Middleton
#odin-ue4 - Fix GameEngine.cpp compile error (FMessageDialog not declared).
Change 3225050 on 2016/12/07 by Jeff.Farris
Added forward declaration to IOculusRiftPlugin.h to fix compile error in Test builds.
Change 3224757 on 2016/12/07 by Ben.Marsh
Merge CL 3224750 from //UE4/Main: Removing -forcelogflush parameter from UAT invocations of the editor to improve cook times.
Change 3224451 on 2016/12/06 by Max.Chen
Sequencer: Fix convert spawnable to posessable. Logic for setting the parent was mistakenly removed in runtime eval.
Copy from Dev-Sequencer
#jira UE-39419
Change 3223856 on 2016/12/06 by Guillaume.Abadie
Fixes merge collision of Base Pass's selective outputs and MSAA alpha to coverage
Change 3223673 on 2016/12/06 by Zak.Middleton
#odin-ue4 - Fixed crash when opening data table assets and working with some types of nodes in the graph editor.
Merged fixes from Dev-Editor: CL 3156326, 3172078, 3187276, 3210983.
Change 3223381 on 2016/12/06 by Nick.Whiting
Merging using UE4_MAIN_to_ODIN @ CL 3221533
Change 3223325 on 2016/12/06 by Alex.Delesky
Plugin wizard definition for creating Odin game mods. Currently this just creates an empty Content Only plugin.
This also enables the mod creation window to be shown on editor startup (can be toggled off) or invoked via a toolbar button.
Change 3221825 on 2016/12/05 by Nick.Whiting
Updating VCToolChain.cs file, which was skipped in last integration
Change 3221793 on 2016/12/05 by Zak.Middleton
#odin - Back out changelist 3218159. Going to move to trace by profile in the future instead.
Change 3219668 on 2016/12/02 by Alex.Delesky
Partially duplicating CL 3185126 into Odin:
-Fixes an issue where adding a new plugin could unnecesarily added to the additional plugin directory, which can cause build failures.
Change 3219558 on 2016/12/02 by Zak.Middleton
#odin - Fix adapative pixel density crash (again). INI settings are dumb and locally saved INIs ignore the change to the base I pushed yesterday, so pushing a code fix instead. Wrapped in "DO NOT MERGE" since this crash is fixed in Dev-VR.
Change 3218953 on 2016/12/02 by Alex.Delesky
Back out changelist 3216159 - Reintroducing Plugin Wizard Definition for defining New Plugin Wizard functionality
Change 3218822 on 2016/12/02 by Matthew.Griffin
Remove modding from folder paths
Add logging for delete task
Delete more temp files from Copy and DDC process
Change 3218410 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fix crash when unloading levels or exiting the editor when objects placed in levels had a MID set in construction scripts.
CLs from Dev-Editor: 3203739, 3205814
Change 3218277 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fixed crash when opening data table assets.
Merged small fixes from Dev-Editor: CL 3156326, 3172078, 3187276.
#jira ODIN-2096
Change 3218178 on 2016/12/01 by Jeff.Farris
Fix for bad merge in InheritableComponentHandler (discovered via shadow var warning)
Change 3218159 on 2016/12/01 by Zak.Middleton
#ue4-odin - Wrap blueprint trace functions using trace channels to a generic helper that uses any collision channel. Before we decide whether to expose object channel or general collision channel functions to blueprints, this allows games to at least build off the general functions.
Change 3216502 on 2016/11/30 by Nick.Whiting
Missed files from merge
Change 3216490 on 2016/11/30 by Nick.Whiting
Merge Main -> Odin, up to CL 3202946
Change 3216159 on 2016/11/30 by Zak.Middleton
#odin - Back out changelist 3216005
Change 3216005 on 2016/11/30 by Alex.Delesky
Adding the IPluginWizardDefinition interface, which is used to determine the functionality of the new plugin wizard along with what kind of plugins can actually be created. This can be used to change the behavior of the plugin wizard to create new game mods.
Change 3215329 on 2016/11/30 by Jeff.Farris
Re-expose collision settings on EQSTestingPawn so users can make the test pawn agent dimensions match the pawn they are trying to simulate.
Change 3213875 on 2016/11/29 by Jeff.Farris
Turned off collision on EQSRenderingComponent for EQSTestingPawns. Fixes issue with bogus agent dimensions.
Change 3213027 on 2016/11/29 by Matthew.Griffin
Added Modding Build steps to copy everything needed for an installed editor build
Added BuildCommand to run GenerateDistillFileSetsCommandlet and copy the resulting file list to another location
Fix for APEX .pdb paths
Change 3206638 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class
Change 3206175 on 2016/11/21 by Nick.Atamas
#umg exposed support for explicit wrap width in WrapBox.
Change 3204658 on 2016/11/18 by Alan.Villani
#odin Wiring up new intro cinematic to game flow.
Change 3201200 on 2016/11/16 by Alan.Villani
#odin Spectator/Leaderboards: Added console var vr.bAllowSpectatorTexture to enable/disable the display of the spectator texture. Also enabling spectator panel and leaderboards with this change.
Change 3201064 on 2016/11/16 by Wyeth.Johnson
Support new billboards
Change 3199357 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Removing logging now that problem has been fixed.
Change 3199302 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Skip reinit if not a successful init in ovr_ResetInitAndContext(). Also added logging to shutdown.
Change 3198947 on 2016/11/15 by Alan.Villani
#odin Spectator/Leaderboards: Reinstating CL 3197812 with fix to make InitWithWindowsPlatform() return warnings instead of errors.
Change 3198803 on 2016/11/15 by Jeff.Farris
Copied CL 3198691 frojm Dev-Sequencer (Sequence Recorder: Optimize record transforms by setting all the keyframes at once. Also, added option to toggle removing redundant keyframes from the recorded tracks.)
Change 3198525 on 2016/11/15 by Alan.Villani
#odin ODIN-1758. Spectator/Leaderboards: Back out changelist 3197812. This change was causing the automated packaged build to fail. Since the root cause hasn't been found, reverting the change.
Change 3197909 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Fix for linking issue with Odin Monolithics build.
Change 3197812 on 2016/11/14 by Alan.Villani
#odin Spectator and leaderboard code support:
Support for enhanced oculus leaderboard functionality. Player's score is uploaded on FinishLevel(). Added delegate function to allow Rift render code to render an additional passed in texture - this is used to display spectator information in the mirrored window. GetMissionRowName() can now return the row name for the intro mission.
This is only code support. Blueprint support to follow.
Change 3196940 on 2016/11/14 by Nick.Whiting
Fix for include path
Change 3196897 on 2016/11/14 by Nick.Whiting
Integrating IKinema plugin. Note that there are some deprecation warnings that have not been fixed up because of the refactoring. We're going to avoid fixing that up for now, because it's a large refactor, and the plugin is only needed for this week.
Change 3194897 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) -- Downgrade warning log spam when sweeping skeletal mesh components.
Change 3194799 on 2016/11/11 by Nick.Atamas
Added better normals for curved WidgetComponent.
Change 3194697 on 2016/11/11 by Chris.Bunner
Duplicated CL 3194665 from Dev-Rendering: Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194383 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - Avoid calling ComponentOverlapComponent() when handling overlap checks if either component is a SkeletalMeshComponent. That function returns false for those, however a normal global overlap check would return a valid result.
Also elevated warnings (from log) when trying to use above function with SkeletalMeshComponents.
Change 3194380 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - UPrimitiveComponent::GetCollisionEnabled() checks the owner Actor enable collision setting. Handles cases where the BodyInstance doesn't have physics state.
Also merge CL 3136709 to fix overlap events spam.
Change 3192616 on 2016/11/09 by Zak.Middleton
#odin - Jump arcs only draw in editor if Navigation is shown, or when selected in editor.
Change 3192310 on 2016/11/09 by Daniel.Wright
[Copy] Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3191042 on 2016/11/08 by Nick.Atamas
#slate/umg
Added SetIsExapanded_Animated() method to SExpandableArea.
Added anim length to ExpandableArea's widget style.
Change 3190411 on 2016/11/08 by Guillaume.Abadie
Adds some randomness in particul collisions.
Change 3186455 on 2016/11/03 by Stanley.Hayes
Fixed Tangents the mesh generation of Widget Component, now works with Bump Offset! -- The Impl for non-planar widgets is wrong but works as a temp fix
Change 3186335 on 2016/11/03 by Alan.Villani
#odin Oculus Input:
Fix for haptic feedback not processing unless both touch controllers are active.
Change 3184215 on 2016/11/02 by Daniel.Wright
Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only
Change 3182542 on 2016/11/01 by Nick.Atamas
Applied feedback after code review:
- Fixed bug with incorrectly assigned LocalHitLocation
- PerformTrace is now const
- Clarified comments.
Potentially fixed jira ODIN-1590, pending verification.
Change 3181845 on 2016/11/01 by Nick.Atamas
Details panel filters now show a distinct visual state (yellow highlight) when a filter is active.
https://jira.it.epicgames.net/browse/UE-11088
Change 3179037 on 2016/10/28 by Zak.Middleton
#ue4 - (Odin) - Avoid crash in PropertyChangeListener when WeakObjectPtr goes null. Prevent passing null objects in array to delegates that don't null check the elements. Repro steps still unclear, adding ensure() to catch it for more info.
Change 3177127 on 2016/10/27 by Alan.Villani
#odin Menu Shell:
Put in cvar to allow disabling of haptics.
Change 3174582 on 2016/10/26 by Zak.Middleton
#ue4 - Changed Actor::GetForwardVector, GetUpVector, and GetRightVector to just wrap to the FQuat functions. These use inline constants rather than a memory fetch to the static FVector::ForwardVector etc, so the multiplies are better optimized in-place by the compiler (ie with constant folding).
Change 3174401 on 2016/10/25 by Maciej.Mroz
In nativized code Nullptr is always casted to UObject type.
#jira ODIN-1560
Change 3173310 on 2016/10/25 by Guillaume.Abadie
Fix a bug in the forward shading particule collision hack using ddx/ddy to compute the normal and implement an accurate way of compute the normal requiering two addtional scene depth buffer fetches for neighboorhing pixels and use it as default.
Change 3172997 on 2016/10/24 by Nick.Atamas
Cylindrical Widget - First Pass Support.
Change 3172707 on 2016/10/24 by Nick.Whiting
Integrating fix for haptic effects with sound waves crashing when no sound wave is loaded.
Change 3172167 on 2016/10/24 by Jeff.Farris
Merged 3120587 from Dev-Sequencer to Odin (Fbx Export: Fix double transforms on an exported mesh.)
Change 3170221 on 2016/10/21 by Zak.Middleton
#ue4 - Fix projectiles and characters not moving at all when frame delta time is very low (time dilation is very low, framerate is very high, or a combination of both).
Change 3170036 on 2016/10/20 by Zak.Middleton
#ue4 - Make Ragdoll collision profile ignore Visibility channel (to match CharacterMesh collision profile).
Change 3169728 on 2016/10/20 by Zak.Middleton
#ue4 - Fix comment.
Change 3169727 on 2016/10/20 by Zak.Middleton
#ue4 - Fix spacing/indentation.
Change 3169277 on 2016/10/20 by Zak.Middleton
#ue4 - Lower default simulations per second in PredictProjectilePath. Now that it is more accurate (after CL 3124174), this will still maintain quality with better performance.
Change 3169272 on 2016/10/20 by Zak.Middleton
#ue4 - Change some array Reset() calls back to Empty(), since blueprints typically keep these arrays around forever and we don't want them to stay large.
Change 3168157 on 2016/10/19 by Jeff.Farris
Merging 3168079 from Dev-Framework to Odin (Fix timing issue that causes snapshotpose to t-pose.)
Change 3167894 on 2016/10/19 by Chris.Bunner
Updated tooltip comment.
Change 3167569 on 2016/10/19 by Jeff.Farris
#engine Fixed issue with cine camera component where blueprint-accessible FOV data could be incorrect in some circumstances
Change 3166950 on 2016/10/18 by Zak.Middleton
#ue4 - Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656.
Change 3166807 on 2016/10/18 by Zak.Middleton
#ue4 - Make all GameplayStatics functions take const WorldContextObjects, so they are more usable from C++.
Change 3166540 on 2016/10/18 by Jeff.Farris
Merging 3164818 from Dev-Framework to Odin (Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.)
Change 3166323 on 2016/10/18 by Jeff.Farris
#engine Fixed issue where Navlink smartlinks wouldn't respect the Direction property proprely.
Change 3163415 on 2016/10/14 by Chris.Bunner
Allow surface actor particles to inherit UV coordinates through the dynamic parameter struct.
Change 3162716 on 2016/10/13 by Jeff.Farris
#engine Made UPathFollowingComponent::HasReachedCurrentTarget() virtual
Change 3161602 on 2016/10/13 by Jeff.Farris
#engine removed a comment I left in
Change 3161037 on 2016/10/12 by Alan.Villani
#odin Loading Screens:
Modified AsyncLoadingSplash to use platform specific max layer number.
Change 3160690 on 2016/10/12 by Jeff.Farris
#engine Added PathFollowingComponent::bIsDecelerating to know when AI is in its "decelerate at the end of the path" state
Change 3160686 on 2016/10/12 by Jeff.Farris
#engine Fixed comment on NavMovementComponent::bUseAccelerationForPaths
Change 3160200 on 2016/10/12 by Zak.Middleton
#odin - Added Odin versions of Sphere, Capsule, Box trace functions taking any trace channel.
Change 3156847 on 2016/10/10 by Maciej.Mroz
#jira ODIN-1345
In nativized code, value of output array parameter is reset before the funtion, that will fill the parameter, is called. The same mechanism is already used by bytecode comiler.
Change 3155495 on 2016/10/07 by Zak.Middleton
#ue4 - RootComponent fixup in AActor::PostLoadSubojects should handle constructors that also try to fix up the old root component on their own.
Additionally we should attach the old root component to the new one, otherwise it has no parent.
Change 3154962 on 2016/10/07 by Chris.Bunner
Duplicating CL 3148934, 3148994 from Dev-Rendering - Added pre-skinned local position material graph node, vertex shader only.
Change 3154255 on 2016/10/06 by Zak.Middleton
#ue4 - Add AIController to the delegate for move completion for blueprint "AI Move To Location or Actor" nodes, so you can know which AI finishes the move.
Change 3154217 on 2016/10/06 by Mike.Beach
Backing out changelist 3146883, as it was causing properties to clear on load (in Gun_Shotgun/BP_RightHand).
Change 3154199 on 2016/10/06 by Zak.Middleton
#ue4 - Inline a few simple functions in UKismetSystemLibrary for performance in nativized builds.
Change 3153427 on 2016/10/06 by Jeff.Farris
Updated Oculus AppID to the full game ID
Change 3148205 on 2016/10/02 by Zak.Middleton
#ue4 - Perf: Add simple path for UPrimitiveComponent::UpdatePhysicsVolume() when there are no physics volumes placed in a level. Avoid checking overlapping components for any volumes at all.
Change 3148089 on 2016/10/01 by Phillip.Kavan
Merging in CLs 3148022 and 3148033 from //UE4/Dev-Blueprints/...
Note: These were dependent on the following additional CLs, which have also been merged in:
=> 3081010,3116021,3123581,3131318,3132348,3133072,3133817,3137800,3137851
Change 3148054 on 2016/10/01 by Nick.Whiting
Adding much smaller footprint entitlement check
Change 3147910 on 2016/10/01 by Nick.Whiting
Back out changelist 3147807
Change 3147909 on 2016/10/01 by Nick.Whiting
Back out changelist 3147787
Change 3147810 on 2016/09/30 by Zak.Middleton
#odin - Fix "Delay" nodes in macros not working correctly. This made simultaneous instances of our "UndilatedDelay" and "0-1 Lerp" macros incorrect.
(Mirror CL 3119502 from Dev-Blueprints)
Change 3147807 on 2016/09/30 by Nick.Whiting
Blueprint cyclic dependency fixes, submitted on behalf of DanO.
Change 3147787 on 2016/09/30 by Nick.Whiting
Adding Oculus Entitlement check for Odin
Change 3147732 on 2016/09/30 by Daniel.Wright
From Guillaume: Skip ClearStencilFromBasePass by using a single bit of stencil as a sandbox bit. This requires all passes that use stencil to setup a proper read / write mask, as other stencil bits will be non-zero. Saves .14ms
Change 3147285 on 2016/09/30 by Dan.Oconnor
Back out changelist 3147258
Introduced "Detaching from existing linker" crash
Change 3147258 on 2016/09/30 by Dan.Oconnor
Making sure we defer objects that have unserialized archetypes
Change 3146985 on 2016/09/30 by Daniel.Wright
Skip Prepass ResolveSceneDepthTexture if there's no way decals or shadows will use it, since there's another resolve after the base pass. Saves .1ms in the planar reflection pass.
Change 3146883 on 2016/09/30 by Dan.Oconnor
Fix for component data getting lost on load. Two primary causes:
1. Loading component, then loading its template and reinitializing it from parent
2. Discarding inheritable component handler on load because it 'matched' the unloaded super (or it was unloaded and matched a loaded super, or both of them weren't yet loaded and they matched)
Change 3145504 on 2016/09/29 by Daniel.Wright
Capsule indirect shadows are now affected by DynamicShadows showflag
Change 3145416 on 2016/09/29 by Wyeth.Johnson
optimized vector to radial value to use atan2fast. Small polish to weapon available indicators, slightly smaller, radial res in, get brighter right before pickup to match the glow transition
Change 3144359 on 2016/09/28 by Zak.Middleton
#ue4 - Add IsPointInBox() and IsPointInBoxWithTransform() to KismetMathLibrary.
Change 3144302 on 2016/09/28 by Daniel.Wright
New SceneCapture functions for managing the ShowOnly list: RemoveShowOnlyComponent, RemoveShowOnlyActorComponents, ClearShowOnlyComponents
Change 3144210 on 2016/09/28 by Daniel.Wright
Manual copy - Shadow stencil optimisation from Ben Woodhouse with cvar (enabled by default). Saves .2ms in Odin.
Change 3144208 on 2016/09/28 by Daniel.Wright
Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970
Change 3143778 on 2016/09/28 by Ryan.Vance
Disabling motion blur scale behavior. We want the motion blur scale to be consistent regardless of time dilation.
Cleaning up the velocity bias change made yesterday for odin, need to ensure it doesn't make it back to main as it will break TAA.
Change 3143728 on 2016/09/28 by Jeff.Farris
Made AIController::MoveTo virtual
Change 3142740 on 2016/09/27 by Nick.Whiting
Fix for dynamic object velocity rendering not working. MSAA was breaking it, needed to add a bias in the VelocityShader in order to pass depth tests
Change 3142665 on 2016/09/27 by Ryan.Vance
Fixing incorrect uniform/buffer references for passes that aren't drawn with ISR when ISR is turned when using forward.
Change 3142488 on 2016/09/27 by Zak.Middleton
#ue4 - Expose Character::MovementModeChangedDelegate to blueprints. Fix category on OnReachedJumpApex event.
Change 3142360 on 2016/09/27 by Frank.Fella
Sequencer - Don't crash when a bool track or visibility track has a null runtime object.
Change 3142204 on 2016/09/27 by Zak.Middleton
#odin - Nav jump links update their nav data in realtime as the start and end points are moved. Still need to color the predicted path based on the nav data.
Change 3141695 on 2016/09/27 by Guillaume.Abadie
Fixes depth buffer collision on GPU particle in the forward render by computing the world normal using a cross(ddx(), ddy()) of the world position.
#review-3141656 @ben.woodhouse
Change 3141013 on 2016/09/27 by Zak.Middleton
#ue4 - NavLinkProxy properly calls SetNavigationRelevancy() when created in the editor. Fixes the need to uncheck/recheck bSmartLinkIsRelevant.
Change 3140878 on 2016/09/26 by Zak.Middleton
#ue4 - Add MarkRenderStateDirty() to UNavLinkCustomComponent::SetLinkData(), so visualizers update asap after link data changes.
Change 3140863 on 2016/09/26 by Nick.Whiting
Adding in vr.MonoCapture, which disables the right eye for capturing in order to give a performance boost
Change 3140790 on 2016/09/26 by Zak.Middleton
#ue4 - Make LineBatchComponent's FLineBatcherSceneProxy::GetViewRelevance() respect show flags (such as hidden in game).
Change 3140175 on 2016/09/26 by Dan.Oconnor
Mirror of 3140143
#jira UE-36395
Change 3139622 on 2016/09/26 by Maciej.Mroz
Fixed const local variables in Nativized code
Change 3139257 on 2016/09/24 by Jeff.Farris
Added GetGrabbedComponent() to UPhysicsHandleComponent.
Change 3139050 on 2016/09/23 by Nick.Whiting
Support for trailer capturing, as well as gamepad controls for adjustment
Change 3138644 on 2016/09/23 by Zak.Middleton
#ue4 - Added FPredictProjectilePathPointData::Reset(). Presize path points array in UGameplayStatics::PredictProjectilePath().
Change 3138521 on 2016/09/23 by Ryan.Vance
#jira UE-36114
We need to bind the right eye's forward lighting state when ISR is enabled and branch depending on which eye instance we're drawing.
Added a copy of FForwardGlobalLightData, NumCulledLightsGrid CulledLightDataGrid, and ForwardLocalLightBuffer for the right eye and set them when drawing with ISR
Moved ForwardLightingResources from FViewInfo up to FSceneView for access
Removed USE_CULLED_LOCAL_LIGHTS as it wasn't being used and complicated the shader refactor
TODO: This can be greatly simplified by generating the FForwardGlobalLightData uniform assignment shader code similar to how I'm handling the view uniforms. To clean up the branching for the grid buffers we should write both eyes into a single buffer and just use an offset.
Change 3138178 on 2016/09/23 by Zak.Middleton
#ue4 - Add FVector::DistXY() and Dist2D() (as an alias). Add FVector::Distance() as an alias for Dist(), and FVector::DistSquared2D() as an alias for DistSquaredXY(). Fixed comment in FVector2D::Distance() saying it was the squared distance.
- This is more in line with the Size2D(), SizeSquared2D(), GetSafeNormal2D() naming, but maintains backwards compat for a large amount of code.
Change 3138162 on 2016/09/23 by Lukasz.Furman
fixed navmesh crash on attempt to regenerate an empty tile layer
Change 3137578 on 2016/09/23 by Maciej.Mroz
#jira ODIN-1017 [Nativization] Crash while loading Hub_env level
Ensured, that CreateExport (and fully construction) is called for loaded DynamicClass.
Change 3136774 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
#jira ODIN-1013
Change 3136491 on 2016/09/22 by Jeff.Farris
Removed an unnnecessary ensure in ApplyPhysicalAnimationProfileBelow.
Change 3136412 on 2016/09/22 by Zak.Middleton
#ue4 - Inlined more functions in KismetMathLibrary that used error reporting (eg divide by zero errors). Moved the actual error reporting to the cpp so the inline overhead and compilation overhead is negligible.
Change 3136288 on 2016/09/22 by Zak.Middleton
#ue4 - Inline KismetMathLibrary functions where appropriate. Improves performance in nativized builds where the calls were not inlined even for the most simple functions (like "Not Bool", "Add Ints").
Change 3136162 on 2016/09/22 by Ben.Marsh
Merge CL 3136158 to fix issues generating project files with Visual Studio Express.
Change 3135403 on 2016/09/22 by Jeff.Farris
GameplayStatics::ApplyPointDamage and ApplyDamage now return the actual damage that was applied
Change 3135052 on 2016/09/21 by Zak.Middleton
#ue4 - Add new GameplayStatics::PredictProjectilePath functions with added functionality.
- Option to trace for collision by trace channel, object type, or both.
- Added versions that take input and output struct parameters.
- Output now includes location, velocity, and time for each point on the path.
Change 3134757 on 2016/09/21 by Guillaume.Abadie
Removes all resolve operations from distortion pass and support MSAA for the forward shader.
#review-3134758 @daniel.wright
Change 3134635 on 2016/09/21 by Jeff.Farris
Merged from Dev-Physics-Upgrade to Odin. This is the upgrade to PhysX 3.4.
Change 3134101 on 2016/09/21 by David.Hill
Post process CombineLUT shouldn't be per eye.
Also disable weighted-average post process passes for bloom when filter size is set to zero.
#review-3134102 @chris.bunner
Change 3133191 on 2016/09/20 by Guillaume.Abadie
Normalizes material's Opacity Mask according to Opacity Mask Clip Value.
Change 3133082 on 2016/09/20 by Brian.Karis
Static light source shapes in reflection captures will fade out when outside influence instead of going black.
Change 3132936 on 2016/09/20 by Jeff.Farris
Fixed some engine issues with setting mass overrides.
Change 3132821 on 2016/09/20 by Guillaume.Abadie
Adds support for MSAA on masked material using shader implemented alpha to coverage.
#review-3130154 @daniel.wright
Change 3132522 on 2016/09/20 by Zak.Middleton
#ue4 - Cache conversion of WalkableSlopeAngle to the cosine value in FWalkableSlopeOverride struct, when used in the override modes. Avoids computing this conversion (potentially multiple times per frame) for every character movement move and floor test.
Change 3130457 on 2016/09/19 by Daniel.Wright
Reuse ESceneColorFormatType::HighEndWithAlpha if the format allows it - prevents two scene color textures being allocated with planar reflections with r.SceneColorFormat=4
Change 3129467 on 2016/09/16 by Zak.Middleton
#ue4 - Improve Accuracy of final point in UGameplayStatics::PredictProjectilePath() to respect MaxSimTime. Previously the sim could have exceeded the max time if (MaxSimTime / SimFrequency) had a fractional part.
Change 3129327 on 2016/09/16 by Daniel.Wright
Added r.NormalCurvatureToRoughnessExponent for tweaking
NormalCurvatureToRoughness is now applied to clearcoat roughness
Change 3129324 on 2016/09/16 by Daniel.Wright
Added r.TemporalAACurrentFrameWeight for debugging
Change 3128812 on 2016/09/16 by Daniel.Wright
Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3.
Change 3128811 on 2016/09/16 by Daniel.Wright
Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path.
Change 3126195 on 2016/09/15 by Maciej.Mroz
#jira UE-35262 Incompatible pins give generate warning, when error is necessary.
Fixed incompatible pins validation.
Manually merged cl#3124667 from Dev-Blueprints
Change 3126108 on 2016/09/14 by Nick.Whiting
Added GetLaunchOption blueprint node to check if command line arguments are set
Added -demo path for Odin, which disables pause, and changes opening flow
Change 3125819 on 2016/09/14 by Zak.Middleton
#ue4 - Add option for accurate bounds for LineBatchComponent, on by default. Corrects attempts to focus on actors using them causing the view to zoom out to HALF_WORLD_MAX.
Turned this off for world debug line visualizers, to avoid affecting perf for those (and they often have lines/points all over anyway).
Change 3125686 on 2016/09/14 by Zabir.Hoque
Slimed down when and where we resolve RT particularly for forward rendering.
Change 3124174 on 2016/09/13 by Zak.Middleton
#ue4 - Improved accuracy and performance of PredictProjectilePath(). Switched to semi-implicit Euler integration. Fixed not being able to pass in const WorldContextObjects (only an issue when used from code, BP didn't care).
Change 3124121 on 2016/09/13 by Zak.Middleton
#odin - Integrate CL 3122728 from Dev-Editor:
UMG - Exposing a trace channel for the WIC, defaults to Visibility. Improving how the WIC handles the cursor moving off the widget, it now maintains the last hit location rather than 0,0 which would cause things like dragged Sliders to reset to the left. Ideally - the WIC would know the underlying widget has capture and continue to fake collision against an imaginary plane to simulate a continuous surface.
Change 3124116 on 2016/09/13 by Zak.Middleton
#odin - Back out revision 3 from //Odin/Main/Engine/Source/Runtime/UMG/Private/Components/WidgetInteractionComponent.cpp
Change 3123485 on 2016/09/13 by Stanley.Hayes
Added optional trace channels to WidgetInterationComponent
Change 3123301 on 2016/09/13 by Zak.Middleton
#ue4 - Added ENGINE_API to some functions in ULineBatchComponent that were not exported: DrawLines, DrawLine, DrawPoint, DrawSolidBox, DrawMesh.
Change 3122632 on 2016/09/13 by Maciej.Mroz
Improved ReverseForEachLoop macro in StandardMacros
Change 3122351 on 2016/09/12 by Nick.Whiting
Adding 90fps tracking to the FPS summary chart creation
Change 3122325 on 2016/09/12 by Wyeth.Johnson
Needed a 5 minute breather. Updated Editor splash screen because reasons
Change 3121869 on 2016/09/12 by Zak.Middleton
#ue4 - (Merge to Odin) Fix UGameplayStatics::SpawnEmitterAttached() using wrong scale when SnapToTarget (Keep World Scale) option is used. Improve comments for SpawnEmitterAttached().
#jira UE-34482
(Integrate Framework->Odin)
Change 3121407 on 2016/09/12 by Wyeth.Johnson
Fixed shopfront for Oz, big bot WIP
Change 3121253 on 2016/09/12 by Zak.Middleton
#ue4 - Fix CharacterMovement braking when using acceleration for paths.
- Fixed pathfinding using friction in GetPathFollowingBrakingDistance() and using wrong formula for stopping distance. Pathfinding adjusts analog input to achieve this deceleration, so friction is never applied and should not be included here.
- Added virtual "GetMaxBrakingDeceleration()" function to CharacterMovementComponent. Returns deceleration value set for current movement mode (ie BrakingDecelerationWalking, BrakingDecelerationFlying, etc).
Change 3121231 on 2016/09/12 by Wyeth.Johnson
Fixed procedural Stuff, now to fix aliasing :)
[CL 3226598 by Nick Whiting in Main branch]
2016-12-08 03:26:33 -05:00
const FEngineShowFlags & EngineShowFlags = View . Family - > EngineShowFlags ;
2019-10-01 13:03:04 -04:00
const bool bVisualizeHDR = EngineShowFlags . VisualizeHDR ;
const bool bViewFamilyOutputInHDR = GRHISupportsHDROutput & & IsHDREnabled ( ) ;
const bool bVisualizeGBufferOverview = IsVisualizeGBufferOverviewEnabled ( View ) ;
const bool bVisualizeGBufferDumpToFile = IsVisualizeGBufferDumpToFileEnabled ( View ) ;
const bool bVisualizeGBufferDumpToPIpe = IsVisualizeGBufferDumpToPipeEnabled ( View ) ;
const bool bOutputInHDR = IsPostProcessingOutputInHDR ( ) ;
2022-05-13 07:23:11 -04:00
const int32 LumenVisualizeMode = GetLumenVisualizeMode ( View ) ;
2022-02-02 05:55:10 -05:00
const bool bPostProcessingEnabled = IsPostProcessingEnabled ( View ) ;
Copying //UE4/Odin-Staging to //UE4/Dev-Main (Source: //Odin/Main @ 3226588)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3226413 on 2016/12/07 by Jeff.Farris
Fixed potential crash in USkeletalMeshComponent::InitArticulated().
Change 3226257 on 2016/12/07 by Mike.Beach
Mirroring CL 3219381 from Dev-Blueprints
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3226147 on 2016/12/07 by Aaron.McLeran
Implementing UE-39421 fix into odin
Change 3225906 on 2016/12/07 by Jeff.Farris
Merge-copied 3216144 from Dev-Framework to Odin (Fix FConstraintInstance scaling issues in FSkeletalMeshComponent::InitArticulated.)
Change 3225097 on 2016/12/07 by Zak.Middleton
#odin-ue4 - Fix GameEngine.cpp compile error (FMessageDialog not declared).
Change 3225050 on 2016/12/07 by Jeff.Farris
Added forward declaration to IOculusRiftPlugin.h to fix compile error in Test builds.
Change 3224757 on 2016/12/07 by Ben.Marsh
Merge CL 3224750 from //UE4/Main: Removing -forcelogflush parameter from UAT invocations of the editor to improve cook times.
Change 3224451 on 2016/12/06 by Max.Chen
Sequencer: Fix convert spawnable to posessable. Logic for setting the parent was mistakenly removed in runtime eval.
Copy from Dev-Sequencer
#jira UE-39419
Change 3223856 on 2016/12/06 by Guillaume.Abadie
Fixes merge collision of Base Pass's selective outputs and MSAA alpha to coverage
Change 3223673 on 2016/12/06 by Zak.Middleton
#odin-ue4 - Fixed crash when opening data table assets and working with some types of nodes in the graph editor.
Merged fixes from Dev-Editor: CL 3156326, 3172078, 3187276, 3210983.
Change 3223381 on 2016/12/06 by Nick.Whiting
Merging using UE4_MAIN_to_ODIN @ CL 3221533
Change 3223325 on 2016/12/06 by Alex.Delesky
Plugin wizard definition for creating Odin game mods. Currently this just creates an empty Content Only plugin.
This also enables the mod creation window to be shown on editor startup (can be toggled off) or invoked via a toolbar button.
Change 3221825 on 2016/12/05 by Nick.Whiting
Updating VCToolChain.cs file, which was skipped in last integration
Change 3221793 on 2016/12/05 by Zak.Middleton
#odin - Back out changelist 3218159. Going to move to trace by profile in the future instead.
Change 3219668 on 2016/12/02 by Alex.Delesky
Partially duplicating CL 3185126 into Odin:
-Fixes an issue where adding a new plugin could unnecesarily added to the additional plugin directory, which can cause build failures.
Change 3219558 on 2016/12/02 by Zak.Middleton
#odin - Fix adapative pixel density crash (again). INI settings are dumb and locally saved INIs ignore the change to the base I pushed yesterday, so pushing a code fix instead. Wrapped in "DO NOT MERGE" since this crash is fixed in Dev-VR.
Change 3218953 on 2016/12/02 by Alex.Delesky
Back out changelist 3216159 - Reintroducing Plugin Wizard Definition for defining New Plugin Wizard functionality
Change 3218822 on 2016/12/02 by Matthew.Griffin
Remove modding from folder paths
Add logging for delete task
Delete more temp files from Copy and DDC process
Change 3218410 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fix crash when unloading levels or exiting the editor when objects placed in levels had a MID set in construction scripts.
CLs from Dev-Editor: 3203739, 3205814
Change 3218277 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fixed crash when opening data table assets.
Merged small fixes from Dev-Editor: CL 3156326, 3172078, 3187276.
#jira ODIN-2096
Change 3218178 on 2016/12/01 by Jeff.Farris
Fix for bad merge in InheritableComponentHandler (discovered via shadow var warning)
Change 3218159 on 2016/12/01 by Zak.Middleton
#ue4-odin - Wrap blueprint trace functions using trace channels to a generic helper that uses any collision channel. Before we decide whether to expose object channel or general collision channel functions to blueprints, this allows games to at least build off the general functions.
Change 3216502 on 2016/11/30 by Nick.Whiting
Missed files from merge
Change 3216490 on 2016/11/30 by Nick.Whiting
Merge Main -> Odin, up to CL 3202946
Change 3216159 on 2016/11/30 by Zak.Middleton
#odin - Back out changelist 3216005
Change 3216005 on 2016/11/30 by Alex.Delesky
Adding the IPluginWizardDefinition interface, which is used to determine the functionality of the new plugin wizard along with what kind of plugins can actually be created. This can be used to change the behavior of the plugin wizard to create new game mods.
Change 3215329 on 2016/11/30 by Jeff.Farris
Re-expose collision settings on EQSTestingPawn so users can make the test pawn agent dimensions match the pawn they are trying to simulate.
Change 3213875 on 2016/11/29 by Jeff.Farris
Turned off collision on EQSRenderingComponent for EQSTestingPawns. Fixes issue with bogus agent dimensions.
Change 3213027 on 2016/11/29 by Matthew.Griffin
Added Modding Build steps to copy everything needed for an installed editor build
Added BuildCommand to run GenerateDistillFileSetsCommandlet and copy the resulting file list to another location
Fix for APEX .pdb paths
Change 3206638 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class
Change 3206175 on 2016/11/21 by Nick.Atamas
#umg exposed support for explicit wrap width in WrapBox.
Change 3204658 on 2016/11/18 by Alan.Villani
#odin Wiring up new intro cinematic to game flow.
Change 3201200 on 2016/11/16 by Alan.Villani
#odin Spectator/Leaderboards: Added console var vr.bAllowSpectatorTexture to enable/disable the display of the spectator texture. Also enabling spectator panel and leaderboards with this change.
Change 3201064 on 2016/11/16 by Wyeth.Johnson
Support new billboards
Change 3199357 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Removing logging now that problem has been fixed.
Change 3199302 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Skip reinit if not a successful init in ovr_ResetInitAndContext(). Also added logging to shutdown.
Change 3198947 on 2016/11/15 by Alan.Villani
#odin Spectator/Leaderboards: Reinstating CL 3197812 with fix to make InitWithWindowsPlatform() return warnings instead of errors.
Change 3198803 on 2016/11/15 by Jeff.Farris
Copied CL 3198691 frojm Dev-Sequencer (Sequence Recorder: Optimize record transforms by setting all the keyframes at once. Also, added option to toggle removing redundant keyframes from the recorded tracks.)
Change 3198525 on 2016/11/15 by Alan.Villani
#odin ODIN-1758. Spectator/Leaderboards: Back out changelist 3197812. This change was causing the automated packaged build to fail. Since the root cause hasn't been found, reverting the change.
Change 3197909 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Fix for linking issue with Odin Monolithics build.
Change 3197812 on 2016/11/14 by Alan.Villani
#odin Spectator and leaderboard code support:
Support for enhanced oculus leaderboard functionality. Player's score is uploaded on FinishLevel(). Added delegate function to allow Rift render code to render an additional passed in texture - this is used to display spectator information in the mirrored window. GetMissionRowName() can now return the row name for the intro mission.
This is only code support. Blueprint support to follow.
Change 3196940 on 2016/11/14 by Nick.Whiting
Fix for include path
Change 3196897 on 2016/11/14 by Nick.Whiting
Integrating IKinema plugin. Note that there are some deprecation warnings that have not been fixed up because of the refactoring. We're going to avoid fixing that up for now, because it's a large refactor, and the plugin is only needed for this week.
Change 3194897 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) -- Downgrade warning log spam when sweeping skeletal mesh components.
Change 3194799 on 2016/11/11 by Nick.Atamas
Added better normals for curved WidgetComponent.
Change 3194697 on 2016/11/11 by Chris.Bunner
Duplicated CL 3194665 from Dev-Rendering: Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194383 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - Avoid calling ComponentOverlapComponent() when handling overlap checks if either component is a SkeletalMeshComponent. That function returns false for those, however a normal global overlap check would return a valid result.
Also elevated warnings (from log) when trying to use above function with SkeletalMeshComponents.
Change 3194380 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - UPrimitiveComponent::GetCollisionEnabled() checks the owner Actor enable collision setting. Handles cases where the BodyInstance doesn't have physics state.
Also merge CL 3136709 to fix overlap events spam.
Change 3192616 on 2016/11/09 by Zak.Middleton
#odin - Jump arcs only draw in editor if Navigation is shown, or when selected in editor.
Change 3192310 on 2016/11/09 by Daniel.Wright
[Copy] Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3191042 on 2016/11/08 by Nick.Atamas
#slate/umg
Added SetIsExapanded_Animated() method to SExpandableArea.
Added anim length to ExpandableArea's widget style.
Change 3190411 on 2016/11/08 by Guillaume.Abadie
Adds some randomness in particul collisions.
Change 3186455 on 2016/11/03 by Stanley.Hayes
Fixed Tangents the mesh generation of Widget Component, now works with Bump Offset! -- The Impl for non-planar widgets is wrong but works as a temp fix
Change 3186335 on 2016/11/03 by Alan.Villani
#odin Oculus Input:
Fix for haptic feedback not processing unless both touch controllers are active.
Change 3184215 on 2016/11/02 by Daniel.Wright
Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only
Change 3182542 on 2016/11/01 by Nick.Atamas
Applied feedback after code review:
- Fixed bug with incorrectly assigned LocalHitLocation
- PerformTrace is now const
- Clarified comments.
Potentially fixed jira ODIN-1590, pending verification.
Change 3181845 on 2016/11/01 by Nick.Atamas
Details panel filters now show a distinct visual state (yellow highlight) when a filter is active.
https://jira.it.epicgames.net/browse/UE-11088
Change 3179037 on 2016/10/28 by Zak.Middleton
#ue4 - (Odin) - Avoid crash in PropertyChangeListener when WeakObjectPtr goes null. Prevent passing null objects in array to delegates that don't null check the elements. Repro steps still unclear, adding ensure() to catch it for more info.
Change 3177127 on 2016/10/27 by Alan.Villani
#odin Menu Shell:
Put in cvar to allow disabling of haptics.
Change 3174582 on 2016/10/26 by Zak.Middleton
#ue4 - Changed Actor::GetForwardVector, GetUpVector, and GetRightVector to just wrap to the FQuat functions. These use inline constants rather than a memory fetch to the static FVector::ForwardVector etc, so the multiplies are better optimized in-place by the compiler (ie with constant folding).
Change 3174401 on 2016/10/25 by Maciej.Mroz
In nativized code Nullptr is always casted to UObject type.
#jira ODIN-1560
Change 3173310 on 2016/10/25 by Guillaume.Abadie
Fix a bug in the forward shading particule collision hack using ddx/ddy to compute the normal and implement an accurate way of compute the normal requiering two addtional scene depth buffer fetches for neighboorhing pixels and use it as default.
Change 3172997 on 2016/10/24 by Nick.Atamas
Cylindrical Widget - First Pass Support.
Change 3172707 on 2016/10/24 by Nick.Whiting
Integrating fix for haptic effects with sound waves crashing when no sound wave is loaded.
Change 3172167 on 2016/10/24 by Jeff.Farris
Merged 3120587 from Dev-Sequencer to Odin (Fbx Export: Fix double transforms on an exported mesh.)
Change 3170221 on 2016/10/21 by Zak.Middleton
#ue4 - Fix projectiles and characters not moving at all when frame delta time is very low (time dilation is very low, framerate is very high, or a combination of both).
Change 3170036 on 2016/10/20 by Zak.Middleton
#ue4 - Make Ragdoll collision profile ignore Visibility channel (to match CharacterMesh collision profile).
Change 3169728 on 2016/10/20 by Zak.Middleton
#ue4 - Fix comment.
Change 3169727 on 2016/10/20 by Zak.Middleton
#ue4 - Fix spacing/indentation.
Change 3169277 on 2016/10/20 by Zak.Middleton
#ue4 - Lower default simulations per second in PredictProjectilePath. Now that it is more accurate (after CL 3124174), this will still maintain quality with better performance.
Change 3169272 on 2016/10/20 by Zak.Middleton
#ue4 - Change some array Reset() calls back to Empty(), since blueprints typically keep these arrays around forever and we don't want them to stay large.
Change 3168157 on 2016/10/19 by Jeff.Farris
Merging 3168079 from Dev-Framework to Odin (Fix timing issue that causes snapshotpose to t-pose.)
Change 3167894 on 2016/10/19 by Chris.Bunner
Updated tooltip comment.
Change 3167569 on 2016/10/19 by Jeff.Farris
#engine Fixed issue with cine camera component where blueprint-accessible FOV data could be incorrect in some circumstances
Change 3166950 on 2016/10/18 by Zak.Middleton
#ue4 - Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656.
Change 3166807 on 2016/10/18 by Zak.Middleton
#ue4 - Make all GameplayStatics functions take const WorldContextObjects, so they are more usable from C++.
Change 3166540 on 2016/10/18 by Jeff.Farris
Merging 3164818 from Dev-Framework to Odin (Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.)
Change 3166323 on 2016/10/18 by Jeff.Farris
#engine Fixed issue where Navlink smartlinks wouldn't respect the Direction property proprely.
Change 3163415 on 2016/10/14 by Chris.Bunner
Allow surface actor particles to inherit UV coordinates through the dynamic parameter struct.
Change 3162716 on 2016/10/13 by Jeff.Farris
#engine Made UPathFollowingComponent::HasReachedCurrentTarget() virtual
Change 3161602 on 2016/10/13 by Jeff.Farris
#engine removed a comment I left in
Change 3161037 on 2016/10/12 by Alan.Villani
#odin Loading Screens:
Modified AsyncLoadingSplash to use platform specific max layer number.
Change 3160690 on 2016/10/12 by Jeff.Farris
#engine Added PathFollowingComponent::bIsDecelerating to know when AI is in its "decelerate at the end of the path" state
Change 3160686 on 2016/10/12 by Jeff.Farris
#engine Fixed comment on NavMovementComponent::bUseAccelerationForPaths
Change 3160200 on 2016/10/12 by Zak.Middleton
#odin - Added Odin versions of Sphere, Capsule, Box trace functions taking any trace channel.
Change 3156847 on 2016/10/10 by Maciej.Mroz
#jira ODIN-1345
In nativized code, value of output array parameter is reset before the funtion, that will fill the parameter, is called. The same mechanism is already used by bytecode comiler.
Change 3155495 on 2016/10/07 by Zak.Middleton
#ue4 - RootComponent fixup in AActor::PostLoadSubojects should handle constructors that also try to fix up the old root component on their own.
Additionally we should attach the old root component to the new one, otherwise it has no parent.
Change 3154962 on 2016/10/07 by Chris.Bunner
Duplicating CL 3148934, 3148994 from Dev-Rendering - Added pre-skinned local position material graph node, vertex shader only.
Change 3154255 on 2016/10/06 by Zak.Middleton
#ue4 - Add AIController to the delegate for move completion for blueprint "AI Move To Location or Actor" nodes, so you can know which AI finishes the move.
Change 3154217 on 2016/10/06 by Mike.Beach
Backing out changelist 3146883, as it was causing properties to clear on load (in Gun_Shotgun/BP_RightHand).
Change 3154199 on 2016/10/06 by Zak.Middleton
#ue4 - Inline a few simple functions in UKismetSystemLibrary for performance in nativized builds.
Change 3153427 on 2016/10/06 by Jeff.Farris
Updated Oculus AppID to the full game ID
Change 3148205 on 2016/10/02 by Zak.Middleton
#ue4 - Perf: Add simple path for UPrimitiveComponent::UpdatePhysicsVolume() when there are no physics volumes placed in a level. Avoid checking overlapping components for any volumes at all.
Change 3148089 on 2016/10/01 by Phillip.Kavan
Merging in CLs 3148022 and 3148033 from //UE4/Dev-Blueprints/...
Note: These were dependent on the following additional CLs, which have also been merged in:
=> 3081010,3116021,3123581,3131318,3132348,3133072,3133817,3137800,3137851
Change 3148054 on 2016/10/01 by Nick.Whiting
Adding much smaller footprint entitlement check
Change 3147910 on 2016/10/01 by Nick.Whiting
Back out changelist 3147807
Change 3147909 on 2016/10/01 by Nick.Whiting
Back out changelist 3147787
Change 3147810 on 2016/09/30 by Zak.Middleton
#odin - Fix "Delay" nodes in macros not working correctly. This made simultaneous instances of our "UndilatedDelay" and "0-1 Lerp" macros incorrect.
(Mirror CL 3119502 from Dev-Blueprints)
Change 3147807 on 2016/09/30 by Nick.Whiting
Blueprint cyclic dependency fixes, submitted on behalf of DanO.
Change 3147787 on 2016/09/30 by Nick.Whiting
Adding Oculus Entitlement check for Odin
Change 3147732 on 2016/09/30 by Daniel.Wright
From Guillaume: Skip ClearStencilFromBasePass by using a single bit of stencil as a sandbox bit. This requires all passes that use stencil to setup a proper read / write mask, as other stencil bits will be non-zero. Saves .14ms
Change 3147285 on 2016/09/30 by Dan.Oconnor
Back out changelist 3147258
Introduced "Detaching from existing linker" crash
Change 3147258 on 2016/09/30 by Dan.Oconnor
Making sure we defer objects that have unserialized archetypes
Change 3146985 on 2016/09/30 by Daniel.Wright
Skip Prepass ResolveSceneDepthTexture if there's no way decals or shadows will use it, since there's another resolve after the base pass. Saves .1ms in the planar reflection pass.
Change 3146883 on 2016/09/30 by Dan.Oconnor
Fix for component data getting lost on load. Two primary causes:
1. Loading component, then loading its template and reinitializing it from parent
2. Discarding inheritable component handler on load because it 'matched' the unloaded super (or it was unloaded and matched a loaded super, or both of them weren't yet loaded and they matched)
Change 3145504 on 2016/09/29 by Daniel.Wright
Capsule indirect shadows are now affected by DynamicShadows showflag
Change 3145416 on 2016/09/29 by Wyeth.Johnson
optimized vector to radial value to use atan2fast. Small polish to weapon available indicators, slightly smaller, radial res in, get brighter right before pickup to match the glow transition
Change 3144359 on 2016/09/28 by Zak.Middleton
#ue4 - Add IsPointInBox() and IsPointInBoxWithTransform() to KismetMathLibrary.
Change 3144302 on 2016/09/28 by Daniel.Wright
New SceneCapture functions for managing the ShowOnly list: RemoveShowOnlyComponent, RemoveShowOnlyActorComponents, ClearShowOnlyComponents
Change 3144210 on 2016/09/28 by Daniel.Wright
Manual copy - Shadow stencil optimisation from Ben Woodhouse with cvar (enabled by default). Saves .2ms in Odin.
Change 3144208 on 2016/09/28 by Daniel.Wright
Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970
Change 3143778 on 2016/09/28 by Ryan.Vance
Disabling motion blur scale behavior. We want the motion blur scale to be consistent regardless of time dilation.
Cleaning up the velocity bias change made yesterday for odin, need to ensure it doesn't make it back to main as it will break TAA.
Change 3143728 on 2016/09/28 by Jeff.Farris
Made AIController::MoveTo virtual
Change 3142740 on 2016/09/27 by Nick.Whiting
Fix for dynamic object velocity rendering not working. MSAA was breaking it, needed to add a bias in the VelocityShader in order to pass depth tests
Change 3142665 on 2016/09/27 by Ryan.Vance
Fixing incorrect uniform/buffer references for passes that aren't drawn with ISR when ISR is turned when using forward.
Change 3142488 on 2016/09/27 by Zak.Middleton
#ue4 - Expose Character::MovementModeChangedDelegate to blueprints. Fix category on OnReachedJumpApex event.
Change 3142360 on 2016/09/27 by Frank.Fella
Sequencer - Don't crash when a bool track or visibility track has a null runtime object.
Change 3142204 on 2016/09/27 by Zak.Middleton
#odin - Nav jump links update their nav data in realtime as the start and end points are moved. Still need to color the predicted path based on the nav data.
Change 3141695 on 2016/09/27 by Guillaume.Abadie
Fixes depth buffer collision on GPU particle in the forward render by computing the world normal using a cross(ddx(), ddy()) of the world position.
#review-3141656 @ben.woodhouse
Change 3141013 on 2016/09/27 by Zak.Middleton
#ue4 - NavLinkProxy properly calls SetNavigationRelevancy() when created in the editor. Fixes the need to uncheck/recheck bSmartLinkIsRelevant.
Change 3140878 on 2016/09/26 by Zak.Middleton
#ue4 - Add MarkRenderStateDirty() to UNavLinkCustomComponent::SetLinkData(), so visualizers update asap after link data changes.
Change 3140863 on 2016/09/26 by Nick.Whiting
Adding in vr.MonoCapture, which disables the right eye for capturing in order to give a performance boost
Change 3140790 on 2016/09/26 by Zak.Middleton
#ue4 - Make LineBatchComponent's FLineBatcherSceneProxy::GetViewRelevance() respect show flags (such as hidden in game).
Change 3140175 on 2016/09/26 by Dan.Oconnor
Mirror of 3140143
#jira UE-36395
Change 3139622 on 2016/09/26 by Maciej.Mroz
Fixed const local variables in Nativized code
Change 3139257 on 2016/09/24 by Jeff.Farris
Added GetGrabbedComponent() to UPhysicsHandleComponent.
Change 3139050 on 2016/09/23 by Nick.Whiting
Support for trailer capturing, as well as gamepad controls for adjustment
Change 3138644 on 2016/09/23 by Zak.Middleton
#ue4 - Added FPredictProjectilePathPointData::Reset(). Presize path points array in UGameplayStatics::PredictProjectilePath().
Change 3138521 on 2016/09/23 by Ryan.Vance
#jira UE-36114
We need to bind the right eye's forward lighting state when ISR is enabled and branch depending on which eye instance we're drawing.
Added a copy of FForwardGlobalLightData, NumCulledLightsGrid CulledLightDataGrid, and ForwardLocalLightBuffer for the right eye and set them when drawing with ISR
Moved ForwardLightingResources from FViewInfo up to FSceneView for access
Removed USE_CULLED_LOCAL_LIGHTS as it wasn't being used and complicated the shader refactor
TODO: This can be greatly simplified by generating the FForwardGlobalLightData uniform assignment shader code similar to how I'm handling the view uniforms. To clean up the branching for the grid buffers we should write both eyes into a single buffer and just use an offset.
Change 3138178 on 2016/09/23 by Zak.Middleton
#ue4 - Add FVector::DistXY() and Dist2D() (as an alias). Add FVector::Distance() as an alias for Dist(), and FVector::DistSquared2D() as an alias for DistSquaredXY(). Fixed comment in FVector2D::Distance() saying it was the squared distance.
- This is more in line with the Size2D(), SizeSquared2D(), GetSafeNormal2D() naming, but maintains backwards compat for a large amount of code.
Change 3138162 on 2016/09/23 by Lukasz.Furman
fixed navmesh crash on attempt to regenerate an empty tile layer
Change 3137578 on 2016/09/23 by Maciej.Mroz
#jira ODIN-1017 [Nativization] Crash while loading Hub_env level
Ensured, that CreateExport (and fully construction) is called for loaded DynamicClass.
Change 3136774 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
#jira ODIN-1013
Change 3136491 on 2016/09/22 by Jeff.Farris
Removed an unnnecessary ensure in ApplyPhysicalAnimationProfileBelow.
Change 3136412 on 2016/09/22 by Zak.Middleton
#ue4 - Inlined more functions in KismetMathLibrary that used error reporting (eg divide by zero errors). Moved the actual error reporting to the cpp so the inline overhead and compilation overhead is negligible.
Change 3136288 on 2016/09/22 by Zak.Middleton
#ue4 - Inline KismetMathLibrary functions where appropriate. Improves performance in nativized builds where the calls were not inlined even for the most simple functions (like "Not Bool", "Add Ints").
Change 3136162 on 2016/09/22 by Ben.Marsh
Merge CL 3136158 to fix issues generating project files with Visual Studio Express.
Change 3135403 on 2016/09/22 by Jeff.Farris
GameplayStatics::ApplyPointDamage and ApplyDamage now return the actual damage that was applied
Change 3135052 on 2016/09/21 by Zak.Middleton
#ue4 - Add new GameplayStatics::PredictProjectilePath functions with added functionality.
- Option to trace for collision by trace channel, object type, or both.
- Added versions that take input and output struct parameters.
- Output now includes location, velocity, and time for each point on the path.
Change 3134757 on 2016/09/21 by Guillaume.Abadie
Removes all resolve operations from distortion pass and support MSAA for the forward shader.
#review-3134758 @daniel.wright
Change 3134635 on 2016/09/21 by Jeff.Farris
Merged from Dev-Physics-Upgrade to Odin. This is the upgrade to PhysX 3.4.
Change 3134101 on 2016/09/21 by David.Hill
Post process CombineLUT shouldn't be per eye.
Also disable weighted-average post process passes for bloom when filter size is set to zero.
#review-3134102 @chris.bunner
Change 3133191 on 2016/09/20 by Guillaume.Abadie
Normalizes material's Opacity Mask according to Opacity Mask Clip Value.
Change 3133082 on 2016/09/20 by Brian.Karis
Static light source shapes in reflection captures will fade out when outside influence instead of going black.
Change 3132936 on 2016/09/20 by Jeff.Farris
Fixed some engine issues with setting mass overrides.
Change 3132821 on 2016/09/20 by Guillaume.Abadie
Adds support for MSAA on masked material using shader implemented alpha to coverage.
#review-3130154 @daniel.wright
Change 3132522 on 2016/09/20 by Zak.Middleton
#ue4 - Cache conversion of WalkableSlopeAngle to the cosine value in FWalkableSlopeOverride struct, when used in the override modes. Avoids computing this conversion (potentially multiple times per frame) for every character movement move and floor test.
Change 3130457 on 2016/09/19 by Daniel.Wright
Reuse ESceneColorFormatType::HighEndWithAlpha if the format allows it - prevents two scene color textures being allocated with planar reflections with r.SceneColorFormat=4
Change 3129467 on 2016/09/16 by Zak.Middleton
#ue4 - Improve Accuracy of final point in UGameplayStatics::PredictProjectilePath() to respect MaxSimTime. Previously the sim could have exceeded the max time if (MaxSimTime / SimFrequency) had a fractional part.
Change 3129327 on 2016/09/16 by Daniel.Wright
Added r.NormalCurvatureToRoughnessExponent for tweaking
NormalCurvatureToRoughness is now applied to clearcoat roughness
Change 3129324 on 2016/09/16 by Daniel.Wright
Added r.TemporalAACurrentFrameWeight for debugging
Change 3128812 on 2016/09/16 by Daniel.Wright
Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3.
Change 3128811 on 2016/09/16 by Daniel.Wright
Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path.
Change 3126195 on 2016/09/15 by Maciej.Mroz
#jira UE-35262 Incompatible pins give generate warning, when error is necessary.
Fixed incompatible pins validation.
Manually merged cl#3124667 from Dev-Blueprints
Change 3126108 on 2016/09/14 by Nick.Whiting
Added GetLaunchOption blueprint node to check if command line arguments are set
Added -demo path for Odin, which disables pause, and changes opening flow
Change 3125819 on 2016/09/14 by Zak.Middleton
#ue4 - Add option for accurate bounds for LineBatchComponent, on by default. Corrects attempts to focus on actors using them causing the view to zoom out to HALF_WORLD_MAX.
Turned this off for world debug line visualizers, to avoid affecting perf for those (and they often have lines/points all over anyway).
Change 3125686 on 2016/09/14 by Zabir.Hoque
Slimed down when and where we resolve RT particularly for forward rendering.
Change 3124174 on 2016/09/13 by Zak.Middleton
#ue4 - Improved accuracy and performance of PredictProjectilePath(). Switched to semi-implicit Euler integration. Fixed not being able to pass in const WorldContextObjects (only an issue when used from code, BP didn't care).
Change 3124121 on 2016/09/13 by Zak.Middleton
#odin - Integrate CL 3122728 from Dev-Editor:
UMG - Exposing a trace channel for the WIC, defaults to Visibility. Improving how the WIC handles the cursor moving off the widget, it now maintains the last hit location rather than 0,0 which would cause things like dragged Sliders to reset to the left. Ideally - the WIC would know the underlying widget has capture and continue to fake collision against an imaginary plane to simulate a continuous surface.
Change 3124116 on 2016/09/13 by Zak.Middleton
#odin - Back out revision 3 from //Odin/Main/Engine/Source/Runtime/UMG/Private/Components/WidgetInteractionComponent.cpp
Change 3123485 on 2016/09/13 by Stanley.Hayes
Added optional trace channels to WidgetInterationComponent
Change 3123301 on 2016/09/13 by Zak.Middleton
#ue4 - Added ENGINE_API to some functions in ULineBatchComponent that were not exported: DrawLines, DrawLine, DrawPoint, DrawSolidBox, DrawMesh.
Change 3122632 on 2016/09/13 by Maciej.Mroz
Improved ReverseForEachLoop macro in StandardMacros
Change 3122351 on 2016/09/12 by Nick.Whiting
Adding 90fps tracking to the FPS summary chart creation
Change 3122325 on 2016/09/12 by Wyeth.Johnson
Needed a 5 minute breather. Updated Editor splash screen because reasons
Change 3121869 on 2016/09/12 by Zak.Middleton
#ue4 - (Merge to Odin) Fix UGameplayStatics::SpawnEmitterAttached() using wrong scale when SnapToTarget (Keep World Scale) option is used. Improve comments for SpawnEmitterAttached().
#jira UE-34482
(Integrate Framework->Odin)
Change 3121407 on 2016/09/12 by Wyeth.Johnson
Fixed shopfront for Oz, big bot WIP
Change 3121253 on 2016/09/12 by Zak.Middleton
#ue4 - Fix CharacterMovement braking when using acceleration for paths.
- Fixed pathfinding using friction in GetPathFollowingBrakingDistance() and using wrong formula for stopping distance. Pathfinding adjusts analog input to achieve this deceleration, so friction is never applied and should not be included here.
- Added virtual "GetMaxBrakingDeceleration()" function to CharacterMovementComponent. Returns deceleration value set for current movement mode (ie BrakingDecelerationWalking, BrakingDecelerationFlying, etc).
Change 3121231 on 2016/09/12 by Wyeth.Johnson
Fixed procedural Stuff, now to fix aliasing :)
[CL 3226598 by Nick Whiting in Main branch]
2016-12-08 03:26:33 -05:00
2019-10-01 13:03:04 -04:00
const FPaniniProjectionConfig PaniniConfig ( View ) ;
enum class EPass : uint32
Copying //UE4/Odin-Staging to //UE4/Dev-Main (Source: //Odin/Main @ 3226588)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3226413 on 2016/12/07 by Jeff.Farris
Fixed potential crash in USkeletalMeshComponent::InitArticulated().
Change 3226257 on 2016/12/07 by Mike.Beach
Mirroring CL 3219381 from Dev-Blueprints
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3226147 on 2016/12/07 by Aaron.McLeran
Implementing UE-39421 fix into odin
Change 3225906 on 2016/12/07 by Jeff.Farris
Merge-copied 3216144 from Dev-Framework to Odin (Fix FConstraintInstance scaling issues in FSkeletalMeshComponent::InitArticulated.)
Change 3225097 on 2016/12/07 by Zak.Middleton
#odin-ue4 - Fix GameEngine.cpp compile error (FMessageDialog not declared).
Change 3225050 on 2016/12/07 by Jeff.Farris
Added forward declaration to IOculusRiftPlugin.h to fix compile error in Test builds.
Change 3224757 on 2016/12/07 by Ben.Marsh
Merge CL 3224750 from //UE4/Main: Removing -forcelogflush parameter from UAT invocations of the editor to improve cook times.
Change 3224451 on 2016/12/06 by Max.Chen
Sequencer: Fix convert spawnable to posessable. Logic for setting the parent was mistakenly removed in runtime eval.
Copy from Dev-Sequencer
#jira UE-39419
Change 3223856 on 2016/12/06 by Guillaume.Abadie
Fixes merge collision of Base Pass's selective outputs and MSAA alpha to coverage
Change 3223673 on 2016/12/06 by Zak.Middleton
#odin-ue4 - Fixed crash when opening data table assets and working with some types of nodes in the graph editor.
Merged fixes from Dev-Editor: CL 3156326, 3172078, 3187276, 3210983.
Change 3223381 on 2016/12/06 by Nick.Whiting
Merging using UE4_MAIN_to_ODIN @ CL 3221533
Change 3223325 on 2016/12/06 by Alex.Delesky
Plugin wizard definition for creating Odin game mods. Currently this just creates an empty Content Only plugin.
This also enables the mod creation window to be shown on editor startup (can be toggled off) or invoked via a toolbar button.
Change 3221825 on 2016/12/05 by Nick.Whiting
Updating VCToolChain.cs file, which was skipped in last integration
Change 3221793 on 2016/12/05 by Zak.Middleton
#odin - Back out changelist 3218159. Going to move to trace by profile in the future instead.
Change 3219668 on 2016/12/02 by Alex.Delesky
Partially duplicating CL 3185126 into Odin:
-Fixes an issue where adding a new plugin could unnecesarily added to the additional plugin directory, which can cause build failures.
Change 3219558 on 2016/12/02 by Zak.Middleton
#odin - Fix adapative pixel density crash (again). INI settings are dumb and locally saved INIs ignore the change to the base I pushed yesterday, so pushing a code fix instead. Wrapped in "DO NOT MERGE" since this crash is fixed in Dev-VR.
Change 3218953 on 2016/12/02 by Alex.Delesky
Back out changelist 3216159 - Reintroducing Plugin Wizard Definition for defining New Plugin Wizard functionality
Change 3218822 on 2016/12/02 by Matthew.Griffin
Remove modding from folder paths
Add logging for delete task
Delete more temp files from Copy and DDC process
Change 3218410 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fix crash when unloading levels or exiting the editor when objects placed in levels had a MID set in construction scripts.
CLs from Dev-Editor: 3203739, 3205814
Change 3218277 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fixed crash when opening data table assets.
Merged small fixes from Dev-Editor: CL 3156326, 3172078, 3187276.
#jira ODIN-2096
Change 3218178 on 2016/12/01 by Jeff.Farris
Fix for bad merge in InheritableComponentHandler (discovered via shadow var warning)
Change 3218159 on 2016/12/01 by Zak.Middleton
#ue4-odin - Wrap blueprint trace functions using trace channels to a generic helper that uses any collision channel. Before we decide whether to expose object channel or general collision channel functions to blueprints, this allows games to at least build off the general functions.
Change 3216502 on 2016/11/30 by Nick.Whiting
Missed files from merge
Change 3216490 on 2016/11/30 by Nick.Whiting
Merge Main -> Odin, up to CL 3202946
Change 3216159 on 2016/11/30 by Zak.Middleton
#odin - Back out changelist 3216005
Change 3216005 on 2016/11/30 by Alex.Delesky
Adding the IPluginWizardDefinition interface, which is used to determine the functionality of the new plugin wizard along with what kind of plugins can actually be created. This can be used to change the behavior of the plugin wizard to create new game mods.
Change 3215329 on 2016/11/30 by Jeff.Farris
Re-expose collision settings on EQSTestingPawn so users can make the test pawn agent dimensions match the pawn they are trying to simulate.
Change 3213875 on 2016/11/29 by Jeff.Farris
Turned off collision on EQSRenderingComponent for EQSTestingPawns. Fixes issue with bogus agent dimensions.
Change 3213027 on 2016/11/29 by Matthew.Griffin
Added Modding Build steps to copy everything needed for an installed editor build
Added BuildCommand to run GenerateDistillFileSetsCommandlet and copy the resulting file list to another location
Fix for APEX .pdb paths
Change 3206638 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class
Change 3206175 on 2016/11/21 by Nick.Atamas
#umg exposed support for explicit wrap width in WrapBox.
Change 3204658 on 2016/11/18 by Alan.Villani
#odin Wiring up new intro cinematic to game flow.
Change 3201200 on 2016/11/16 by Alan.Villani
#odin Spectator/Leaderboards: Added console var vr.bAllowSpectatorTexture to enable/disable the display of the spectator texture. Also enabling spectator panel and leaderboards with this change.
Change 3201064 on 2016/11/16 by Wyeth.Johnson
Support new billboards
Change 3199357 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Removing logging now that problem has been fixed.
Change 3199302 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Skip reinit if not a successful init in ovr_ResetInitAndContext(). Also added logging to shutdown.
Change 3198947 on 2016/11/15 by Alan.Villani
#odin Spectator/Leaderboards: Reinstating CL 3197812 with fix to make InitWithWindowsPlatform() return warnings instead of errors.
Change 3198803 on 2016/11/15 by Jeff.Farris
Copied CL 3198691 frojm Dev-Sequencer (Sequence Recorder: Optimize record transforms by setting all the keyframes at once. Also, added option to toggle removing redundant keyframes from the recorded tracks.)
Change 3198525 on 2016/11/15 by Alan.Villani
#odin ODIN-1758. Spectator/Leaderboards: Back out changelist 3197812. This change was causing the automated packaged build to fail. Since the root cause hasn't been found, reverting the change.
Change 3197909 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Fix for linking issue with Odin Monolithics build.
Change 3197812 on 2016/11/14 by Alan.Villani
#odin Spectator and leaderboard code support:
Support for enhanced oculus leaderboard functionality. Player's score is uploaded on FinishLevel(). Added delegate function to allow Rift render code to render an additional passed in texture - this is used to display spectator information in the mirrored window. GetMissionRowName() can now return the row name for the intro mission.
This is only code support. Blueprint support to follow.
Change 3196940 on 2016/11/14 by Nick.Whiting
Fix for include path
Change 3196897 on 2016/11/14 by Nick.Whiting
Integrating IKinema plugin. Note that there are some deprecation warnings that have not been fixed up because of the refactoring. We're going to avoid fixing that up for now, because it's a large refactor, and the plugin is only needed for this week.
Change 3194897 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) -- Downgrade warning log spam when sweeping skeletal mesh components.
Change 3194799 on 2016/11/11 by Nick.Atamas
Added better normals for curved WidgetComponent.
Change 3194697 on 2016/11/11 by Chris.Bunner
Duplicated CL 3194665 from Dev-Rendering: Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194383 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - Avoid calling ComponentOverlapComponent() when handling overlap checks if either component is a SkeletalMeshComponent. That function returns false for those, however a normal global overlap check would return a valid result.
Also elevated warnings (from log) when trying to use above function with SkeletalMeshComponents.
Change 3194380 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - UPrimitiveComponent::GetCollisionEnabled() checks the owner Actor enable collision setting. Handles cases where the BodyInstance doesn't have physics state.
Also merge CL 3136709 to fix overlap events spam.
Change 3192616 on 2016/11/09 by Zak.Middleton
#odin - Jump arcs only draw in editor if Navigation is shown, or when selected in editor.
Change 3192310 on 2016/11/09 by Daniel.Wright
[Copy] Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3191042 on 2016/11/08 by Nick.Atamas
#slate/umg
Added SetIsExapanded_Animated() method to SExpandableArea.
Added anim length to ExpandableArea's widget style.
Change 3190411 on 2016/11/08 by Guillaume.Abadie
Adds some randomness in particul collisions.
Change 3186455 on 2016/11/03 by Stanley.Hayes
Fixed Tangents the mesh generation of Widget Component, now works with Bump Offset! -- The Impl for non-planar widgets is wrong but works as a temp fix
Change 3186335 on 2016/11/03 by Alan.Villani
#odin Oculus Input:
Fix for haptic feedback not processing unless both touch controllers are active.
Change 3184215 on 2016/11/02 by Daniel.Wright
Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only
Change 3182542 on 2016/11/01 by Nick.Atamas
Applied feedback after code review:
- Fixed bug with incorrectly assigned LocalHitLocation
- PerformTrace is now const
- Clarified comments.
Potentially fixed jira ODIN-1590, pending verification.
Change 3181845 on 2016/11/01 by Nick.Atamas
Details panel filters now show a distinct visual state (yellow highlight) when a filter is active.
https://jira.it.epicgames.net/browse/UE-11088
Change 3179037 on 2016/10/28 by Zak.Middleton
#ue4 - (Odin) - Avoid crash in PropertyChangeListener when WeakObjectPtr goes null. Prevent passing null objects in array to delegates that don't null check the elements. Repro steps still unclear, adding ensure() to catch it for more info.
Change 3177127 on 2016/10/27 by Alan.Villani
#odin Menu Shell:
Put in cvar to allow disabling of haptics.
Change 3174582 on 2016/10/26 by Zak.Middleton
#ue4 - Changed Actor::GetForwardVector, GetUpVector, and GetRightVector to just wrap to the FQuat functions. These use inline constants rather than a memory fetch to the static FVector::ForwardVector etc, so the multiplies are better optimized in-place by the compiler (ie with constant folding).
Change 3174401 on 2016/10/25 by Maciej.Mroz
In nativized code Nullptr is always casted to UObject type.
#jira ODIN-1560
Change 3173310 on 2016/10/25 by Guillaume.Abadie
Fix a bug in the forward shading particule collision hack using ddx/ddy to compute the normal and implement an accurate way of compute the normal requiering two addtional scene depth buffer fetches for neighboorhing pixels and use it as default.
Change 3172997 on 2016/10/24 by Nick.Atamas
Cylindrical Widget - First Pass Support.
Change 3172707 on 2016/10/24 by Nick.Whiting
Integrating fix for haptic effects with sound waves crashing when no sound wave is loaded.
Change 3172167 on 2016/10/24 by Jeff.Farris
Merged 3120587 from Dev-Sequencer to Odin (Fbx Export: Fix double transforms on an exported mesh.)
Change 3170221 on 2016/10/21 by Zak.Middleton
#ue4 - Fix projectiles and characters not moving at all when frame delta time is very low (time dilation is very low, framerate is very high, or a combination of both).
Change 3170036 on 2016/10/20 by Zak.Middleton
#ue4 - Make Ragdoll collision profile ignore Visibility channel (to match CharacterMesh collision profile).
Change 3169728 on 2016/10/20 by Zak.Middleton
#ue4 - Fix comment.
Change 3169727 on 2016/10/20 by Zak.Middleton
#ue4 - Fix spacing/indentation.
Change 3169277 on 2016/10/20 by Zak.Middleton
#ue4 - Lower default simulations per second in PredictProjectilePath. Now that it is more accurate (after CL 3124174), this will still maintain quality with better performance.
Change 3169272 on 2016/10/20 by Zak.Middleton
#ue4 - Change some array Reset() calls back to Empty(), since blueprints typically keep these arrays around forever and we don't want them to stay large.
Change 3168157 on 2016/10/19 by Jeff.Farris
Merging 3168079 from Dev-Framework to Odin (Fix timing issue that causes snapshotpose to t-pose.)
Change 3167894 on 2016/10/19 by Chris.Bunner
Updated tooltip comment.
Change 3167569 on 2016/10/19 by Jeff.Farris
#engine Fixed issue with cine camera component where blueprint-accessible FOV data could be incorrect in some circumstances
Change 3166950 on 2016/10/18 by Zak.Middleton
#ue4 - Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656.
Change 3166807 on 2016/10/18 by Zak.Middleton
#ue4 - Make all GameplayStatics functions take const WorldContextObjects, so they are more usable from C++.
Change 3166540 on 2016/10/18 by Jeff.Farris
Merging 3164818 from Dev-Framework to Odin (Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.)
Change 3166323 on 2016/10/18 by Jeff.Farris
#engine Fixed issue where Navlink smartlinks wouldn't respect the Direction property proprely.
Change 3163415 on 2016/10/14 by Chris.Bunner
Allow surface actor particles to inherit UV coordinates through the dynamic parameter struct.
Change 3162716 on 2016/10/13 by Jeff.Farris
#engine Made UPathFollowingComponent::HasReachedCurrentTarget() virtual
Change 3161602 on 2016/10/13 by Jeff.Farris
#engine removed a comment I left in
Change 3161037 on 2016/10/12 by Alan.Villani
#odin Loading Screens:
Modified AsyncLoadingSplash to use platform specific max layer number.
Change 3160690 on 2016/10/12 by Jeff.Farris
#engine Added PathFollowingComponent::bIsDecelerating to know when AI is in its "decelerate at the end of the path" state
Change 3160686 on 2016/10/12 by Jeff.Farris
#engine Fixed comment on NavMovementComponent::bUseAccelerationForPaths
Change 3160200 on 2016/10/12 by Zak.Middleton
#odin - Added Odin versions of Sphere, Capsule, Box trace functions taking any trace channel.
Change 3156847 on 2016/10/10 by Maciej.Mroz
#jira ODIN-1345
In nativized code, value of output array parameter is reset before the funtion, that will fill the parameter, is called. The same mechanism is already used by bytecode comiler.
Change 3155495 on 2016/10/07 by Zak.Middleton
#ue4 - RootComponent fixup in AActor::PostLoadSubojects should handle constructors that also try to fix up the old root component on their own.
Additionally we should attach the old root component to the new one, otherwise it has no parent.
Change 3154962 on 2016/10/07 by Chris.Bunner
Duplicating CL 3148934, 3148994 from Dev-Rendering - Added pre-skinned local position material graph node, vertex shader only.
Change 3154255 on 2016/10/06 by Zak.Middleton
#ue4 - Add AIController to the delegate for move completion for blueprint "AI Move To Location or Actor" nodes, so you can know which AI finishes the move.
Change 3154217 on 2016/10/06 by Mike.Beach
Backing out changelist 3146883, as it was causing properties to clear on load (in Gun_Shotgun/BP_RightHand).
Change 3154199 on 2016/10/06 by Zak.Middleton
#ue4 - Inline a few simple functions in UKismetSystemLibrary for performance in nativized builds.
Change 3153427 on 2016/10/06 by Jeff.Farris
Updated Oculus AppID to the full game ID
Change 3148205 on 2016/10/02 by Zak.Middleton
#ue4 - Perf: Add simple path for UPrimitiveComponent::UpdatePhysicsVolume() when there are no physics volumes placed in a level. Avoid checking overlapping components for any volumes at all.
Change 3148089 on 2016/10/01 by Phillip.Kavan
Merging in CLs 3148022 and 3148033 from //UE4/Dev-Blueprints/...
Note: These were dependent on the following additional CLs, which have also been merged in:
=> 3081010,3116021,3123581,3131318,3132348,3133072,3133817,3137800,3137851
Change 3148054 on 2016/10/01 by Nick.Whiting
Adding much smaller footprint entitlement check
Change 3147910 on 2016/10/01 by Nick.Whiting
Back out changelist 3147807
Change 3147909 on 2016/10/01 by Nick.Whiting
Back out changelist 3147787
Change 3147810 on 2016/09/30 by Zak.Middleton
#odin - Fix "Delay" nodes in macros not working correctly. This made simultaneous instances of our "UndilatedDelay" and "0-1 Lerp" macros incorrect.
(Mirror CL 3119502 from Dev-Blueprints)
Change 3147807 on 2016/09/30 by Nick.Whiting
Blueprint cyclic dependency fixes, submitted on behalf of DanO.
Change 3147787 on 2016/09/30 by Nick.Whiting
Adding Oculus Entitlement check for Odin
Change 3147732 on 2016/09/30 by Daniel.Wright
From Guillaume: Skip ClearStencilFromBasePass by using a single bit of stencil as a sandbox bit. This requires all passes that use stencil to setup a proper read / write mask, as other stencil bits will be non-zero. Saves .14ms
Change 3147285 on 2016/09/30 by Dan.Oconnor
Back out changelist 3147258
Introduced "Detaching from existing linker" crash
Change 3147258 on 2016/09/30 by Dan.Oconnor
Making sure we defer objects that have unserialized archetypes
Change 3146985 on 2016/09/30 by Daniel.Wright
Skip Prepass ResolveSceneDepthTexture if there's no way decals or shadows will use it, since there's another resolve after the base pass. Saves .1ms in the planar reflection pass.
Change 3146883 on 2016/09/30 by Dan.Oconnor
Fix for component data getting lost on load. Two primary causes:
1. Loading component, then loading its template and reinitializing it from parent
2. Discarding inheritable component handler on load because it 'matched' the unloaded super (or it was unloaded and matched a loaded super, or both of them weren't yet loaded and they matched)
Change 3145504 on 2016/09/29 by Daniel.Wright
Capsule indirect shadows are now affected by DynamicShadows showflag
Change 3145416 on 2016/09/29 by Wyeth.Johnson
optimized vector to radial value to use atan2fast. Small polish to weapon available indicators, slightly smaller, radial res in, get brighter right before pickup to match the glow transition
Change 3144359 on 2016/09/28 by Zak.Middleton
#ue4 - Add IsPointInBox() and IsPointInBoxWithTransform() to KismetMathLibrary.
Change 3144302 on 2016/09/28 by Daniel.Wright
New SceneCapture functions for managing the ShowOnly list: RemoveShowOnlyComponent, RemoveShowOnlyActorComponents, ClearShowOnlyComponents
Change 3144210 on 2016/09/28 by Daniel.Wright
Manual copy - Shadow stencil optimisation from Ben Woodhouse with cvar (enabled by default). Saves .2ms in Odin.
Change 3144208 on 2016/09/28 by Daniel.Wright
Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970
Change 3143778 on 2016/09/28 by Ryan.Vance
Disabling motion blur scale behavior. We want the motion blur scale to be consistent regardless of time dilation.
Cleaning up the velocity bias change made yesterday for odin, need to ensure it doesn't make it back to main as it will break TAA.
Change 3143728 on 2016/09/28 by Jeff.Farris
Made AIController::MoveTo virtual
Change 3142740 on 2016/09/27 by Nick.Whiting
Fix for dynamic object velocity rendering not working. MSAA was breaking it, needed to add a bias in the VelocityShader in order to pass depth tests
Change 3142665 on 2016/09/27 by Ryan.Vance
Fixing incorrect uniform/buffer references for passes that aren't drawn with ISR when ISR is turned when using forward.
Change 3142488 on 2016/09/27 by Zak.Middleton
#ue4 - Expose Character::MovementModeChangedDelegate to blueprints. Fix category on OnReachedJumpApex event.
Change 3142360 on 2016/09/27 by Frank.Fella
Sequencer - Don't crash when a bool track or visibility track has a null runtime object.
Change 3142204 on 2016/09/27 by Zak.Middleton
#odin - Nav jump links update their nav data in realtime as the start and end points are moved. Still need to color the predicted path based on the nav data.
Change 3141695 on 2016/09/27 by Guillaume.Abadie
Fixes depth buffer collision on GPU particle in the forward render by computing the world normal using a cross(ddx(), ddy()) of the world position.
#review-3141656 @ben.woodhouse
Change 3141013 on 2016/09/27 by Zak.Middleton
#ue4 - NavLinkProxy properly calls SetNavigationRelevancy() when created in the editor. Fixes the need to uncheck/recheck bSmartLinkIsRelevant.
Change 3140878 on 2016/09/26 by Zak.Middleton
#ue4 - Add MarkRenderStateDirty() to UNavLinkCustomComponent::SetLinkData(), so visualizers update asap after link data changes.
Change 3140863 on 2016/09/26 by Nick.Whiting
Adding in vr.MonoCapture, which disables the right eye for capturing in order to give a performance boost
Change 3140790 on 2016/09/26 by Zak.Middleton
#ue4 - Make LineBatchComponent's FLineBatcherSceneProxy::GetViewRelevance() respect show flags (such as hidden in game).
Change 3140175 on 2016/09/26 by Dan.Oconnor
Mirror of 3140143
#jira UE-36395
Change 3139622 on 2016/09/26 by Maciej.Mroz
Fixed const local variables in Nativized code
Change 3139257 on 2016/09/24 by Jeff.Farris
Added GetGrabbedComponent() to UPhysicsHandleComponent.
Change 3139050 on 2016/09/23 by Nick.Whiting
Support for trailer capturing, as well as gamepad controls for adjustment
Change 3138644 on 2016/09/23 by Zak.Middleton
#ue4 - Added FPredictProjectilePathPointData::Reset(). Presize path points array in UGameplayStatics::PredictProjectilePath().
Change 3138521 on 2016/09/23 by Ryan.Vance
#jira UE-36114
We need to bind the right eye's forward lighting state when ISR is enabled and branch depending on which eye instance we're drawing.
Added a copy of FForwardGlobalLightData, NumCulledLightsGrid CulledLightDataGrid, and ForwardLocalLightBuffer for the right eye and set them when drawing with ISR
Moved ForwardLightingResources from FViewInfo up to FSceneView for access
Removed USE_CULLED_LOCAL_LIGHTS as it wasn't being used and complicated the shader refactor
TODO: This can be greatly simplified by generating the FForwardGlobalLightData uniform assignment shader code similar to how I'm handling the view uniforms. To clean up the branching for the grid buffers we should write both eyes into a single buffer and just use an offset.
Change 3138178 on 2016/09/23 by Zak.Middleton
#ue4 - Add FVector::DistXY() and Dist2D() (as an alias). Add FVector::Distance() as an alias for Dist(), and FVector::DistSquared2D() as an alias for DistSquaredXY(). Fixed comment in FVector2D::Distance() saying it was the squared distance.
- This is more in line with the Size2D(), SizeSquared2D(), GetSafeNormal2D() naming, but maintains backwards compat for a large amount of code.
Change 3138162 on 2016/09/23 by Lukasz.Furman
fixed navmesh crash on attempt to regenerate an empty tile layer
Change 3137578 on 2016/09/23 by Maciej.Mroz
#jira ODIN-1017 [Nativization] Crash while loading Hub_env level
Ensured, that CreateExport (and fully construction) is called for loaded DynamicClass.
Change 3136774 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
#jira ODIN-1013
Change 3136491 on 2016/09/22 by Jeff.Farris
Removed an unnnecessary ensure in ApplyPhysicalAnimationProfileBelow.
Change 3136412 on 2016/09/22 by Zak.Middleton
#ue4 - Inlined more functions in KismetMathLibrary that used error reporting (eg divide by zero errors). Moved the actual error reporting to the cpp so the inline overhead and compilation overhead is negligible.
Change 3136288 on 2016/09/22 by Zak.Middleton
#ue4 - Inline KismetMathLibrary functions where appropriate. Improves performance in nativized builds where the calls were not inlined even for the most simple functions (like "Not Bool", "Add Ints").
Change 3136162 on 2016/09/22 by Ben.Marsh
Merge CL 3136158 to fix issues generating project files with Visual Studio Express.
Change 3135403 on 2016/09/22 by Jeff.Farris
GameplayStatics::ApplyPointDamage and ApplyDamage now return the actual damage that was applied
Change 3135052 on 2016/09/21 by Zak.Middleton
#ue4 - Add new GameplayStatics::PredictProjectilePath functions with added functionality.
- Option to trace for collision by trace channel, object type, or both.
- Added versions that take input and output struct parameters.
- Output now includes location, velocity, and time for each point on the path.
Change 3134757 on 2016/09/21 by Guillaume.Abadie
Removes all resolve operations from distortion pass and support MSAA for the forward shader.
#review-3134758 @daniel.wright
Change 3134635 on 2016/09/21 by Jeff.Farris
Merged from Dev-Physics-Upgrade to Odin. This is the upgrade to PhysX 3.4.
Change 3134101 on 2016/09/21 by David.Hill
Post process CombineLUT shouldn't be per eye.
Also disable weighted-average post process passes for bloom when filter size is set to zero.
#review-3134102 @chris.bunner
Change 3133191 on 2016/09/20 by Guillaume.Abadie
Normalizes material's Opacity Mask according to Opacity Mask Clip Value.
Change 3133082 on 2016/09/20 by Brian.Karis
Static light source shapes in reflection captures will fade out when outside influence instead of going black.
Change 3132936 on 2016/09/20 by Jeff.Farris
Fixed some engine issues with setting mass overrides.
Change 3132821 on 2016/09/20 by Guillaume.Abadie
Adds support for MSAA on masked material using shader implemented alpha to coverage.
#review-3130154 @daniel.wright
Change 3132522 on 2016/09/20 by Zak.Middleton
#ue4 - Cache conversion of WalkableSlopeAngle to the cosine value in FWalkableSlopeOverride struct, when used in the override modes. Avoids computing this conversion (potentially multiple times per frame) for every character movement move and floor test.
Change 3130457 on 2016/09/19 by Daniel.Wright
Reuse ESceneColorFormatType::HighEndWithAlpha if the format allows it - prevents two scene color textures being allocated with planar reflections with r.SceneColorFormat=4
Change 3129467 on 2016/09/16 by Zak.Middleton
#ue4 - Improve Accuracy of final point in UGameplayStatics::PredictProjectilePath() to respect MaxSimTime. Previously the sim could have exceeded the max time if (MaxSimTime / SimFrequency) had a fractional part.
Change 3129327 on 2016/09/16 by Daniel.Wright
Added r.NormalCurvatureToRoughnessExponent for tweaking
NormalCurvatureToRoughness is now applied to clearcoat roughness
Change 3129324 on 2016/09/16 by Daniel.Wright
Added r.TemporalAACurrentFrameWeight for debugging
Change 3128812 on 2016/09/16 by Daniel.Wright
Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3.
Change 3128811 on 2016/09/16 by Daniel.Wright
Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path.
Change 3126195 on 2016/09/15 by Maciej.Mroz
#jira UE-35262 Incompatible pins give generate warning, when error is necessary.
Fixed incompatible pins validation.
Manually merged cl#3124667 from Dev-Blueprints
Change 3126108 on 2016/09/14 by Nick.Whiting
Added GetLaunchOption blueprint node to check if command line arguments are set
Added -demo path for Odin, which disables pause, and changes opening flow
Change 3125819 on 2016/09/14 by Zak.Middleton
#ue4 - Add option for accurate bounds for LineBatchComponent, on by default. Corrects attempts to focus on actors using them causing the view to zoom out to HALF_WORLD_MAX.
Turned this off for world debug line visualizers, to avoid affecting perf for those (and they often have lines/points all over anyway).
Change 3125686 on 2016/09/14 by Zabir.Hoque
Slimed down when and where we resolve RT particularly for forward rendering.
Change 3124174 on 2016/09/13 by Zak.Middleton
#ue4 - Improved accuracy and performance of PredictProjectilePath(). Switched to semi-implicit Euler integration. Fixed not being able to pass in const WorldContextObjects (only an issue when used from code, BP didn't care).
Change 3124121 on 2016/09/13 by Zak.Middleton
#odin - Integrate CL 3122728 from Dev-Editor:
UMG - Exposing a trace channel for the WIC, defaults to Visibility. Improving how the WIC handles the cursor moving off the widget, it now maintains the last hit location rather than 0,0 which would cause things like dragged Sliders to reset to the left. Ideally - the WIC would know the underlying widget has capture and continue to fake collision against an imaginary plane to simulate a continuous surface.
Change 3124116 on 2016/09/13 by Zak.Middleton
#odin - Back out revision 3 from //Odin/Main/Engine/Source/Runtime/UMG/Private/Components/WidgetInteractionComponent.cpp
Change 3123485 on 2016/09/13 by Stanley.Hayes
Added optional trace channels to WidgetInterationComponent
Change 3123301 on 2016/09/13 by Zak.Middleton
#ue4 - Added ENGINE_API to some functions in ULineBatchComponent that were not exported: DrawLines, DrawLine, DrawPoint, DrawSolidBox, DrawMesh.
Change 3122632 on 2016/09/13 by Maciej.Mroz
Improved ReverseForEachLoop macro in StandardMacros
Change 3122351 on 2016/09/12 by Nick.Whiting
Adding 90fps tracking to the FPS summary chart creation
Change 3122325 on 2016/09/12 by Wyeth.Johnson
Needed a 5 minute breather. Updated Editor splash screen because reasons
Change 3121869 on 2016/09/12 by Zak.Middleton
#ue4 - (Merge to Odin) Fix UGameplayStatics::SpawnEmitterAttached() using wrong scale when SnapToTarget (Keep World Scale) option is used. Improve comments for SpawnEmitterAttached().
#jira UE-34482
(Integrate Framework->Odin)
Change 3121407 on 2016/09/12 by Wyeth.Johnson
Fixed shopfront for Oz, big bot WIP
Change 3121253 on 2016/09/12 by Zak.Middleton
#ue4 - Fix CharacterMovement braking when using acceleration for paths.
- Fixed pathfinding using friction in GetPathFollowingBrakingDistance() and using wrong formula for stopping distance. Pathfinding adjusts analog input to achieve this deceleration, so friction is never applied and should not be included here.
- Added virtual "GetMaxBrakingDeceleration()" function to CharacterMovementComponent. Returns deceleration value set for current movement mode (ie BrakingDecelerationWalking, BrakingDecelerationFlying, etc).
Change 3121231 on 2016/09/12 by Wyeth.Johnson
Fixed procedural Stuff, now to fix aliasing :)
[CL 3226598 by Nick Whiting in Main branch]
2016-12-08 03:26:33 -05:00
{
2020-03-20 13:59:19 -04:00
MotionBlur ,
2019-10-01 13:03:04 -04:00
Tonemap ,
FXAA ,
PostProcessMaterialAfterTonemapping ,
2022-02-03 16:07:50 -05:00
VisualizeLumenScene ,
2019-10-01 13:03:04 -04:00
VisualizeDepthOfField ,
VisualizeStationaryLightOverlap ,
VisualizeLightCulling ,
2021-10-12 21:21:22 -04:00
VisualizePostProcessStack ,
2021-10-25 20:05:28 -04:00
VisualizeStrata ,
2022-05-24 04:33:36 -04:00
VisualizeLightGrid ,
2021-10-25 20:05:28 -04:00
VisualizeSkyAtmosphere ,
2020-09-15 17:20:22 -04:00
VisualizeLevelInstance ,
2019-10-01 13:03:04 -04:00
SelectionOutline ,
EditorPrimitive ,
VisualizeShadingModels ,
VisualizeGBufferHints ,
VisualizeSubsurface ,
VisualizeGBufferOverview ,
2022-02-02 05:55:10 -05:00
VisualizeLumenSceneOverview ,
2019-10-01 13:03:04 -04:00
VisualizeHDR ,
2021-09-01 11:22:04 -04:00
VisualizeLocalExposure ,
2022-02-24 19:43:15 -05:00
VisualizeMotionVectors ,
2019-10-01 13:03:04 -04:00
PixelInspector ,
HMDDistortion ,
HighResolutionScreenshotMask ,
PrimaryUpscale ,
SecondaryUpscale ,
MAX
} ;
2020-09-24 00:43:27 -04:00
const auto TranslatePass = [ ] ( ISceneViewExtension : : EPostProcessingPass Pass ) - > EPass
{
switch ( Pass )
{
case ISceneViewExtension : : EPostProcessingPass : : MotionBlur : return EPass : : MotionBlur ;
case ISceneViewExtension : : EPostProcessingPass : : Tonemap : return EPass : : Tonemap ;
case ISceneViewExtension : : EPostProcessingPass : : FXAA : return EPass : : FXAA ;
case ISceneViewExtension : : EPostProcessingPass : : VisualizeDepthOfField : return EPass : : VisualizeDepthOfField ;
default :
check ( false ) ;
return EPass : : MAX ;
} ;
} ;
2019-10-01 13:03:04 -04:00
const TCHAR * PassNames [ ] =
{
2020-03-20 13:59:19 -04:00
TEXT ( " MotionBlur " ) ,
2019-10-01 13:03:04 -04:00
TEXT ( " Tonemap " ) ,
TEXT ( " FXAA " ) ,
TEXT ( " PostProcessMaterial (AfterTonemapping) " ) ,
2022-02-03 16:07:50 -05:00
TEXT ( " VisualizeLumenScene " ) ,
2019-10-01 13:03:04 -04:00
TEXT ( " VisualizeDepthOfField " ) ,
TEXT ( " VisualizeStationaryLightOverlap " ) ,
TEXT ( " VisualizeLightCulling " ) ,
2021-10-12 21:21:22 -04:00
TEXT ( " VisualizePostProcessStack " ) ,
2021-10-25 20:05:28 -04:00
TEXT ( " VisualizeStrata " ) ,
2022-05-24 04:33:36 -04:00
TEXT ( " VisualizeLightGrid " ) ,
2021-10-25 20:05:28 -04:00
TEXT ( " VisualizeSkyAtmosphere " ) ,
2020-09-15 17:20:22 -04:00
TEXT ( " VisualizeLevelInstance " ) ,
2019-10-01 13:03:04 -04:00
TEXT ( " SelectionOutline " ) ,
TEXT ( " EditorPrimitive " ) ,
TEXT ( " VisualizeShadingModels " ) ,
TEXT ( " VisualizeGBufferHints " ) ,
TEXT ( " VisualizeSubsurface " ) ,
TEXT ( " VisualizeGBufferOverview " ) ,
2022-02-02 05:55:10 -05:00
TEXT ( " VisualizeLumenSceneOverview " ) ,
2019-10-01 13:03:04 -04:00
TEXT ( " VisualizeHDR " ) ,
2021-09-01 11:22:04 -04:00
TEXT ( " VisualizeLocalExposure " ) ,
2022-02-24 19:43:15 -05:00
TEXT ( " VisualizeMotionVectors " ) ,
2019-10-01 13:03:04 -04:00
TEXT ( " PixelInspector " ) ,
TEXT ( " HMDDistortion " ) ,
TEXT ( " HighResolutionScreenshotMask " ) ,
TEXT ( " PrimaryUpscale " ) ,
TEXT ( " SecondaryUpscale " )
} ;
2022-02-02 05:55:10 -05:00
static_assert ( static_cast < uint32 > ( EPass : : MAX ) = = UE_ARRAY_COUNT ( PassNames ) , " EPass does not match PassNames. " ) ;
2019-10-01 13:03:04 -04:00
TOverridePassSequence < EPass > PassSequence ( ViewFamilyOutput ) ;
2019-10-01 13:43:14 -04:00
PassSequence . SetNames ( PassNames , UE_ARRAY_COUNT ( PassNames ) ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeStationaryLightOverlap , EngineShowFlags . StationaryLightOverlap ) ;
PassSequence . SetEnabled ( EPass : : VisualizeLightCulling , EngineShowFlags . VisualizeLightCulling ) ;
2021-10-12 21:21:22 -04:00
# if DEBUG_POST_PROCESS_VOLUME_ENABLE
PassSequence . SetEnabled ( EPass : : VisualizePostProcessStack , EngineShowFlags . VisualizePostProcessStack ) ;
2021-10-25 20:05:28 -04:00
# else
PassSequence . SetEnabled ( EPass : : VisualizePostProcessStack , false ) ;
2021-10-12 21:21:22 -04:00
# endif
2021-10-25 20:05:28 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeStrata , Strata : : ShouldRenderStrataDebugPasses ( View ) ) ;
2022-05-13 07:23:11 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLumenScene , LumenVisualizeMode > = 0 & & LumenVisualizeMode ! = VISUALIZE_MODE_OVERVIEW & & bPostProcessingEnabled ) ;
2022-05-24 04:33:36 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLightGrid , ShouldVisualizeLightGrid ( ) ) ;
2019-10-01 13:03:04 -04:00
# if WITH_EDITOR
2021-10-25 20:05:28 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeSkyAtmosphere , Scene & & View . Family & & View . Family - > EngineShowFlags . VisualizeSkyAtmosphere & & ShouldRenderSkyAtmosphereDebugPasses ( Scene , View . Family - > EngineShowFlags ) ) ;
2020-09-15 17:20:22 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLevelInstance , GIsEditor & & EngineShowFlags . EditingLevelInstance & & EngineShowFlags . VisualizeLevelInstanceEditing & & ! bVisualizeHDR ) ;
2020-06-23 18:40:00 -04:00
PassSequence . SetEnabled ( EPass : : SelectionOutline , GIsEditor & & EngineShowFlags . Selection & & EngineShowFlags . SelectionOutline & & ! EngineShowFlags . Wireframe & & ! bVisualizeHDR & & ! IStereoRendering : : IsStereoEyeView ( View ) ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : EditorPrimitive , FSceneRenderer : : ShouldCompositeEditorPrimitives ( View ) ) ;
# else
2021-10-25 20:05:28 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeSkyAtmosphere , false ) ;
2020-09-15 17:20:22 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLevelInstance , false ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : SelectionOutline , false ) ;
PassSequence . SetEnabled ( EPass : : EditorPrimitive , false ) ;
# endif
PassSequence . SetEnabled ( EPass : : VisualizeShadingModels , EngineShowFlags . VisualizeShadingModels ) ;
PassSequence . SetEnabled ( EPass : : VisualizeGBufferHints , EngineShowFlags . GBufferHints ) ;
PassSequence . SetEnabled ( EPass : : VisualizeSubsurface , EngineShowFlags . VisualizeSSS ) ;
PassSequence . SetEnabled ( EPass : : VisualizeGBufferOverview , bVisualizeGBufferOverview | | bVisualizeGBufferDumpToFile | | bVisualizeGBufferDumpToPIpe ) ;
2022-05-13 07:23:11 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLumenSceneOverview , LumenVisualizeMode = = VISUALIZE_MODE_OVERVIEW & & bPostProcessingEnabled ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeHDR , EngineShowFlags . VisualizeHDR ) ;
2022-02-24 19:43:15 -05:00
PassSequence . SetEnabled ( EPass : : VisualizeMotionVectors , EngineShowFlags . VisualizeMotionVectors ) ;
2019-10-01 13:03:04 -04:00
# if WITH_EDITOR
PassSequence . SetEnabled ( EPass : : PixelInspector , View . bUsePixelInspector ) ;
# else
PassSequence . SetEnabled ( EPass : : PixelInspector , false ) ;
# endif
PassSequence . SetEnabled ( EPass : : HMDDistortion , EngineShowFlags . StereoRendering & & EngineShowFlags . HMDDistortion ) ;
PassSequence . SetEnabled ( EPass : : HighResolutionScreenshotMask , IsHighResolutionScreenshotMaskEnabled ( View ) ) ;
PassSequence . SetEnabled ( EPass : : PrimaryUpscale , PaniniConfig . IsEnabled ( ) | | ( View . PrimaryScreenPercentageMethod = = EPrimaryScreenPercentageMethod : : SpatialUpscale & & PrimaryViewRect . Size ( ) ! = View . GetSecondaryViewRectSize ( ) ) ) ;
2021-07-22 17:20:27 -04:00
PassSequence . SetEnabled ( EPass : : SecondaryUpscale , View . RequiresSecondaryUpscale ( ) | | View . Family - > GetSecondarySpatialUpscalerInterface ( ) ! = nullptr ) ;
2019-10-01 13:03:04 -04:00
2020-09-24 00:43:27 -04:00
const auto GetPostProcessMaterialInputs = [ & ] ( FScreenPassTexture InSceneColor )
{
FPostProcessMaterialInputs PostProcessMaterialInputs ;
PostProcessMaterialInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , InSceneColor ) ;
2022-05-30 05:19:22 -04:00
FIntRect ViewRect { 0 , 0 , 1 , 1 } ;
if ( PostDOFTranslucencyResources . IsValid ( ) )
{
ViewRect = PostDOFTranslucencyResources . ViewRect ;
}
PostProcessMaterialInputs . SetInput ( EPostProcessMaterialInput : : SeparateTranslucency , FScreenPassTexture ( PostDOFTranslucencyResources . GetColorForRead ( GraphBuilder ) , ViewRect ) ) ;
2020-09-24 00:43:27 -04:00
PostProcessMaterialInputs . SetInput ( EPostProcessMaterialInput : : Velocity , Velocity ) ;
PostProcessMaterialInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
PostProcessMaterialInputs . CustomDepthTexture = CustomDepth . Texture ;
return PostProcessMaterialInputs ;
} ;
const auto AddAfterPass = [ & ] ( EPass InPass , FScreenPassTexture InSceneColor ) - > FScreenPassTexture
{
// In some cases (e.g. OCIO color conversion) we want View Extensions to be able to add extra custom post processing after the pass.
FAfterPassCallbackDelegateArray & PassCallbacks = PassSequence . GetAfterPassCallbacks ( InPass ) ;
if ( PassCallbacks . Num ( ) )
{
FPostProcessMaterialInputs InOutPostProcessAfterPassInputs = GetPostProcessMaterialInputs ( InSceneColor ) ;
for ( int32 AfterPassCallbackIndex = 0 ; AfterPassCallbackIndex < PassCallbacks . Num ( ) ; AfterPassCallbackIndex + + )
{
2022-02-02 05:30:45 -05:00
InOutPostProcessAfterPassInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , InSceneColor ) ;
2020-09-24 00:43:27 -04:00
FAfterPassCallbackDelegate & AfterPassCallback = PassCallbacks [ AfterPassCallbackIndex ] ;
PassSequence . AcceptOverrideIfLastPass ( InPass , InOutPostProcessAfterPassInputs . OverrideOutput , AfterPassCallbackIndex ) ;
InSceneColor = AfterPassCallback . Execute ( GraphBuilder , View , InOutPostProcessAfterPassInputs ) ;
}
}
return MoveTemp ( InSceneColor ) ;
} ;
2022-02-02 05:55:10 -05:00
if ( bPostProcessingEnabled )
2019-10-01 13:03:04 -04:00
{
2019-11-04 11:21:01 -05:00
const bool bPrimaryView = IStereoRendering : : IsAPrimaryView ( View ) ;
2019-10-01 13:03:04 -04:00
const bool bHasViewState = View . ViewState ! = nullptr ;
const bool bDepthOfFieldEnabled = DiaphragmDOF : : IsEnabled ( View ) ;
const bool bVisualizeDepthOfField = bDepthOfFieldEnabled & & EngineShowFlags . VisualizeDOF ;
const bool bVisualizeMotionBlur = IsVisualizeMotionBlurEnabled ( View ) ;
const EAutoExposureMethod AutoExposureMethod = GetAutoExposureMethod ( View ) ;
const EAntiAliasingMethod AntiAliasingMethod = ! bVisualizeDepthOfField ? View . AntiAliasingMethod : AAM_None ;
2021-12-06 13:45:02 -05:00
const EDownsampleQuality DownsampleQuality = GetDownsampleQuality ( CVarDownsampleQuality ) ;
const EDownsampleQuality DownsampleChainQuality = GetDownsampleQuality ( CVarDownsampleChainQuality ) ;
2019-10-01 13:03:04 -04:00
const EPixelFormat DownsampleOverrideFormat = PF_FloatRGB ;
2021-12-03 13:48:12 -05:00
// Previous transforms are nonsensical on camera cuts, unless motion vector simulation is enabled (providing FrameN+1 transforms to FrameN+0)
const bool bMotionBlurValid = FMotionVectorSimulation : : IsEnabled ( ) | | ( ! View . bCameraCut & & ! View . bPrevTransformsReset ) ;
2019-10-01 13:03:04 -04:00
// Motion blur gets replaced by the visualization pass.
2021-12-03 13:48:12 -05:00
const bool bMotionBlurEnabled = ! bVisualizeMotionBlur & & IsMotionBlurEnabled ( View ) & & bMotionBlurValid ;
2019-10-01 13:03:04 -04:00
// Skip tonemapping for visualizers which overwrite the HDR scene color.
const bool bTonemapEnabled = ! bVisualizeMotionBlur ;
2020-01-27 20:11:15 -05:00
const bool bTonemapOutputInHDR = View . Family - > SceneCaptureSource = = SCS_FinalColorHDR | | View . Family - > SceneCaptureSource = = SCS_FinalToneCurveHDR | | bOutputInHDR | | bViewFamilyOutputInHDR ;
2019-10-01 13:03:04 -04:00
// We don't test for the EyeAdaptation engine show flag here. If disabled, the auto exposure pass is still executes but performs a clamp.
const bool bEyeAdaptationEnabled =
// Skip for transient views.
bHasViewState & &
// Skip for secondary views in a stereo setup.
bPrimaryView ;
const bool bHistogramEnabled =
// Force the histogram on when we are visualizing HDR.
bVisualizeHDR | |
// Skip if not using histogram eye adaptation.
( bEyeAdaptationEnabled & & AutoExposureMethod = = EAutoExposureMethod : : AEM_Histogram & &
// Skip if we don't have any exposure range to generate (eye adaptation will clamp).
View . FinalPostProcessSettings . AutoExposureMinBrightness < View . FinalPostProcessSettings . AutoExposureMaxBrightness ) ;
2021-09-01 11:22:04 -04:00
const bool bLocalExposureEnabled =
EngineShowFlags . VisualizeLocalExposure | |
2022-02-24 20:07:17 -05:00
! FMath : : IsNearlyEqual ( View . FinalPostProcessSettings . LocalExposureContrastScale , 1.0f ) | |
2021-09-01 11:22:04 -04:00
! FMath : : IsNearlyEqual ( View . FinalPostProcessSettings . LocalExposureDetailStrength , 1.0f ) ;
2019-10-01 13:03:04 -04:00
const bool bBloomEnabled = View . FinalPostProcessSettings . BloomIntensity > 0.0f ;
2021-07-12 14:15:42 -04:00
// Temporal Anti-aliasing. Also may perform a temporal upsample from primary to secondary view rect.
EMainTAAPassConfig TAAConfig = ITemporalUpscaler : : GetMainTAAPassConfig ( View ) ;
// Whether separate translucency is composed in TSR.
bool bComposeSeparateTranslucencyInTSR = TAAConfig = = EMainTAAPassConfig : : TSR & & ComposeSeparateTranslucencyInTSR ( View ) ;
2022-01-04 06:33:12 -05:00
const FIntPoint PostTAAViewSize = ( View . PrimaryScreenPercentageMethod = = EPrimaryScreenPercentageMethod : : TemporalUpscale & & TAAConfig ! = EMainTAAPassConfig : : Disabled ) ? View . GetSecondaryViewRectSize ( ) : View . ViewRect . Size ( ) ;
2022-01-03 10:44:47 -05:00
2019-10-01 13:03:04 -04:00
const FPostProcessMaterialChain PostProcessMaterialAfterTonemappingChain = GetPostProcessMaterialChain ( View , BL_AfterTonemapping ) ;
2020-03-20 13:59:19 -04:00
PassSequence . SetEnabled ( EPass : : MotionBlur , bVisualizeMotionBlur | | bMotionBlurEnabled ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : Tonemap , bTonemapEnabled ) ;
PassSequence . SetEnabled ( EPass : : FXAA , AntiAliasingMethod = = AAM_FXAA ) ;
PassSequence . SetEnabled ( EPass : : PostProcessMaterialAfterTonemapping , PostProcessMaterialAfterTonemappingChain . Num ( ) ! = 0 ) ;
PassSequence . SetEnabled ( EPass : : VisualizeDepthOfField , bVisualizeDepthOfField ) ;
2021-09-01 11:22:04 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLocalExposure , EngineShowFlags . VisualizeLocalExposure ) ;
2020-09-24 00:43:27 -04:00
for ( int32 ViewExt = 0 ; ViewExt < View . Family - > ViewExtensions . Num ( ) ; + + ViewExt )
{
for ( int32 SceneViewPassId = 0 ; SceneViewPassId ! = static_cast < int > ( ISceneViewExtension : : EPostProcessingPass : : MAX ) ; SceneViewPassId + + )
{
ISceneViewExtension : : EPostProcessingPass SceneViewPass = static_cast < ISceneViewExtension : : EPostProcessingPass > ( SceneViewPassId ) ;
EPass PostProcessingPass = TranslatePass ( SceneViewPass ) ;
View . Family - > ViewExtensions [ ViewExt ] - > SubscribeToPostProcessingPass (
SceneViewPass ,
PassSequence . GetAfterPassCallbacks ( PostProcessingPass ) ,
PassSequence . IsEnabled ( PostProcessingPass ) ) ;
}
}
2019-10-01 13:03:04 -04:00
PassSequence . Finalize ( ) ;
2021-12-03 12:54:09 -05:00
const bool bLensFlareEnabled = bBloomEnabled & & IsLensFlaresEnabled ( View ) ;
const bool bFFTBloomEnabled = bBloomEnabled & & IsFFTBloomEnabled ( View ) ;
const bool bBasicEyeAdaptationEnabled = bEyeAdaptationEnabled & & ( AutoExposureMethod = = EAutoExposureMethod : : AEM_Basic ) ;
const bool bLocalExposureBlurredLum = bLocalExposureEnabled & & View . FinalPostProcessSettings . LocalExposureBlurredLuminanceBlend > 0.0f ;
const bool bProcessQuarterResolution = IsPostProcessingQuarterResolutionDownsampleEnabled ( ) ;
2021-12-03 13:05:09 -05:00
const bool bMotionBlurNeedsHalfResInput = PassSequence . IsEnabled ( EPass : : MotionBlur ) & & DoesMotionBlurNeedsHalfResInput ( ) & & ! bVisualizeMotionBlur ;
2021-12-03 12:54:09 -05:00
2022-01-03 10:44:47 -05:00
const float FFTBloomResolutionFraction = GetFFTBloomResolutionFraction ( PostTAAViewSize ) ;
2021-12-03 12:54:09 -05:00
const bool bProduceSceneColorChain = (
bBasicEyeAdaptationEnabled | |
( bBloomEnabled & & ! bFFTBloomEnabled ) | |
( bLensFlareEnabled & & bFFTBloomEnabled ) | |
bLocalExposureBlurredLum ) ;
2021-12-06 13:45:02 -05:00
const bool bNeedPostMotionBlurHalfRes = ! bProcessQuarterResolution | | ( bFFTBloomEnabled & & FFTBloomResolutionFraction > 0.25f & & FFTBloomResolutionFraction < = 0.5f ) ;
const bool bNeedPostMotionBlurQuarterRes = bProcessQuarterResolution | | ( bFFTBloomEnabled & & FFTBloomResolutionFraction < = 0.25f ) ;
2021-12-03 12:40:10 -05:00
2019-10-01 13:03:04 -04:00
// Post Process Material Chain - Before Translucency
{
const FPostProcessMaterialChain MaterialChain = GetPostProcessMaterialChain ( View , BL_BeforeTranslucency ) ;
if ( MaterialChain . Num ( ) )
{
SceneColor = AddPostProcessMaterialChain ( GraphBuilder , View , GetPostProcessMaterialInputs ( SceneColor ) , MaterialChain ) ;
}
}
// Diaphragm Depth of Field
{
2021-07-27 15:36:37 -04:00
FRDGTextureRef InputSceneColorTexture = SceneColor . Texture ;
2019-10-01 13:03:04 -04:00
if ( bDepthOfFieldEnabled )
{
2022-01-28 08:13:09 -05:00
FTranslucencyPassResources DummyTranslucency ;
2021-07-12 14:15:42 -04:00
2021-07-27 15:36:37 -04:00
SceneColor . Texture = DiaphragmDOF : : AddPasses (
2021-07-12 14:15:42 -04:00
GraphBuilder ,
SceneTextureParameters ,
View ,
SceneColor . Texture ,
2022-01-28 08:13:09 -05:00
bComposeSeparateTranslucencyInTSR ? DummyTranslucency : PostDOFTranslucencyResources ) ;
2019-10-01 13:03:04 -04:00
}
// DOF passes were not added, therefore need to compose Separate translucency manually.
2022-01-28 08:13:09 -05:00
if ( ( SceneColor . Texture = = InputSceneColorTexture | | bComposeSeparateTranslucencyInTSR ) & & PostDOFTranslucencyResources . IsValid ( ) )
2019-10-01 13:03:04 -04:00
{
2022-01-28 08:13:09 -05:00
FTranslucencyComposition TranslucencyComposition ;
TranslucencyComposition . Operation = FTranslucencyComposition : : EOperation : : ComposeToNewSceneColor ;
TranslucencyComposition . bApplyModulateOnly = bComposeSeparateTranslucencyInTSR ;
TranslucencyComposition . SceneColor = SceneColor ;
TranslucencyComposition . SceneDepth = SceneDepth ;
TranslucencyComposition . OutputViewport = FScreenPassTextureViewport ( SceneColor ) ;
2022-02-14 07:30:53 -05:00
TranslucencyComposition . OutputPixelFormat = SceneColorFormat ;
2022-01-28 08:13:09 -05:00
SceneColor = TranslucencyComposition . AddPass (
GraphBuilder , View , PostDOFTranslucencyResources ) ;
2019-10-01 13:03:04 -04:00
}
2021-04-14 16:04:46 -04:00
if ( GetHairStrandsComposition ( ) = = EHairStrandsCompositionType : : AfterSeparateTranslucent )
{
RenderHairComposition ( GraphBuilder , View , SceneColor . Texture , SceneDepth . Texture ) ;
}
2019-10-01 13:03:04 -04:00
}
// Post Process Material Chain - Before Tonemapping
{
const FPostProcessMaterialChain MaterialChain = GetPostProcessMaterialChain ( View , BL_BeforeTonemapping ) ;
if ( MaterialChain . Num ( ) )
{
SceneColor = AddPostProcessMaterialChain ( GraphBuilder , View , GetPostProcessMaterialInputs ( SceneColor ) , MaterialChain ) ;
}
}
2021-12-03 12:54:09 -05:00
FScreenPassTexture HalfResSceneColor ;
FScreenPassTexture QuarterResSceneColor ;
2021-12-03 13:05:09 -05:00
FVelocityFlattenTextures VelocityFlattenTextures ;
2021-02-09 06:30:16 -04:00
if ( TAAConfig ! = EMainTAAPassConfig : : Disabled )
2019-10-01 13:03:04 -04:00
{
2021-02-09 06:30:16 -04:00
const ITemporalUpscaler * UpscalerToUse = ( TAAConfig = = EMainTAAPassConfig : : ThirdParty ) ? View . Family - > GetTemporalUpscalerInterface ( ) : ITemporalUpscaler : : GetDefaultTemporalUpscaler ( ) ;
check ( UpscalerToUse ) ;
2020-08-23 00:00:09 -04:00
const TCHAR * UpscalerName = UpscalerToUse - > GetDebugName ( ) ;
2021-02-09 06:30:16 -04:00
// Standard event scope for temporal upscaler to have all profiling information not matter what,
// and with explicit detection of third party.
2020-08-23 00:00:09 -04:00
RDG_EVENT_SCOPE_CONDITIONAL (
GraphBuilder ,
2021-02-09 06:30:16 -04:00
TAAConfig = = EMainTAAPassConfig : : ThirdParty ,
2021-04-26 14:05:52 -04:00
" ThirdParty %s %dx%d -> %dx%d " ,
2020-08-23 00:00:09 -04:00
UpscalerToUse - > GetDebugName ( ) ,
View . ViewRect . Width ( ) , View . ViewRect . Height ( ) ,
View . GetSecondaryViewRectSize ( ) . X , View . GetSecondaryViewRectSize ( ) . Y ) ;
ITemporalUpscaler : : FPassInputs UpscalerPassInputs ;
2022-05-13 07:23:22 -04:00
if ( PassSequence . IsEnabled ( EPass : : MotionBlur ) )
{
if ( bVisualizeMotionBlur )
{
// NOP
}
else
{
UpscalerPassInputs . bGenerateOutputMip1 = bMotionBlurNeedsHalfResInput ;
UpscalerPassInputs . bGenerateVelocityFlattenTextures = FVelocityFlattenTextures : : AllowExternal ( View ) & & ! bVisualizeMotionBlur ;
}
}
else
{
UpscalerPassInputs . bAllowDownsampleSceneColor =
( bNeedPostMotionBlurHalfRes | | bNeedPostMotionBlurQuarterRes ) & &
DownsampleQuality = = EDownsampleQuality : : Low ; ;
}
2020-08-23 00:00:09 -04:00
UpscalerPassInputs . DownsampleOverrideFormat = DownsampleOverrideFormat ;
UpscalerPassInputs . SceneColorTexture = SceneColor . Texture ;
UpscalerPassInputs . SceneDepthTexture = SceneDepth . Texture ;
UpscalerPassInputs . SceneVelocityTexture = Velocity . Texture ;
2022-01-28 08:13:09 -05:00
UpscalerPassInputs . PostDOFTranslucencyResources = PostDOFTranslucencyResources ;
2020-08-23 00:00:09 -04:00
2021-12-03 13:05:09 -05:00
ITemporalUpscaler : : FOutputs Outputs = UpscalerToUse - > AddPasses (
2020-08-23 00:00:09 -04:00
GraphBuilder ,
View ,
2021-12-03 13:05:09 -05:00
UpscalerPassInputs ) ;
SceneColor = Outputs . FullRes ;
HalfResSceneColor = Outputs . HalfRes ;
VelocityFlattenTextures = Outputs . VelocityFlattenTextures ;
2019-10-01 13:03:04 -04:00
}
2020-07-06 18:58:26 -04:00
else if ( ScreenSpaceRayTracing : : ShouldRenderScreenSpaceReflections ( View ) )
2020-01-24 18:07:01 -05:00
{
// If we need SSR, and TAA is enabled, then AddTemporalAAPass() has already handled the scene history.
// If we need SSR, and TAA is not enable, then we just need to extract the history.
if ( ! View . bStatePrevViewInfoIsReadOnly )
{
check ( View . ViewState ) ;
FTemporalAAHistory & OutputHistory = View . ViewState - > PrevFrameViewInfo . TemporalAAHistory ;
GraphBuilder . QueueTextureExtraction ( SceneColor . Texture , & OutputHistory . RT [ 0 ] ) ;
2020-06-23 18:40:00 -04:00
// For SSR, we still fill up the rest of the OutputHistory data using shared math from FTAAPassParameters.
FTAAPassParameters TAAInputs ( View ) ;
TAAInputs . SceneColorInput = SceneColor . Texture ;
TAAInputs . SetupViewRect ( View ) ;
OutputHistory . ViewportRect = TAAInputs . OutputViewRect ;
OutputHistory . ReferenceBufferSize = TAAInputs . GetOutputExtent ( ) * TAAInputs . ResolutionDivisor ;
2020-01-24 18:07:01 -05:00
}
}
2019-10-01 13:03:04 -04:00
2022-01-03 10:44:47 -05:00
ensure ( SceneColor . ViewRect . Size ( ) = = PostTAAViewSize ) ;
2019-10-01 13:03:04 -04:00
// Post Process Material Chain - SSR Input
if ( View . ViewState & & ! View . bStatePrevViewInfoIsReadOnly )
{
const FPostProcessMaterialChain MaterialChain = GetPostProcessMaterialChain ( View , BL_SSRInput ) ;
if ( MaterialChain . Num ( ) )
{
// Save off SSR post process output for the next frame.
FScreenPassTexture PassOutput = AddPostProcessMaterialChain ( GraphBuilder , View , GetPostProcessMaterialInputs ( SceneColor ) , MaterialChain ) ;
2021-07-29 13:49:02 -04:00
GraphBuilder . QueueTextureExtraction ( PassOutput . Texture , & View . ViewState - > PrevFrameViewInfo . CustomSSRInput . RT [ 0 ] ) ;
View . ViewState - > PrevFrameViewInfo . CustomSSRInput . ViewportRect = PassOutput . ViewRect ;
View . ViewState - > PrevFrameViewInfo . CustomSSRInput . ReferenceBufferSize = PassOutput . Texture - > Desc . Extent ;
2019-10-01 13:03:04 -04:00
}
}
2020-03-20 13:59:19 -04:00
if ( PassSequence . IsEnabled ( EPass : : MotionBlur ) )
2019-10-01 13:03:04 -04:00
{
2020-03-20 13:59:19 -04:00
FMotionBlurInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : MotionBlur , PassInputs . OverrideOutput ) ;
2021-12-03 12:54:09 -05:00
PassInputs . bOutputHalfRes = bNeedPostMotionBlurHalfRes & & DownsampleQuality = = EDownsampleQuality : : Low ;
PassInputs . bOutputQuarterRes = bNeedPostMotionBlurQuarterRes & & DownsampleQuality = = EDownsampleQuality : : Low ;
2020-03-20 13:59:19 -04:00
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . SceneVelocity = Velocity ;
2022-01-28 08:13:09 -05:00
PassInputs . PostMotionBlurTranslucency = PostMotionBlurTranslucencyResources ;
2020-03-20 13:59:19 -04:00
PassInputs . Quality = GetMotionBlurQuality ( ) ;
PassInputs . Filter = GetMotionBlurFilter ( ) ;
2021-12-03 13:05:09 -05:00
PassInputs . VelocityFlattenTextures = VelocityFlattenTextures ;
2020-03-20 13:59:19 -04:00
// Motion blur visualization replaces motion blur when enabled.
if ( bVisualizeMotionBlur )
{
SceneColor = AddVisualizeMotionBlurPass ( GraphBuilder , View , PassInputs ) ;
}
else
{
2021-12-03 12:54:09 -05:00
FMotionBlurOutputs PassOutputs = AddMotionBlurPass ( GraphBuilder , View , PassInputs ) ;
SceneColor = PassOutputs . FullRes ;
HalfResSceneColor = PassOutputs . HalfRes ;
QuarterResSceneColor = PassOutputs . QuarterRes ;
2020-03-20 13:59:19 -04:00
}
2019-10-01 13:03:04 -04:00
}
2022-01-28 08:13:09 -05:00
else if ( PostMotionBlurTranslucencyResources . IsValid ( ) )
2021-05-19 02:09:02 -04:00
{
2022-01-28 08:13:09 -05:00
// Compose Post-MotionBlur translucency in a new scene color to ensure it's not writing out in TAA's output that is also the history.
FTranslucencyComposition TranslucencyComposition ;
TranslucencyComposition . Operation = FTranslucencyComposition : : EOperation : : ComposeToNewSceneColor ;
TranslucencyComposition . SceneColor = SceneColor ;
TranslucencyComposition . OutputViewport = FScreenPassTextureViewport ( SceneColor ) ;
2022-02-14 07:30:53 -05:00
TranslucencyComposition . OutputPixelFormat = SceneColorFormat ;
2021-07-27 15:36:37 -04:00
2022-01-28 08:13:09 -05:00
SceneColor = TranslucencyComposition . AddPass (
GraphBuilder , View , PostMotionBlurTranslucencyResources ) ;
2021-05-19 02:09:02 -04:00
}
2019-10-01 13:03:04 -04:00
{
2021-12-03 12:54:09 -05:00
FScreenPassTexture NewSceneColor = AddAfterPass ( EPass : : MotionBlur , SceneColor ) ;
2019-10-01 13:03:04 -04:00
2021-12-03 12:54:09 -05:00
// Invalidate half and quarter res.
if ( NewSceneColor ! = SceneColor )
{
HalfResSceneColor = FScreenPassTexture ( ) ;
QuarterResSceneColor = FScreenPassTexture ( ) ;
}
SceneColor = NewSceneColor ;
2020-07-06 18:58:26 -04:00
}
2021-12-03 12:54:09 -05:00
// Generate post motion blur lower res scene color if they have not been generated.
2020-07-06 18:58:26 -04:00
{
2021-12-06 13:45:02 -05:00
if ( ( bNeedPostMotionBlurHalfRes & & ! HalfResSceneColor . IsValid ( ) ) | |
( bNeedPostMotionBlurQuarterRes & & ! QuarterResSceneColor . IsValid ( ) & & ! HalfResSceneColor . IsValid ( ) ) )
2021-12-03 12:54:09 -05:00
{
FDownsamplePassInputs PassInputs ;
PassInputs . Name = TEXT ( " PostProcessing.SceneColor.HalfRes " ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Quality = DownsampleQuality ;
PassInputs . FormatOverride = DownsampleOverrideFormat ;
PassInputs . UserSuppliedOutput = View . PrevViewInfo . HalfResTemporalAAHistory ;
2020-07-06 18:58:26 -04:00
2021-12-03 12:54:09 -05:00
HalfResSceneColor = AddDownsamplePass ( GraphBuilder , View , PassInputs ) ;
}
if ( bNeedPostMotionBlurQuarterRes & & ! QuarterResSceneColor . IsValid ( ) )
{
FDownsamplePassInputs PassInputs ;
PassInputs . Name = TEXT ( " PostProcessing.SceneColor.QuarterRes " ) ;
PassInputs . SceneColor = HalfResSceneColor ;
PassInputs . Quality = DownsampleQuality ;
QuarterResSceneColor = AddDownsamplePass ( GraphBuilder , View , PassInputs ) ;
}
2019-10-01 13:03:04 -04:00
}
2021-12-03 12:54:09 -05:00
2020-06-23 18:40:00 -04:00
// Store half res scene color in the history
extern int32 GSSRHalfResSceneColor ;
2020-07-06 18:58:26 -04:00
if ( ScreenSpaceRayTracing : : ShouldRenderScreenSpaceReflections ( View ) & & ! View . bStatePrevViewInfoIsReadOnly & & GSSRHalfResSceneColor )
2020-06-23 18:40:00 -04:00
{
check ( View . ViewState ) ;
2021-12-03 12:54:09 -05:00
GraphBuilder . QueueTextureExtraction ( HalfResSceneColor . Texture , & View . ViewState - > PrevFrameViewInfo . HalfResTemporalAAHistory ) ;
2020-06-23 18:40:00 -04:00
}
2021-09-01 11:22:04 -04:00
if ( bLocalExposureEnabled )
{
2021-12-03 12:54:09 -05:00
LocalExposureTexture = AddLocalExposurePass (
GraphBuilder , View ,
EyeAdaptationParameters ,
bProcessQuarterResolution ? QuarterResSceneColor : HalfResSceneColor ) ;
2021-09-01 11:22:04 -04:00
}
2019-10-01 13:03:04 -04:00
if ( bHistogramEnabled )
{
2021-12-03 12:54:09 -05:00
HistogramTexture = AddHistogramPass (
GraphBuilder , View ,
EyeAdaptationParameters ,
bProcessQuarterResolution ? QuarterResSceneColor : HalfResSceneColor ,
LastEyeAdaptationTexture ) ;
2019-10-01 13:03:04 -04:00
}
2021-08-03 06:12:26 -04:00
FSceneDownsampleChain SceneDownsampleChain ;
2021-12-03 12:54:09 -05:00
if ( bProduceSceneColorChain )
2019-10-01 13:03:04 -04:00
{
2021-08-03 06:12:26 -04:00
const bool bLogLumaInAlpha = true ;
2021-12-03 12:54:09 -05:00
SceneDownsampleChain . Init (
GraphBuilder , View ,
EyeAdaptationParameters ,
bProcessQuarterResolution ? QuarterResSceneColor : HalfResSceneColor ,
2021-12-06 13:45:02 -05:00
DownsampleChainQuality ,
2021-12-03 12:54:09 -05:00
bLogLumaInAlpha ) ;
2019-10-01 13:03:04 -04:00
}
2021-09-01 11:22:04 -04:00
if ( bLocalExposureBlurredLum )
{
2021-12-03 12:54:09 -05:00
const uint32 BlurredLumMip = bProcessQuarterResolution ? 3 : 4 ;
LocalExposureBlurredLogLumTexture = AddLocalExposureBlurredLogLuminancePass (
GraphBuilder , View ,
EyeAdaptationParameters , SceneDownsampleChain . GetTexture ( BlurredLumMip ) ) ;
2021-09-01 11:22:04 -04:00
}
2021-08-03 06:12:26 -04:00
if ( bBasicEyeAdaptationEnabled )
{
// Use the alpha channel in the last downsample (smallest) to compute eye adaptations values.
2021-12-03 12:54:09 -05:00
EyeAdaptationTexture = AddBasicEyeAdaptationPass (
GraphBuilder , View ,
EyeAdaptationParameters ,
SceneDownsampleChain . GetLastTexture ( ) ,
LastEyeAdaptationTexture ) ;
2021-08-03 06:12:26 -04:00
}
// Add histogram eye adaptation pass even if no histogram exists to support the manual clamping mode.
else if ( bEyeAdaptationEnabled )
{
2021-12-03 12:54:09 -05:00
EyeAdaptationTexture = AddHistogramEyeAdaptationPass (
GraphBuilder , View ,
EyeAdaptationParameters ,
HistogramTexture ) ;
2021-08-03 06:12:26 -04:00
}
2021-12-03 17:20:45 -05:00
FScreenPassTexture Bloom ;
FRDGBufferRef SceneColorApplyParameters = nullptr ;
2019-10-01 13:03:04 -04:00
if ( bBloomEnabled )
{
2021-12-03 12:54:09 -05:00
const FSceneDownsampleChain * LensFlareSceneDownsampleChain ;
2019-10-01 13:03:04 -04:00
2022-03-11 14:59:16 -05:00
FSceneDownsampleChain BloomDownsampleChain ;
2021-08-03 06:12:26 -04:00
if ( bFFTBloomEnabled )
{
2021-12-03 12:54:09 -05:00
LensFlareSceneDownsampleChain = & SceneDownsampleChain ;
2021-12-06 13:45:02 -05:00
float InputResolutionFraction ;
FScreenPassTexture InputSceneColor ;
if ( FFTBloomResolutionFraction < = 0.25f )
2021-08-03 06:12:26 -04:00
{
2021-12-06 13:45:02 -05:00
InputSceneColor = QuarterResSceneColor ;
InputResolutionFraction = 0.25f ;
}
else if ( FFTBloomResolutionFraction < = 0.5f )
{
InputSceneColor = HalfResSceneColor ;
InputResolutionFraction = 0.5f ;
2021-08-03 06:12:26 -04:00
}
else
{
2021-12-06 13:45:02 -05:00
InputSceneColor = SceneColor ;
InputResolutionFraction = 1.0f ;
2021-08-03 06:12:26 -04:00
}
2019-10-01 13:03:04 -04:00
2021-12-06 13:45:02 -05:00
FFFTBloomOutput Outputs = AddFFTBloomPass ( GraphBuilder , View , InputSceneColor , InputResolutionFraction ) ;
2021-12-03 17:20:45 -05:00
Bloom = Outputs . BloomTexture ;
SceneColorApplyParameters = Outputs . SceneColorApplyParameters ;
2021-08-03 06:12:26 -04:00
}
else
{
2021-12-03 12:54:09 -05:00
const bool bBloomThresholdEnabled = View . FinalPostProcessSettings . BloomThreshold > - 1.0f ;
// Reuse the main scene downsample chain if a threshold isn't required for gaussian bloom.
if ( SceneDownsampleChain . IsInitialized ( ) & & ! bBloomThresholdEnabled )
{
LensFlareSceneDownsampleChain = & SceneDownsampleChain ;
}
else
{
FScreenPassTexture DownsampleInput = bProcessQuarterResolution ? QuarterResSceneColor : HalfResSceneColor ;
if ( bBloomThresholdEnabled )
{
const float BloomThreshold = View . FinalPostProcessSettings . BloomThreshold ;
FBloomSetupInputs SetupPassInputs ;
SetupPassInputs . SceneColor = DownsampleInput ;
SetupPassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
SetupPassInputs . Threshold = BloomThreshold ;
DownsampleInput = AddBloomSetupPass ( GraphBuilder , View , SetupPassInputs ) ;
}
const bool bLogLumaInAlpha = false ;
2021-12-06 13:45:02 -05:00
BloomDownsampleChain . Init ( GraphBuilder , View , EyeAdaptationParameters , DownsampleInput , DownsampleChainQuality , bLogLumaInAlpha ) ;
2021-12-03 12:54:09 -05:00
LensFlareSceneDownsampleChain = & BloomDownsampleChain ;
}
Bloom = AddGaussianBloomPasses ( GraphBuilder , View , LensFlareSceneDownsampleChain ) ;
2021-08-03 06:12:26 -04:00
}
2021-12-03 12:54:09 -05:00
if ( bLensFlareEnabled )
2019-10-01 13:03:04 -04:00
{
2021-12-03 17:20:45 -05:00
Bloom = AddLensFlaresPass ( GraphBuilder , View , Bloom , * LensFlareSceneDownsampleChain ) ;
2019-10-01 13:03:04 -04:00
}
}
SceneColorBeforeTonemap = SceneColor ;
if ( PassSequence . IsEnabled ( EPass : : Tonemap ) )
{
const FPostProcessMaterialChain MaterialChain = GetPostProcessMaterialChain ( View , BL_ReplacingTonemapper ) ;
if ( MaterialChain . Num ( ) )
{
const UMaterialInterface * HighestPriorityMaterial = MaterialChain [ 0 ] ;
FPostProcessMaterialInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Tonemap , PassInputs . OverrideOutput ) ;
PassInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , SceneColor ) ;
2022-01-28 08:13:09 -05:00
//PassInputs.SetInput(EPostProcessMaterialInput::SeparateTranslucency, SeparateTranslucency);
2021-12-03 17:20:45 -05:00
PassInputs . SetInput ( EPostProcessMaterialInput : : CombinedBloom , Bloom ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
PassInputs . CustomDepthTexture = CustomDepth . Texture ;
SceneColor = AddPostProcessMaterialPass ( GraphBuilder , View , PassInputs , HighestPriorityMaterial ) ;
}
else
{
FRDGTextureRef ColorGradingTexture = nullptr ;
if ( bPrimaryView )
{
ColorGradingTexture = AddCombineLUTPass ( GraphBuilder , View ) ;
}
// We can re-use the color grading texture from the primary view.
2020-09-24 00:43:27 -04:00
else if ( View . GetTonemappingLUT ( ) )
{
ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , View . GetTonemappingLUT ( ) ) ;
}
2019-10-01 13:03:04 -04:00
else
{
2020-09-24 00:43:27 -04:00
const FViewInfo * PrimaryView = static_cast < const FViewInfo * > ( View . Family - > Views [ 0 ] ) ;
ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , PrimaryView - > GetTonemappingLUT ( ) ) ;
2019-10-01 13:03:04 -04:00
}
FTonemapInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Tonemap , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Bloom = Bloom ;
2021-12-03 17:20:45 -05:00
PassInputs . SceneColorApplyParamaters = SceneColorApplyParameters ;
2021-09-01 11:22:04 -04:00
PassInputs . LocalExposureTexture = LocalExposureTexture ;
PassInputs . BlurredLogLuminanceTexture = LocalExposureBlurredLogLumTexture ;
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
2019-10-01 13:03:04 -04:00
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
PassInputs . ColorGradingTexture = ColorGradingTexture ;
2022-02-14 07:30:53 -05:00
PassInputs . bWriteAlphaChannel = AntiAliasingMethod = = AAM_FXAA | | bProcessSceneColorAlpha ;
2019-10-01 13:03:04 -04:00
PassInputs . bOutputInHDR = bTonemapOutputInHDR ;
SceneColor = AddTonemapPass ( GraphBuilder , View , PassInputs ) ;
}
}
2020-09-24 00:43:27 -04:00
SceneColor = AddAfterPass ( EPass : : Tonemap , SceneColor ) ;
2019-10-01 13:03:04 -04:00
SceneColorAfterTonemap = SceneColor ;
if ( PassSequence . IsEnabled ( EPass : : FXAA ) )
{
FFXAAInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : FXAA , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Quality = GetFXAAQuality ( ) ;
SceneColor = AddFXAAPass ( GraphBuilder , View , PassInputs ) ;
}
2020-09-24 00:43:27 -04:00
SceneColor = AddAfterPass ( EPass : : FXAA , SceneColor ) ;
2019-10-01 13:03:04 -04:00
// Post Process Material Chain - After Tonemapping
if ( PassSequence . IsEnabled ( EPass : : PostProcessMaterialAfterTonemapping ) )
{
FPostProcessMaterialInputs PassInputs = GetPostProcessMaterialInputs ( SceneColor ) ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : PostProcessMaterialAfterTonemapping , PassInputs . OverrideOutput ) ;
2019-10-03 17:48:17 -04:00
PassInputs . SetInput ( EPostProcessMaterialInput : : PreTonemapHDRColor , SceneColorBeforeTonemap ) ;
PassInputs . SetInput ( EPostProcessMaterialInput : : PostTonemapHDRColor , SceneColorAfterTonemap ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
SceneColor = AddPostProcessMaterialChain ( GraphBuilder , View , PassInputs , PostProcessMaterialAfterTonemappingChain ) ;
}
2022-02-03 16:07:50 -05:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLumenScene ) )
{
FVisualizeLumenSceneInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLumenScene , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , View . GetTonemappingLUT ( ) ) ;
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
PassInputs . SceneTextures . SceneTextures = Inputs . SceneTextures ;
SceneColor = AddVisualizeLumenScenePass ( GraphBuilder , View , bAnyLumenActive , PassInputs , LumenFrameTemporaries ) ;
}
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeDepthOfField ) )
{
FVisualizeDOFInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeDepthOfField , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
SceneColor = AddVisualizeDOFPass ( GraphBuilder , View , PassInputs ) ;
}
2020-09-24 00:43:27 -04:00
SceneColor = AddAfterPass ( EPass : : VisualizeDepthOfField , SceneColor ) ;
2019-10-01 13:03:04 -04:00
}
// Minimal PostProcessing - Separate translucency composition and gamma-correction only.
else
{
2020-03-20 13:59:19 -04:00
PassSequence . SetEnabled ( EPass : : MotionBlur , false ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : Tonemap , true ) ;
PassSequence . SetEnabled ( EPass : : FXAA , false ) ;
PassSequence . SetEnabled ( EPass : : PostProcessMaterialAfterTonemapping , false ) ;
PassSequence . SetEnabled ( EPass : : VisualizeDepthOfField , false ) ;
2021-09-01 11:22:04 -04:00
PassSequence . SetEnabled ( EPass : : VisualizeLocalExposure , false ) ;
2019-10-01 13:03:04 -04:00
PassSequence . Finalize ( ) ;
2021-05-19 02:09:02 -04:00
// Compose separate translucency passes
2022-01-28 08:13:09 -05:00
{
FTranslucencyComposition TranslucencyComposition ;
TranslucencyComposition . Operation = FTranslucencyComposition : : EOperation : : ComposeToNewSceneColor ;
TranslucencyComposition . SceneColor = SceneColor ;
TranslucencyComposition . OutputViewport = FScreenPassTextureViewport ( SceneColor ) ;
2022-02-14 07:30:53 -05:00
TranslucencyComposition . OutputPixelFormat = SceneColorFormat ;
2022-01-28 08:13:09 -05:00
if ( PostDOFTranslucencyResources . IsValid ( ) )
{
TranslucencyComposition . SceneColor = TranslucencyComposition . AddPass (
GraphBuilder , View , PostDOFTranslucencyResources ) ;
}
if ( PostMotionBlurTranslucencyResources . IsValid ( ) )
{
TranslucencyComposition . SceneColor = TranslucencyComposition . AddPass (
GraphBuilder , View , PostMotionBlurTranslucencyResources ) ;
}
SceneColor = TranslucencyComposition . SceneColor ;
}
2019-10-01 13:03:04 -04:00
SceneColorBeforeTonemap = SceneColor ;
if ( PassSequence . IsEnabled ( EPass : : Tonemap ) )
{
FTonemapInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Tonemap , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
2021-09-01 11:22:04 -04:00
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
2020-06-23 18:40:00 -04:00
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
2019-10-01 13:03:04 -04:00
PassInputs . bOutputInHDR = bViewFamilyOutputInHDR ;
PassInputs . bGammaOnly = true ;
SceneColor = AddTonemapPass ( GraphBuilder , View , PassInputs ) ;
}
2020-09-24 00:43:27 -04:00
SceneColor = AddAfterPass ( EPass : : Tonemap , SceneColor ) ;
2019-10-01 13:03:04 -04:00
SceneColorAfterTonemap = SceneColor ;
Copying //UE4/Odin-Staging to //UE4/Dev-Main (Source: //Odin/Main @ 3226588)
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3226413 on 2016/12/07 by Jeff.Farris
Fixed potential crash in USkeletalMeshComponent::InitArticulated().
Change 3226257 on 2016/12/07 by Mike.Beach
Mirroring CL 3219381 from Dev-Blueprints
Accounting for cyclic compile issues in cast-node's validate function, making it check the authoratative class instead of the current type. Also down grading some of the warnings to notes (suggesting the users don't need the cast).
#jira UE-39272
Change 3226147 on 2016/12/07 by Aaron.McLeran
Implementing UE-39421 fix into odin
Change 3225906 on 2016/12/07 by Jeff.Farris
Merge-copied 3216144 from Dev-Framework to Odin (Fix FConstraintInstance scaling issues in FSkeletalMeshComponent::InitArticulated.)
Change 3225097 on 2016/12/07 by Zak.Middleton
#odin-ue4 - Fix GameEngine.cpp compile error (FMessageDialog not declared).
Change 3225050 on 2016/12/07 by Jeff.Farris
Added forward declaration to IOculusRiftPlugin.h to fix compile error in Test builds.
Change 3224757 on 2016/12/07 by Ben.Marsh
Merge CL 3224750 from //UE4/Main: Removing -forcelogflush parameter from UAT invocations of the editor to improve cook times.
Change 3224451 on 2016/12/06 by Max.Chen
Sequencer: Fix convert spawnable to posessable. Logic for setting the parent was mistakenly removed in runtime eval.
Copy from Dev-Sequencer
#jira UE-39419
Change 3223856 on 2016/12/06 by Guillaume.Abadie
Fixes merge collision of Base Pass's selective outputs and MSAA alpha to coverage
Change 3223673 on 2016/12/06 by Zak.Middleton
#odin-ue4 - Fixed crash when opening data table assets and working with some types of nodes in the graph editor.
Merged fixes from Dev-Editor: CL 3156326, 3172078, 3187276, 3210983.
Change 3223381 on 2016/12/06 by Nick.Whiting
Merging using UE4_MAIN_to_ODIN @ CL 3221533
Change 3223325 on 2016/12/06 by Alex.Delesky
Plugin wizard definition for creating Odin game mods. Currently this just creates an empty Content Only plugin.
This also enables the mod creation window to be shown on editor startup (can be toggled off) or invoked via a toolbar button.
Change 3221825 on 2016/12/05 by Nick.Whiting
Updating VCToolChain.cs file, which was skipped in last integration
Change 3221793 on 2016/12/05 by Zak.Middleton
#odin - Back out changelist 3218159. Going to move to trace by profile in the future instead.
Change 3219668 on 2016/12/02 by Alex.Delesky
Partially duplicating CL 3185126 into Odin:
-Fixes an issue where adding a new plugin could unnecesarily added to the additional plugin directory, which can cause build failures.
Change 3219558 on 2016/12/02 by Zak.Middleton
#odin - Fix adapative pixel density crash (again). INI settings are dumb and locally saved INIs ignore the change to the base I pushed yesterday, so pushing a code fix instead. Wrapped in "DO NOT MERGE" since this crash is fixed in Dev-VR.
Change 3218953 on 2016/12/02 by Alex.Delesky
Back out changelist 3216159 - Reintroducing Plugin Wizard Definition for defining New Plugin Wizard functionality
Change 3218822 on 2016/12/02 by Matthew.Griffin
Remove modding from folder paths
Add logging for delete task
Delete more temp files from Copy and DDC process
Change 3218410 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fix crash when unloading levels or exiting the editor when objects placed in levels had a MID set in construction scripts.
CLs from Dev-Editor: 3203739, 3205814
Change 3218277 on 2016/12/01 by Zak.Middleton
#ue4-odin - Fixed crash when opening data table assets.
Merged small fixes from Dev-Editor: CL 3156326, 3172078, 3187276.
#jira ODIN-2096
Change 3218178 on 2016/12/01 by Jeff.Farris
Fix for bad merge in InheritableComponentHandler (discovered via shadow var warning)
Change 3218159 on 2016/12/01 by Zak.Middleton
#ue4-odin - Wrap blueprint trace functions using trace channels to a generic helper that uses any collision channel. Before we decide whether to expose object channel or general collision channel functions to blueprints, this allows games to at least build off the general functions.
Change 3216502 on 2016/11/30 by Nick.Whiting
Missed files from merge
Change 3216490 on 2016/11/30 by Nick.Whiting
Merge Main -> Odin, up to CL 3202946
Change 3216159 on 2016/11/30 by Zak.Middleton
#odin - Back out changelist 3216005
Change 3216005 on 2016/11/30 by Alex.Delesky
Adding the IPluginWizardDefinition interface, which is used to determine the functionality of the new plugin wizard along with what kind of plugins can actually be created. This can be used to change the behavior of the plugin wizard to create new game mods.
Change 3215329 on 2016/11/30 by Jeff.Farris
Re-expose collision settings on EQSTestingPawn so users can make the test pawn agent dimensions match the pawn they are trying to simulate.
Change 3213875 on 2016/11/29 by Jeff.Farris
Turned off collision on EQSRenderingComponent for EQSTestingPawns. Fixes issue with bogus agent dimensions.
Change 3213027 on 2016/11/29 by Matthew.Griffin
Added Modding Build steps to copy everything needed for an installed editor build
Added BuildCommand to run GenerateDistillFileSetsCommandlet and copy the resulting file list to another location
Fix for APEX .pdb paths
Change 3206638 on 2016/11/21 by Dan.Oconnor
Fix for compile error, digging out authorative class from trash class
Change 3206175 on 2016/11/21 by Nick.Atamas
#umg exposed support for explicit wrap width in WrapBox.
Change 3204658 on 2016/11/18 by Alan.Villani
#odin Wiring up new intro cinematic to game flow.
Change 3201200 on 2016/11/16 by Alan.Villani
#odin Spectator/Leaderboards: Added console var vr.bAllowSpectatorTexture to enable/disable the display of the spectator texture. Also enabling spectator panel and leaderboards with this change.
Change 3201064 on 2016/11/16 by Wyeth.Johnson
Support new billboards
Change 3199357 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Removing logging now that problem has been fixed.
Change 3199302 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Skip reinit if not a successful init in ovr_ResetInitAndContext(). Also added logging to shutdown.
Change 3198947 on 2016/11/15 by Alan.Villani
#odin Spectator/Leaderboards: Reinstating CL 3197812 with fix to make InitWithWindowsPlatform() return warnings instead of errors.
Change 3198803 on 2016/11/15 by Jeff.Farris
Copied CL 3198691 frojm Dev-Sequencer (Sequence Recorder: Optimize record transforms by setting all the keyframes at once. Also, added option to toggle removing redundant keyframes from the recorded tracks.)
Change 3198525 on 2016/11/15 by Alan.Villani
#odin ODIN-1758. Spectator/Leaderboards: Back out changelist 3197812. This change was causing the automated packaged build to fail. Since the root cause hasn't been found, reverting the change.
Change 3197909 on 2016/11/15 by Alan.Villani
#odin OnlineSubsystemOculus: Fix for linking issue with Odin Monolithics build.
Change 3197812 on 2016/11/14 by Alan.Villani
#odin Spectator and leaderboard code support:
Support for enhanced oculus leaderboard functionality. Player's score is uploaded on FinishLevel(). Added delegate function to allow Rift render code to render an additional passed in texture - this is used to display spectator information in the mirrored window. GetMissionRowName() can now return the row name for the intro mission.
This is only code support. Blueprint support to follow.
Change 3196940 on 2016/11/14 by Nick.Whiting
Fix for include path
Change 3196897 on 2016/11/14 by Nick.Whiting
Integrating IKinema plugin. Note that there are some deprecation warnings that have not been fixed up because of the refactoring. We're going to avoid fixing that up for now, because it's a large refactor, and the plugin is only needed for this week.
Change 3194897 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) -- Downgrade warning log spam when sweeping skeletal mesh components.
Change 3194799 on 2016/11/11 by Nick.Atamas
Added better normals for curved WidgetComponent.
Change 3194697 on 2016/11/11 by Chris.Bunner
Duplicated CL 3194665 from Dev-Rendering: Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194383 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - Avoid calling ComponentOverlapComponent() when handling overlap checks if either component is a SkeletalMeshComponent. That function returns false for those, however a normal global overlap check would return a valid result.
Also elevated warnings (from log) when trying to use above function with SkeletalMeshComponents.
Change 3194380 on 2016/11/11 by Zak.Middleton
#ue4 - (Odin) - UPrimitiveComponent::GetCollisionEnabled() checks the owner Actor enable collision setting. Handles cases where the BodyInstance doesn't have physics state.
Also merge CL 3136709 to fix overlap events spam.
Change 3192616 on 2016/11/09 by Zak.Middleton
#odin - Jump arcs only draw in editor if Navigation is shown, or when selected in editor.
Change 3192310 on 2016/11/09 by Daniel.Wright
[Copy] Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3191042 on 2016/11/08 by Nick.Atamas
#slate/umg
Added SetIsExapanded_Animated() method to SExpandableArea.
Added anim length to ExpandableArea's widget style.
Change 3190411 on 2016/11/08 by Guillaume.Abadie
Adds some randomness in particul collisions.
Change 3186455 on 2016/11/03 by Stanley.Hayes
Fixed Tangents the mesh generation of Widget Component, now works with Bump Offset! -- The Impl for non-planar widgets is wrong but works as a temp fix
Change 3186335 on 2016/11/03 by Alan.Villani
#odin Oculus Input:
Fix for haptic feedback not processing unless both touch controllers are active.
Change 3184215 on 2016/11/02 by Daniel.Wright
Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only
Change 3182542 on 2016/11/01 by Nick.Atamas
Applied feedback after code review:
- Fixed bug with incorrectly assigned LocalHitLocation
- PerformTrace is now const
- Clarified comments.
Potentially fixed jira ODIN-1590, pending verification.
Change 3181845 on 2016/11/01 by Nick.Atamas
Details panel filters now show a distinct visual state (yellow highlight) when a filter is active.
https://jira.it.epicgames.net/browse/UE-11088
Change 3179037 on 2016/10/28 by Zak.Middleton
#ue4 - (Odin) - Avoid crash in PropertyChangeListener when WeakObjectPtr goes null. Prevent passing null objects in array to delegates that don't null check the elements. Repro steps still unclear, adding ensure() to catch it for more info.
Change 3177127 on 2016/10/27 by Alan.Villani
#odin Menu Shell:
Put in cvar to allow disabling of haptics.
Change 3174582 on 2016/10/26 by Zak.Middleton
#ue4 - Changed Actor::GetForwardVector, GetUpVector, and GetRightVector to just wrap to the FQuat functions. These use inline constants rather than a memory fetch to the static FVector::ForwardVector etc, so the multiplies are better optimized in-place by the compiler (ie with constant folding).
Change 3174401 on 2016/10/25 by Maciej.Mroz
In nativized code Nullptr is always casted to UObject type.
#jira ODIN-1560
Change 3173310 on 2016/10/25 by Guillaume.Abadie
Fix a bug in the forward shading particule collision hack using ddx/ddy to compute the normal and implement an accurate way of compute the normal requiering two addtional scene depth buffer fetches for neighboorhing pixels and use it as default.
Change 3172997 on 2016/10/24 by Nick.Atamas
Cylindrical Widget - First Pass Support.
Change 3172707 on 2016/10/24 by Nick.Whiting
Integrating fix for haptic effects with sound waves crashing when no sound wave is loaded.
Change 3172167 on 2016/10/24 by Jeff.Farris
Merged 3120587 from Dev-Sequencer to Odin (Fbx Export: Fix double transforms on an exported mesh.)
Change 3170221 on 2016/10/21 by Zak.Middleton
#ue4 - Fix projectiles and characters not moving at all when frame delta time is very low (time dilation is very low, framerate is very high, or a combination of both).
Change 3170036 on 2016/10/20 by Zak.Middleton
#ue4 - Make Ragdoll collision profile ignore Visibility channel (to match CharacterMesh collision profile).
Change 3169728 on 2016/10/20 by Zak.Middleton
#ue4 - Fix comment.
Change 3169727 on 2016/10/20 by Zak.Middleton
#ue4 - Fix spacing/indentation.
Change 3169277 on 2016/10/20 by Zak.Middleton
#ue4 - Lower default simulations per second in PredictProjectilePath. Now that it is more accurate (after CL 3124174), this will still maintain quality with better performance.
Change 3169272 on 2016/10/20 by Zak.Middleton
#ue4 - Change some array Reset() calls back to Empty(), since blueprints typically keep these arrays around forever and we don't want them to stay large.
Change 3168157 on 2016/10/19 by Jeff.Farris
Merging 3168079 from Dev-Framework to Odin (Fix timing issue that causes snapshotpose to t-pose.)
Change 3167894 on 2016/10/19 by Chris.Bunner
Updated tooltip comment.
Change 3167569 on 2016/10/19 by Jeff.Farris
#engine Fixed issue with cine camera component where blueprint-accessible FOV data could be incorrect in some circumstances
Change 3166950 on 2016/10/18 by Zak.Middleton
#ue4 - Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656.
Change 3166807 on 2016/10/18 by Zak.Middleton
#ue4 - Make all GameplayStatics functions take const WorldContextObjects, so they are more usable from C++.
Change 3166540 on 2016/10/18 by Jeff.Farris
Merging 3164818 from Dev-Framework to Odin (Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll.)
Change 3166323 on 2016/10/18 by Jeff.Farris
#engine Fixed issue where Navlink smartlinks wouldn't respect the Direction property proprely.
Change 3163415 on 2016/10/14 by Chris.Bunner
Allow surface actor particles to inherit UV coordinates through the dynamic parameter struct.
Change 3162716 on 2016/10/13 by Jeff.Farris
#engine Made UPathFollowingComponent::HasReachedCurrentTarget() virtual
Change 3161602 on 2016/10/13 by Jeff.Farris
#engine removed a comment I left in
Change 3161037 on 2016/10/12 by Alan.Villani
#odin Loading Screens:
Modified AsyncLoadingSplash to use platform specific max layer number.
Change 3160690 on 2016/10/12 by Jeff.Farris
#engine Added PathFollowingComponent::bIsDecelerating to know when AI is in its "decelerate at the end of the path" state
Change 3160686 on 2016/10/12 by Jeff.Farris
#engine Fixed comment on NavMovementComponent::bUseAccelerationForPaths
Change 3160200 on 2016/10/12 by Zak.Middleton
#odin - Added Odin versions of Sphere, Capsule, Box trace functions taking any trace channel.
Change 3156847 on 2016/10/10 by Maciej.Mroz
#jira ODIN-1345
In nativized code, value of output array parameter is reset before the funtion, that will fill the parameter, is called. The same mechanism is already used by bytecode comiler.
Change 3155495 on 2016/10/07 by Zak.Middleton
#ue4 - RootComponent fixup in AActor::PostLoadSubojects should handle constructors that also try to fix up the old root component on their own.
Additionally we should attach the old root component to the new one, otherwise it has no parent.
Change 3154962 on 2016/10/07 by Chris.Bunner
Duplicating CL 3148934, 3148994 from Dev-Rendering - Added pre-skinned local position material graph node, vertex shader only.
Change 3154255 on 2016/10/06 by Zak.Middleton
#ue4 - Add AIController to the delegate for move completion for blueprint "AI Move To Location or Actor" nodes, so you can know which AI finishes the move.
Change 3154217 on 2016/10/06 by Mike.Beach
Backing out changelist 3146883, as it was causing properties to clear on load (in Gun_Shotgun/BP_RightHand).
Change 3154199 on 2016/10/06 by Zak.Middleton
#ue4 - Inline a few simple functions in UKismetSystemLibrary for performance in nativized builds.
Change 3153427 on 2016/10/06 by Jeff.Farris
Updated Oculus AppID to the full game ID
Change 3148205 on 2016/10/02 by Zak.Middleton
#ue4 - Perf: Add simple path for UPrimitiveComponent::UpdatePhysicsVolume() when there are no physics volumes placed in a level. Avoid checking overlapping components for any volumes at all.
Change 3148089 on 2016/10/01 by Phillip.Kavan
Merging in CLs 3148022 and 3148033 from //UE4/Dev-Blueprints/...
Note: These were dependent on the following additional CLs, which have also been merged in:
=> 3081010,3116021,3123581,3131318,3132348,3133072,3133817,3137800,3137851
Change 3148054 on 2016/10/01 by Nick.Whiting
Adding much smaller footprint entitlement check
Change 3147910 on 2016/10/01 by Nick.Whiting
Back out changelist 3147807
Change 3147909 on 2016/10/01 by Nick.Whiting
Back out changelist 3147787
Change 3147810 on 2016/09/30 by Zak.Middleton
#odin - Fix "Delay" nodes in macros not working correctly. This made simultaneous instances of our "UndilatedDelay" and "0-1 Lerp" macros incorrect.
(Mirror CL 3119502 from Dev-Blueprints)
Change 3147807 on 2016/09/30 by Nick.Whiting
Blueprint cyclic dependency fixes, submitted on behalf of DanO.
Change 3147787 on 2016/09/30 by Nick.Whiting
Adding Oculus Entitlement check for Odin
Change 3147732 on 2016/09/30 by Daniel.Wright
From Guillaume: Skip ClearStencilFromBasePass by using a single bit of stencil as a sandbox bit. This requires all passes that use stencil to setup a proper read / write mask, as other stencil bits will be non-zero. Saves .14ms
Change 3147285 on 2016/09/30 by Dan.Oconnor
Back out changelist 3147258
Introduced "Detaching from existing linker" crash
Change 3147258 on 2016/09/30 by Dan.Oconnor
Making sure we defer objects that have unserialized archetypes
Change 3146985 on 2016/09/30 by Daniel.Wright
Skip Prepass ResolveSceneDepthTexture if there's no way decals or shadows will use it, since there's another resolve after the base pass. Saves .1ms in the planar reflection pass.
Change 3146883 on 2016/09/30 by Dan.Oconnor
Fix for component data getting lost on load. Two primary causes:
1. Loading component, then loading its template and reinitializing it from parent
2. Discarding inheritable component handler on load because it 'matched' the unloaded super (or it was unloaded and matched a loaded super, or both of them weren't yet loaded and they matched)
Change 3145504 on 2016/09/29 by Daniel.Wright
Capsule indirect shadows are now affected by DynamicShadows showflag
Change 3145416 on 2016/09/29 by Wyeth.Johnson
optimized vector to radial value to use atan2fast. Small polish to weapon available indicators, slightly smaller, radial res in, get brighter right before pickup to match the glow transition
Change 3144359 on 2016/09/28 by Zak.Middleton
#ue4 - Add IsPointInBox() and IsPointInBoxWithTransform() to KismetMathLibrary.
Change 3144302 on 2016/09/28 by Daniel.Wright
New SceneCapture functions for managing the ShowOnly list: RemoveShowOnlyComponent, RemoveShowOnlyActorComponents, ClearShowOnlyComponents
Change 3144210 on 2016/09/28 by Daniel.Wright
Manual copy - Shadow stencil optimisation from Ben Woodhouse with cvar (enabled by default). Saves .2ms in Odin.
Change 3144208 on 2016/09/28 by Daniel.Wright
Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970
Change 3143778 on 2016/09/28 by Ryan.Vance
Disabling motion blur scale behavior. We want the motion blur scale to be consistent regardless of time dilation.
Cleaning up the velocity bias change made yesterday for odin, need to ensure it doesn't make it back to main as it will break TAA.
Change 3143728 on 2016/09/28 by Jeff.Farris
Made AIController::MoveTo virtual
Change 3142740 on 2016/09/27 by Nick.Whiting
Fix for dynamic object velocity rendering not working. MSAA was breaking it, needed to add a bias in the VelocityShader in order to pass depth tests
Change 3142665 on 2016/09/27 by Ryan.Vance
Fixing incorrect uniform/buffer references for passes that aren't drawn with ISR when ISR is turned when using forward.
Change 3142488 on 2016/09/27 by Zak.Middleton
#ue4 - Expose Character::MovementModeChangedDelegate to blueprints. Fix category on OnReachedJumpApex event.
Change 3142360 on 2016/09/27 by Frank.Fella
Sequencer - Don't crash when a bool track or visibility track has a null runtime object.
Change 3142204 on 2016/09/27 by Zak.Middleton
#odin - Nav jump links update their nav data in realtime as the start and end points are moved. Still need to color the predicted path based on the nav data.
Change 3141695 on 2016/09/27 by Guillaume.Abadie
Fixes depth buffer collision on GPU particle in the forward render by computing the world normal using a cross(ddx(), ddy()) of the world position.
#review-3141656 @ben.woodhouse
Change 3141013 on 2016/09/27 by Zak.Middleton
#ue4 - NavLinkProxy properly calls SetNavigationRelevancy() when created in the editor. Fixes the need to uncheck/recheck bSmartLinkIsRelevant.
Change 3140878 on 2016/09/26 by Zak.Middleton
#ue4 - Add MarkRenderStateDirty() to UNavLinkCustomComponent::SetLinkData(), so visualizers update asap after link data changes.
Change 3140863 on 2016/09/26 by Nick.Whiting
Adding in vr.MonoCapture, which disables the right eye for capturing in order to give a performance boost
Change 3140790 on 2016/09/26 by Zak.Middleton
#ue4 - Make LineBatchComponent's FLineBatcherSceneProxy::GetViewRelevance() respect show flags (such as hidden in game).
Change 3140175 on 2016/09/26 by Dan.Oconnor
Mirror of 3140143
#jira UE-36395
Change 3139622 on 2016/09/26 by Maciej.Mroz
Fixed const local variables in Nativized code
Change 3139257 on 2016/09/24 by Jeff.Farris
Added GetGrabbedComponent() to UPhysicsHandleComponent.
Change 3139050 on 2016/09/23 by Nick.Whiting
Support for trailer capturing, as well as gamepad controls for adjustment
Change 3138644 on 2016/09/23 by Zak.Middleton
#ue4 - Added FPredictProjectilePathPointData::Reset(). Presize path points array in UGameplayStatics::PredictProjectilePath().
Change 3138521 on 2016/09/23 by Ryan.Vance
#jira UE-36114
We need to bind the right eye's forward lighting state when ISR is enabled and branch depending on which eye instance we're drawing.
Added a copy of FForwardGlobalLightData, NumCulledLightsGrid CulledLightDataGrid, and ForwardLocalLightBuffer for the right eye and set them when drawing with ISR
Moved ForwardLightingResources from FViewInfo up to FSceneView for access
Removed USE_CULLED_LOCAL_LIGHTS as it wasn't being used and complicated the shader refactor
TODO: This can be greatly simplified by generating the FForwardGlobalLightData uniform assignment shader code similar to how I'm handling the view uniforms. To clean up the branching for the grid buffers we should write both eyes into a single buffer and just use an offset.
Change 3138178 on 2016/09/23 by Zak.Middleton
#ue4 - Add FVector::DistXY() and Dist2D() (as an alias). Add FVector::Distance() as an alias for Dist(), and FVector::DistSquared2D() as an alias for DistSquaredXY(). Fixed comment in FVector2D::Distance() saying it was the squared distance.
- This is more in line with the Size2D(), SizeSquared2D(), GetSafeNormal2D() naming, but maintains backwards compat for a large amount of code.
Change 3138162 on 2016/09/23 by Lukasz.Furman
fixed navmesh crash on attempt to regenerate an empty tile layer
Change 3137578 on 2016/09/23 by Maciej.Mroz
#jira ODIN-1017 [Nativization] Crash while loading Hub_env level
Ensured, that CreateExport (and fully construction) is called for loaded DynamicClass.
Change 3136774 on 2016/09/22 by Chris.Bunner
Gather object references from stereo view state in USceneCaptureComponent. This matches behavior of other classes such as ULocalPlayer.
#jira ODIN-1013
Change 3136491 on 2016/09/22 by Jeff.Farris
Removed an unnnecessary ensure in ApplyPhysicalAnimationProfileBelow.
Change 3136412 on 2016/09/22 by Zak.Middleton
#ue4 - Inlined more functions in KismetMathLibrary that used error reporting (eg divide by zero errors). Moved the actual error reporting to the cpp so the inline overhead and compilation overhead is negligible.
Change 3136288 on 2016/09/22 by Zak.Middleton
#ue4 - Inline KismetMathLibrary functions where appropriate. Improves performance in nativized builds where the calls were not inlined even for the most simple functions (like "Not Bool", "Add Ints").
Change 3136162 on 2016/09/22 by Ben.Marsh
Merge CL 3136158 to fix issues generating project files with Visual Studio Express.
Change 3135403 on 2016/09/22 by Jeff.Farris
GameplayStatics::ApplyPointDamage and ApplyDamage now return the actual damage that was applied
Change 3135052 on 2016/09/21 by Zak.Middleton
#ue4 - Add new GameplayStatics::PredictProjectilePath functions with added functionality.
- Option to trace for collision by trace channel, object type, or both.
- Added versions that take input and output struct parameters.
- Output now includes location, velocity, and time for each point on the path.
Change 3134757 on 2016/09/21 by Guillaume.Abadie
Removes all resolve operations from distortion pass and support MSAA for the forward shader.
#review-3134758 @daniel.wright
Change 3134635 on 2016/09/21 by Jeff.Farris
Merged from Dev-Physics-Upgrade to Odin. This is the upgrade to PhysX 3.4.
Change 3134101 on 2016/09/21 by David.Hill
Post process CombineLUT shouldn't be per eye.
Also disable weighted-average post process passes for bloom when filter size is set to zero.
#review-3134102 @chris.bunner
Change 3133191 on 2016/09/20 by Guillaume.Abadie
Normalizes material's Opacity Mask according to Opacity Mask Clip Value.
Change 3133082 on 2016/09/20 by Brian.Karis
Static light source shapes in reflection captures will fade out when outside influence instead of going black.
Change 3132936 on 2016/09/20 by Jeff.Farris
Fixed some engine issues with setting mass overrides.
Change 3132821 on 2016/09/20 by Guillaume.Abadie
Adds support for MSAA on masked material using shader implemented alpha to coverage.
#review-3130154 @daniel.wright
Change 3132522 on 2016/09/20 by Zak.Middleton
#ue4 - Cache conversion of WalkableSlopeAngle to the cosine value in FWalkableSlopeOverride struct, when used in the override modes. Avoids computing this conversion (potentially multiple times per frame) for every character movement move and floor test.
Change 3130457 on 2016/09/19 by Daniel.Wright
Reuse ESceneColorFormatType::HighEndWithAlpha if the format allows it - prevents two scene color textures being allocated with planar reflections with r.SceneColorFormat=4
Change 3129467 on 2016/09/16 by Zak.Middleton
#ue4 - Improve Accuracy of final point in UGameplayStatics::PredictProjectilePath() to respect MaxSimTime. Previously the sim could have exceeded the max time if (MaxSimTime / SimFrequency) had a fractional part.
Change 3129327 on 2016/09/16 by Daniel.Wright
Added r.NormalCurvatureToRoughnessExponent for tweaking
NormalCurvatureToRoughness is now applied to clearcoat roughness
Change 3129324 on 2016/09/16 by Daniel.Wright
Added r.TemporalAACurrentFrameWeight for debugging
Change 3128812 on 2016/09/16 by Daniel.Wright
Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3.
Change 3128811 on 2016/09/16 by Daniel.Wright
Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path.
Change 3126195 on 2016/09/15 by Maciej.Mroz
#jira UE-35262 Incompatible pins give generate warning, when error is necessary.
Fixed incompatible pins validation.
Manually merged cl#3124667 from Dev-Blueprints
Change 3126108 on 2016/09/14 by Nick.Whiting
Added GetLaunchOption blueprint node to check if command line arguments are set
Added -demo path for Odin, which disables pause, and changes opening flow
Change 3125819 on 2016/09/14 by Zak.Middleton
#ue4 - Add option for accurate bounds for LineBatchComponent, on by default. Corrects attempts to focus on actors using them causing the view to zoom out to HALF_WORLD_MAX.
Turned this off for world debug line visualizers, to avoid affecting perf for those (and they often have lines/points all over anyway).
Change 3125686 on 2016/09/14 by Zabir.Hoque
Slimed down when and where we resolve RT particularly for forward rendering.
Change 3124174 on 2016/09/13 by Zak.Middleton
#ue4 - Improved accuracy and performance of PredictProjectilePath(). Switched to semi-implicit Euler integration. Fixed not being able to pass in const WorldContextObjects (only an issue when used from code, BP didn't care).
Change 3124121 on 2016/09/13 by Zak.Middleton
#odin - Integrate CL 3122728 from Dev-Editor:
UMG - Exposing a trace channel for the WIC, defaults to Visibility. Improving how the WIC handles the cursor moving off the widget, it now maintains the last hit location rather than 0,0 which would cause things like dragged Sliders to reset to the left. Ideally - the WIC would know the underlying widget has capture and continue to fake collision against an imaginary plane to simulate a continuous surface.
Change 3124116 on 2016/09/13 by Zak.Middleton
#odin - Back out revision 3 from //Odin/Main/Engine/Source/Runtime/UMG/Private/Components/WidgetInteractionComponent.cpp
Change 3123485 on 2016/09/13 by Stanley.Hayes
Added optional trace channels to WidgetInterationComponent
Change 3123301 on 2016/09/13 by Zak.Middleton
#ue4 - Added ENGINE_API to some functions in ULineBatchComponent that were not exported: DrawLines, DrawLine, DrawPoint, DrawSolidBox, DrawMesh.
Change 3122632 on 2016/09/13 by Maciej.Mroz
Improved ReverseForEachLoop macro in StandardMacros
Change 3122351 on 2016/09/12 by Nick.Whiting
Adding 90fps tracking to the FPS summary chart creation
Change 3122325 on 2016/09/12 by Wyeth.Johnson
Needed a 5 minute breather. Updated Editor splash screen because reasons
Change 3121869 on 2016/09/12 by Zak.Middleton
#ue4 - (Merge to Odin) Fix UGameplayStatics::SpawnEmitterAttached() using wrong scale when SnapToTarget (Keep World Scale) option is used. Improve comments for SpawnEmitterAttached().
#jira UE-34482
(Integrate Framework->Odin)
Change 3121407 on 2016/09/12 by Wyeth.Johnson
Fixed shopfront for Oz, big bot WIP
Change 3121253 on 2016/09/12 by Zak.Middleton
#ue4 - Fix CharacterMovement braking when using acceleration for paths.
- Fixed pathfinding using friction in GetPathFollowingBrakingDistance() and using wrong formula for stopping distance. Pathfinding adjusts analog input to achieve this deceleration, so friction is never applied and should not be included here.
- Added virtual "GetMaxBrakingDeceleration()" function to CharacterMovementComponent. Returns deceleration value set for current movement mode (ie BrakingDecelerationWalking, BrakingDecelerationFlying, etc).
Change 3121231 on 2016/09/12 by Wyeth.Johnson
Fixed procedural Stuff, now to fix aliasing :)
[CL 3226598 by Nick Whiting in Main branch]
2016-12-08 03:26:33 -05:00
}
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeStationaryLightOverlap ) )
{
ensureMsgf ( View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale , TEXT ( " TAAU should be disabled when visualizing stationary light overlap. " ) ) ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
FVisualizeComplexityInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeStationaryLightOverlap , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = OriginalSceneColor ;
PassInputs . Colors = GEngine - > StationaryLightOverlapColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Ramp ;
2021-11-26 09:45:44 -05:00
PassInputs . bDrawLegend = true ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
}
2015-10-28 08:58:16 -04:00
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLightCulling ) )
{
ensureMsgf ( View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale , TEXT ( " TAAU should be disabled when visualizing light culling. " ) ) ;
// 0.1f comes from the values used in LightAccumulator_GetResult
const float ComplexityScale = 1.0f / ( float ) ( GEngine - > LightComplexityColors . Num ( ) - 1 ) / 0.1f ;
FVisualizeComplexityInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLightCulling , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = OriginalSceneColor ;
PassInputs . Colors = GEngine - > LightComplexityColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Linear ;
PassInputs . ComplexityScale = ComplexityScale ;
2021-11-26 09:45:44 -05:00
PassInputs . bDrawLegend = true ;
2019-10-01 13:03:04 -04:00
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
}
2021-10-12 21:21:22 -04:00
# if DEBUG_POST_PROCESS_VOLUME_ENABLE
if ( PassSequence . IsEnabled ( EPass : : VisualizePostProcessStack ) )
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizePostProcessStack , OverrideOutput ) ;
2021-10-25 20:05:28 -04:00
OverrideOutput = OverrideOutput . IsValid ( ) ? OverrideOutput : FScreenPassRenderTarget : : CreateFromInput ( GraphBuilder , SceneColor , View . GetOverwriteLoadAction ( ) , TEXT ( " VisualizePostProcessStack " ) ) ;
2021-10-12 21:21:22 -04:00
SceneColor = AddFinalPostProcessDebugInfoPasses ( GraphBuilder , View , OverrideOutput ) ;
}
# endif
2022-05-24 04:33:36 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLightGrid ) )
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLightGrid , OverrideOutput ) ;
SceneColor = AddVisualizeLightGridPass ( GraphBuilder , View , SceneColor , SceneDepth . Texture ) ;
}
2021-10-25 20:05:28 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeStrata ) )
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeStrata , OverrideOutput ) ;
2021-11-18 14:37:34 -05:00
SceneColor = Strata : : AddStrataDebugPasses ( GraphBuilder , View , SceneColor ) ;
2021-10-25 20:05:28 -04:00
}
2015-10-06 15:59:09 -04:00
# if WITH_EDITOR
2021-10-25 20:05:28 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeSkyAtmosphere ) )
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeSkyAtmosphere , OverrideOutput ) ;
OverrideOutput = OverrideOutput . IsValid ( ) ? OverrideOutput : FScreenPassRenderTarget : : CreateFromInput ( GraphBuilder , SceneColor , View . GetOverwriteLoadAction ( ) , TEXT ( " VisualizeSkyAtmosphere " ) ) ;
SceneColor = AddSkyAtmosphereDebugPasses ( GraphBuilder , Scene , * View . Family , View , OverrideOutput ) ;
}
2020-09-15 17:20:22 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLevelInstance ) )
{
FVisualizeLevelInstanceInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLevelInstance , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures . SceneTextures = Inputs . SceneTextures ;
2020-09-15 17:20:22 -04:00
SceneColor = AddVisualizeLevelInstancePass ( GraphBuilder , View , PassInputs , NaniteRasterResults ) ;
}
2022-02-03 16:07:50 -05:00
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : SelectionOutline ) )
{
FSelectionOutlineInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : SelectionOutline , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures . SceneTextures = Inputs . SceneTextures ;
2014-03-14 14:13:41 -04:00
2020-07-06 18:58:26 -04:00
SceneColor = AddSelectionOutlinePass ( GraphBuilder , View , PassInputs , NaniteRasterResults ) ;
2019-10-01 13:03:04 -04:00
}
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : EditorPrimitive ) )
{
FEditorPrimitiveInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : EditorPrimitive , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . BasePassType = FEditorPrimitiveInputs : : EBasePassType : : Deferred ;
2021-01-14 05:23:34 -04:00
SceneColor = AddEditorPrimitivePass ( GraphBuilder , View , PassInputs , InstanceCullingManager ) ;
2019-10-01 13:03:04 -04:00
}
2015-10-06 15:59:09 -04:00
# endif
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeShadingModels ) )
{
ensureMsgf ( View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale , TEXT ( " TAAU should be disabled when visualizing shading models. " ) ) ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
FVisualizeShadingModelInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeShadingModels , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
SceneColor = AddVisualizeShadingModelPass ( GraphBuilder , View , PassInputs ) ;
}
if ( PassSequence . IsEnabled ( EPass : : VisualizeGBufferHints ) )
{
ensureMsgf ( View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale , TEXT ( " TAAU should be disabled when visualizing gbuffer hints. " ) ) ;
FVisualizeGBufferHintsInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeGBufferHints , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . OriginalSceneColor = OriginalSceneColor ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
SceneColor = AddVisualizeGBufferHintsPass ( GraphBuilder , View , PassInputs ) ;
}
if ( PassSequence . IsEnabled ( EPass : : VisualizeSubsurface ) )
{
ensureMsgf ( View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale , TEXT ( " TAAU should be disabled when visualizing subsurface. " ) ) ;
FVisualizeSubsurfaceInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeSubsurface , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
SceneColor = AddVisualizeSubsurfacePass ( GraphBuilder , View , PassInputs ) ;
}
if ( PassSequence . IsEnabled ( EPass : : VisualizeGBufferOverview ) )
{
FVisualizeGBufferOverviewInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeGBufferOverview , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneColorBeforeTonemap = SceneColorBeforeTonemap ;
PassInputs . SceneColorAfterTonemap = SceneColorAfterTonemap ;
2022-02-10 13:12:42 -05:00
FIntRect ViewRect { 0 , 0 , 1 , 1 } ;
if ( PostDOFTranslucencyResources . IsValid ( ) )
{
ViewRect = PostDOFTranslucencyResources . ViewRect ;
}
PassInputs . SeparateTranslucency = FScreenPassTexture ( PostDOFTranslucencyResources . GetColorForRead ( GraphBuilder ) , ViewRect ) ; // TODO
2019-10-01 13:03:04 -04:00
PassInputs . Velocity = Velocity ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
PassInputs . bOverview = bVisualizeGBufferOverview ;
PassInputs . bDumpToFile = bVisualizeGBufferDumpToFile ;
PassInputs . bOutputInHDR = bOutputInHDR ;
SceneColor = AddVisualizeGBufferOverviewPass ( GraphBuilder , View , PassInputs ) ;
}
2022-02-02 05:55:10 -05:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLumenSceneOverview ) )
{
FVisualizeLumenSceneInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLumenSceneOverview , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , View . GetTonemappingLUT ( ) ) ;
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
PassInputs . SceneTextures . SceneTextures = Inputs . SceneTextures ;
SceneColor = AddVisualizeLumenScenePass ( GraphBuilder , View , bAnyLumenActive , PassInputs , LumenFrameTemporaries ) ;
}
2019-10-01 13:03:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeHDR ) )
{
FVisualizeHDRInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeHDR , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneColorBeforeTonemap = SceneColorBeforeTonemap ;
PassInputs . HistogramTexture = HistogramTexture ;
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
SceneColor = AddVisualizeHDRPass ( GraphBuilder , View , PassInputs ) ;
}
2021-09-01 11:22:04 -04:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeLocalExposure ) )
{
FVisualizeLocalExposureInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeLocalExposure , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . HDRSceneColor = SceneColorBeforeTonemap ;
PassInputs . LumBilateralGridTexture = LocalExposureTexture ;
PassInputs . BlurredLumTexture = LocalExposureBlurredLogLumTexture ;
PassInputs . EyeAdaptationTexture = EyeAdaptationTexture ;
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
SceneColor = AddVisualizeLocalExposurePass ( GraphBuilder , View , PassInputs ) ;
}
2022-02-24 19:43:15 -05:00
if ( PassSequence . IsEnabled ( EPass : : VisualizeMotionVectors ) )
{
FVisualizeMotionVectorsInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : VisualizeMotionVectors , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . SceneVelocity = Velocity ;
SceneColor = AddVisualizeMotionVectorsPass ( GraphBuilder , View , PassInputs ) ;
}
2019-10-01 13:03:04 -04:00
# if WITH_EDITOR
if ( PassSequence . IsEnabled ( EPass : : PixelInspector ) )
{
FPixelInspectorInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : PixelInspector , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneColorBeforeTonemap = SceneColorBeforeTonemap ;
PassInputs . OriginalSceneColor = OriginalSceneColor ;
SceneColor = AddPixelInspectorPass ( GraphBuilder , View , PassInputs ) ;
}
# endif
if ( PassSequence . IsEnabled ( EPass : : HMDDistortion ) )
{
FHMDDistortionInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : HMDDistortion , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
SceneColor = AddHMDDistortionPass ( GraphBuilder , View , PassInputs ) ;
}
if ( PassSequence . IsEnabled ( EPass : : HighResolutionScreenshotMask ) )
{
FHighResolutionScreenshotMaskInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : HighResolutionScreenshotMask , PassInputs . OverrideOutput ) ;
2020-09-24 00:43:27 -04:00
PassInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
PassInputs . SceneColor = SceneColor ;
PassInputs . Material = View . FinalPostProcessSettings . HighResScreenshotMaterial ;
PassInputs . MaskMaterial = View . FinalPostProcessSettings . HighResScreenshotMaskMaterial ;
PassInputs . CaptureRegionMaterial = View . FinalPostProcessSettings . HighResScreenshotCaptureRegionMaterial ;
SceneColor = AddHighResolutionScreenshotMaskPass ( GraphBuilder , View , PassInputs ) ;
}
if ( PassSequence . IsEnabled ( EPass : : PrimaryUpscale ) )
{
2021-07-22 17:20:27 -04:00
ISpatialUpscaler : : FInputs PassInputs ;
2019-10-01 13:03:04 -04:00
PassSequence . AcceptOverrideIfLastPass ( EPass : : PrimaryUpscale , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Stage = PassSequence . IsEnabled ( EPass : : SecondaryUpscale ) ? EUpscaleStage : : PrimaryToSecondary : EUpscaleStage : : PrimaryToOutput ;
2021-10-25 20:05:28 -04:00
const ISpatialUpscaler * CustomUpscaler = View . Family ? View . Family - > GetPrimarySpatialUpscalerInterface ( ) : nullptr ;
if ( CustomUpscaler )
2021-07-22 17:20:27 -04:00
{
RDG_EVENT_SCOPE (
GraphBuilder ,
" ThirdParty PrimaryUpscale %s %dx%d -> %dx%d " ,
CustomUpscaler - > GetDebugName ( ) ,
SceneColor . ViewRect . Width ( ) , SceneColor . ViewRect . Height ( ) ,
View . GetSecondaryViewRectSize ( ) . X , View . GetSecondaryViewRectSize ( ) . Y ) ;
2019-10-01 13:03:04 -04:00
2021-07-22 17:20:27 -04:00
SceneColor = CustomUpscaler - > AddPasses ( GraphBuilder , View , PassInputs ) ;
if ( PassSequence . IsLastPass ( EPass : : PrimaryUpscale ) )
{
check ( SceneColor = = ViewFamilyOutput ) ;
}
else
{
check ( SceneColor . ViewRect . Size ( ) = = View . GetSecondaryViewRectSize ( ) ) ;
}
}
else
{
EUpscaleMethod Method = GetUpscaleMethod ( ) ;
SceneColor = ISpatialUpscaler : : AddDefaultUpscalePass ( GraphBuilder , View , PassInputs , Method , PaniniConfig ) ;
}
2019-10-01 13:03:04 -04:00
}
if ( PassSequence . IsEnabled ( EPass : : SecondaryUpscale ) )
{
2021-07-22 17:20:27 -04:00
ISpatialUpscaler : : FInputs PassInputs ;
2019-10-01 13:03:04 -04:00
PassSequence . AcceptOverrideIfLastPass ( EPass : : SecondaryUpscale , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Stage = EUpscaleStage : : SecondaryToOutput ;
2021-10-25 20:05:28 -04:00
const ISpatialUpscaler * CustomUpscaler = View . Family ? View . Family - > GetSecondarySpatialUpscalerInterface ( ) : nullptr ;
if ( CustomUpscaler )
2021-07-22 17:20:27 -04:00
{
RDG_EVENT_SCOPE (
GraphBuilder ,
" ThirdParty SecondaryUpscale %s %dx%d -> %dx%d " ,
CustomUpscaler - > GetDebugName ( ) ,
SceneColor . ViewRect . Width ( ) , SceneColor . ViewRect . Height ( ) ,
View . UnscaledViewRect . Width ( ) , View . UnscaledViewRect . Height ( ) ) ;
2019-10-01 13:03:04 -04:00
2021-07-22 17:20:27 -04:00
SceneColor = CustomUpscaler - > AddPasses ( GraphBuilder , View , PassInputs ) ;
check ( SceneColor = = ViewFamilyOutput ) ;
}
else
{
2021-10-25 20:05:28 -04:00
EUpscaleMethod Method = View . Family & & View . Family - > SecondaryScreenPercentageMethod = = ESecondaryScreenPercentageMethod : : LowerPixelDensitySimulation
2021-07-22 17:20:27 -04:00
? EUpscaleMethod : : SmoothStep
: EUpscaleMethod : : Nearest ;
SceneColor = ISpatialUpscaler : : AddDefaultUpscalePass ( GraphBuilder , View , PassInputs , Method , FPaniniProjectionConfig ( ) ) ;
}
2019-10-01 13:03:04 -04:00
}
2022-01-18 06:20:07 -05:00
// Draw debug stuff directly onto the back buffer
# if !UE_BUILD_SHIPPING
{
if ( EngineShowFlags . TestImage )
{
AddTestImagePass ( GraphBuilder , View , SceneColor ) ;
}
if ( EngineShowFlags . VisualizeNanite & & NaniteRasterResults ! = nullptr )
{
AddVisualizeNanitePass ( GraphBuilder , View , SceneColor , * NaniteRasterResults ) ;
}
2022-01-27 15:49:31 -05:00
if ( EngineShowFlags . VisualizeVirtualShadowMap & & VirtualShadowMapArray ! = nullptr )
{
2022-04-12 23:44:41 -04:00
VirtualShadowMapArray - > AddVisualizePass ( GraphBuilder , View , ViewIndex , SceneColor ) ;
2022-01-27 15:49:31 -05:00
}
2022-02-04 04:18:10 -05:00
{
RectLightAtlas : : AddRectLightAtlasDebugPass ( GraphBuilder , View , SceneColor . Texture ) ;
}
2022-01-18 06:20:07 -05:00
if ( ShaderPrint : : IsEnabled ( View ) )
{
2022-02-22 15:35:01 -05:00
ShaderPrint : : DrawView ( GraphBuilder , View , SceneColor , SceneDepth ) ;
2022-01-18 06:20:07 -05:00
}
if ( View . Family & & View . Family - > Scene )
{
if ( FFXSystemInterface * FXSystem = View . Family - > Scene - > GetFXSystem ( ) )
{
FXSystem - > DrawSceneDebug_RenderThread ( GraphBuilder , View , SceneColor . Texture , SceneDepth . Texture ) ;
}
}
}
# endif
2014-03-14 14:13:41 -04:00
}
2020-07-06 18:58:26 -04:00
void AddDebugViewPostProcessingPasses ( FRDGBuilder & GraphBuilder , const FViewInfo & View , const FPostProcessingInputs & Inputs , const Nanite : : FRasterResults * NaniteRasterResults )
2014-03-14 14:13:41 -04:00
{
2020-09-24 00:43:27 -04:00
RDG_CSV_STAT_EXCLUSIVE_SCOPE ( GraphBuilder , RenderPostProcessing ) ;
2019-10-01 13:03:04 -04:00
QUICK_SCOPE_CYCLE_COUNTER ( STAT_PostProcessing_Process ) ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
check ( IsInRenderingThread ( ) ) ;
check ( View . VerifyMembersChecks ( ) ) ;
Inputs . Validate ( ) ;
2014-03-14 14:13:41 -04:00
2019-10-01 13:03:04 -04:00
const FIntRect PrimaryViewRect = View . ViewRect ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
const FSceneTextureParameters SceneTextureParameters = GetSceneTextureParameters ( GraphBuilder , Inputs . SceneTextures ) ;
2019-10-01 13:03:04 -04:00
const FScreenPassRenderTarget ViewFamilyOutput = FScreenPassRenderTarget : : CreateViewFamilyOutput ( Inputs . ViewFamilyTexture , View ) ;
2020-09-24 00:43:27 -04:00
const FScreenPassTexture SceneDepth ( SceneTextureParameters . SceneDepthTexture , PrimaryViewRect ) ;
FScreenPassTexture SceneColor ( ( * Inputs . SceneTextures ) - > SceneColorTexture , PrimaryViewRect ) ;
2019-10-01 13:03:04 -04:00
// Some view modes do not actually output a color so they should not be tonemapped.
2022-03-15 06:49:12 -04:00
const bool bTonemapAfter = View . Family - > EngineShowFlags . RayTracingDebug | | View . Family - > EngineShowFlags . VisualizeGPUSkinCache ;
2019-10-01 13:03:04 -04:00
const bool bTonemapBefore = ! bTonemapAfter & & ! View . Family - > EngineShowFlags . ShaderComplexity ;
const bool bViewFamilyOutputInHDR = GRHISupportsHDROutput & & IsHDREnabled ( ) ;
enum class EPass : uint32
{
Visualize ,
TonemapAfter ,
SelectionOutline ,
PrimaryUpscale ,
SecondaryUpscale ,
MAX
} ;
const TCHAR * PassNames [ ] =
{
TEXT ( " Visualize " ) ,
TEXT ( " TonemapAfter " ) ,
TEXT ( " SelectionOutline " ) ,
TEXT ( " PrimaryUpscale " ) ,
TEXT ( " SecondaryUpscale " )
} ;
2019-10-01 13:43:14 -04:00
static_assert ( static_cast < uint32 > ( EPass : : MAX ) = = UE_ARRAY_COUNT ( PassNames ) , " EPass does not match PassNames. " ) ;
2019-10-01 13:03:04 -04:00
TOverridePassSequence < EPass > PassSequence ( ViewFamilyOutput ) ;
2019-10-01 13:43:14 -04:00
PassSequence . SetNames ( PassNames , UE_ARRAY_COUNT ( PassNames ) ) ;
2019-10-01 13:03:04 -04:00
PassSequence . SetEnabled ( EPass : : Visualize , true ) ;
PassSequence . SetEnabled ( EPass : : TonemapAfter , bTonemapAfter ) ;
PassSequence . SetEnabled ( EPass : : SelectionOutline , GIsEditor ) ;
2021-03-05 11:23:39 -04:00
PassSequence . SetEnabled ( EPass : : PrimaryUpscale , View . ViewRect . Size ( ) ! = View . GetSecondaryViewRectSize ( ) & & View . PrimaryScreenPercentageMethod ! = EPrimaryScreenPercentageMethod : : TemporalUpscale ) ;
2021-07-22 17:20:27 -04:00
PassSequence . SetEnabled ( EPass : : SecondaryUpscale , View . RequiresSecondaryUpscale ( ) | | View . Family - > GetSecondarySpatialUpscalerInterface ( ) ! = nullptr ) ;
2019-10-01 13:03:04 -04:00
PassSequence . Finalize ( ) ;
if ( bTonemapBefore )
{
2021-09-03 01:30:02 -04:00
const FEyeAdaptationParameters EyeAdaptationParameters = GetEyeAdaptationParameters ( View , ERHIFeatureLevel : : SM5 ) ;
2019-10-01 13:03:04 -04:00
FTonemapInputs PassInputs ;
PassInputs . SceneColor = SceneColor ;
PassInputs . bOutputInHDR = bViewFamilyOutputInHDR ;
PassInputs . bGammaOnly = true ;
2021-09-03 01:30:02 -04:00
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
2019-10-01 13:03:04 -04:00
SceneColor = AddTonemapPass ( GraphBuilder , View , PassInputs ) ;
}
check ( PassSequence . IsEnabled ( EPass : : Visualize ) ) ;
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Visualize , OverrideOutput ) ;
switch ( View . Family - > GetDebugViewShaderMode ( ) )
{
case DVSM_QuadComplexity :
{
float ComplexityScale = 1.f / ( float ) ( GEngine - > QuadComplexityColors . Num ( ) - 1 ) / NormalizedQuadComplexityValue ; // .1f comes from the values used in LightAccumulator_GetResult
FVisualizeComplexityInputs PassInputs ;
PassInputs . OverrideOutput = OverrideOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Colors = GEngine - > QuadComplexityColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Stair ;
PassInputs . ComplexityScale = ComplexityScale ;
PassInputs . bDrawLegend = true ;
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
break ;
}
case DVSM_ShaderComplexity :
case DVSM_ShaderComplexityContainedQuadOverhead :
case DVSM_ShaderComplexityBleedingQuadOverhead :
{
FVisualizeComplexityInputs PassInputs ;
PassInputs . OverrideOutput = OverrideOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Colors = GEngine - > ShaderComplexityColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Ramp ;
PassInputs . ComplexityScale = 1.0f ;
PassInputs . bDrawLegend = true ;
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
break ;
}
case DVSM_PrimitiveDistanceAccuracy :
case DVSM_MeshUVDensityAccuracy :
case DVSM_MaterialTextureScaleAccuracy :
case DVSM_RequiredTextureResolution :
2021-12-03 02:44:01 -05:00
case DVSM_VirtualTexturePendingMips :
2019-10-01 13:03:04 -04:00
{
FStreamingAccuracyLegendInputs PassInputs ;
PassInputs . OverrideOutput = OverrideOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Colors = GEngine - > StreamingAccuracyColors ;
SceneColor = AddStreamingAccuracyLegendPass ( GraphBuilder , View , PassInputs ) ;
break ;
}
case DVSM_RayTracingDebug :
2022-03-15 06:49:12 -04:00
case DVSM_VisualizeGPUSkinCache :
2019-10-01 13:03:04 -04:00
{
FTAAPassParameters Parameters ( View ) ;
2020-09-24 00:43:27 -04:00
Parameters . SceneDepthTexture = SceneTextureParameters . SceneDepthTexture ;
Parameters . SceneVelocityTexture = SceneTextureParameters . GBufferVelocityTexture ;
2019-10-01 13:03:04 -04:00
Parameters . SceneColorInput = SceneColor . Texture ;
2021-03-05 11:23:39 -04:00
Parameters . Pass = View . PrimaryScreenPercentageMethod = = EPrimaryScreenPercentageMethod : : TemporalUpscale
? ETAAPassConfig : : MainUpsampling
: ETAAPassConfig : : Main ;
Parameters . SetupViewRect ( View ) ;
2019-10-01 13:03:04 -04:00
const FTemporalAAHistory & InputHistory = View . PrevViewInfo . TemporalAAHistory ;
FTemporalAAHistory * OutputHistory = & View . ViewState - > PrevFrameViewInfo . TemporalAAHistory ;
2020-08-23 00:00:09 -04:00
FTAAOutputs Outputs = AddTemporalAAPass ( GraphBuilder , View , Parameters , InputHistory , OutputHistory ) ;
2019-10-01 13:03:04 -04:00
SceneColor . Texture = Outputs . SceneColor ;
2021-03-05 11:23:39 -04:00
SceneColor . ViewRect = Parameters . OutputViewRect ;
2019-10-01 13:03:04 -04:00
break ;
}
2020-04-16 18:30:27 -04:00
case DVSM_LODColoration :
break ;
2019-10-01 13:03:04 -04:00
default :
ensure ( false ) ;
break ;
}
}
if ( PassSequence . IsEnabled ( EPass : : TonemapAfter ) )
{
2021-09-01 11:22:04 -04:00
const FEyeAdaptationParameters EyeAdaptationParameters = GetEyeAdaptationParameters ( View , ERHIFeatureLevel : : SM5 ) ;
2019-10-01 13:03:04 -04:00
FTonemapInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : TonemapAfter , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . bOutputInHDR = bViewFamilyOutputInHDR ;
PassInputs . bGammaOnly = true ;
2020-02-12 13:27:19 -05:00
// Do eye adaptation in ray tracing debug modes to match raster buffer visualization modes
2021-09-01 11:22:04 -04:00
PassInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
PassInputs . EyeAdaptationTexture = GetEyeAdaptationTexture ( GraphBuilder , View ) ;
2019-10-01 13:03:04 -04:00
SceneColor = AddTonemapPass ( GraphBuilder , View , PassInputs ) ;
}
# if WITH_EDITOR
if ( PassSequence . IsEnabled ( EPass : : SelectionOutline ) )
{
FSelectionOutlineInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : SelectionOutline , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
2022-02-20 23:08:33 -05:00
PassInputs . SceneTextures . SceneTextures = Inputs . SceneTextures ;
2019-10-01 13:03:04 -04:00
2020-07-06 18:58:26 -04:00
SceneColor = AddSelectionOutlinePass ( GraphBuilder , View , PassInputs , NaniteRasterResults ) ;
2019-10-01 13:03:04 -04:00
}
# endif
if ( PassSequence . IsEnabled ( EPass : : PrimaryUpscale ) )
{
2021-07-22 17:20:27 -04:00
ISpatialUpscaler : : FInputs PassInputs ;
2019-10-01 13:03:04 -04:00
PassSequence . AcceptOverrideIfLastPass ( EPass : : PrimaryUpscale , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Stage = PassSequence . IsEnabled ( EPass : : SecondaryUpscale ) ? EUpscaleStage : : PrimaryToSecondary : EUpscaleStage : : PrimaryToOutput ;
2021-07-22 17:20:27 -04:00
if ( const ISpatialUpscaler * CustomUpscaler = View . Family - > GetPrimarySpatialUpscalerInterface ( ) )
{
RDG_EVENT_SCOPE (
GraphBuilder ,
" ThirdParty PrimaryUpscale %s %dx%d -> %dx%d " ,
CustomUpscaler - > GetDebugName ( ) ,
SceneColor . ViewRect . Width ( ) , SceneColor . ViewRect . Height ( ) ,
View . GetSecondaryViewRectSize ( ) . X , View . GetSecondaryViewRectSize ( ) . Y ) ;
SceneColor = CustomUpscaler - > AddPasses ( GraphBuilder , View , PassInputs ) ;
if ( PassSequence . IsLastPass ( EPass : : PrimaryUpscale ) )
{
check ( SceneColor = = ViewFamilyOutput ) ;
}
else
{
check ( SceneColor . ViewRect . Size ( ) = = View . GetSecondaryViewRectSize ( ) ) ;
}
}
else
{
EUpscaleMethod Method = GetUpscaleMethod ( ) ;
SceneColor = ISpatialUpscaler : : AddDefaultUpscalePass ( GraphBuilder , View , PassInputs , Method , FPaniniProjectionConfig ( ) ) ;
}
2019-10-01 13:03:04 -04:00
}
if ( PassSequence . IsEnabled ( EPass : : SecondaryUpscale ) )
{
2021-07-22 17:20:27 -04:00
ISpatialUpscaler : : FInputs PassInputs ;
2019-10-01 13:03:04 -04:00
PassSequence . AcceptOverrideIfLastPass ( EPass : : SecondaryUpscale , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Stage = EUpscaleStage : : SecondaryToOutput ;
2021-07-22 17:20:27 -04:00
if ( const ISpatialUpscaler * CustomUpscaler = View . Family - > GetSecondarySpatialUpscalerInterface ( ) )
{
RDG_EVENT_SCOPE (
GraphBuilder ,
" ThirdParty SecondaryUpscale %s %dx%d -> %dx%d " ,
CustomUpscaler - > GetDebugName ( ) ,
SceneColor . ViewRect . Width ( ) , SceneColor . ViewRect . Height ( ) ,
View . UnscaledViewRect . Width ( ) , View . UnscaledViewRect . Height ( ) ) ;
SceneColor = CustomUpscaler - > AddPasses ( GraphBuilder , View , PassInputs ) ;
check ( SceneColor = = ViewFamilyOutput ) ;
}
else
{
EUpscaleMethod Method = View . Family - > SecondaryScreenPercentageMethod = = ESecondaryScreenPercentageMethod : : LowerPixelDensitySimulation
? EUpscaleMethod : : SmoothStep
: EUpscaleMethod : : Nearest ;
SceneColor = ISpatialUpscaler : : AddDefaultUpscalePass ( GraphBuilder , View , PassInputs , Method , FPaniniProjectionConfig ( ) ) ;
}
2019-10-01 13:03:04 -04:00
}
2014-03-14 14:13:41 -04:00
}
2020-05-01 14:17:49 -04:00
void AddVisualizeCalibrationMaterialPostProcessingPasses ( FRDGBuilder & GraphBuilder , const FViewInfo & View , const FPostProcessingInputs & Inputs , const UMaterialInterface * InMaterialInterface )
2020-04-28 12:42:51 -04:00
{
2020-09-24 00:43:27 -04:00
RDG_CSV_STAT_EXCLUSIVE_SCOPE ( GraphBuilder , RenderPostProcessing ) ;
2020-04-28 12:42:51 -04:00
QUICK_SCOPE_CYCLE_COUNTER ( STAT_PostProcessing_Process ) ;
check ( IsInRenderingThread ( ) ) ;
check ( View . VerifyMembersChecks ( ) ) ;
check ( InMaterialInterface ) ;
Inputs . Validate ( ) ;
const FIntRect PrimaryViewRect = View . ViewRect ;
2020-09-24 00:43:27 -04:00
const FSceneTextureParameters & SceneTextures = GetSceneTextureParameters ( GraphBuilder , Inputs . SceneTextures ) ;
2020-04-28 12:42:51 -04:00
const FScreenPassRenderTarget ViewFamilyOutput = FScreenPassRenderTarget : : CreateViewFamilyOutput ( Inputs . ViewFamilyTexture , View ) ;
// Scene color is updated incrementally through the post process pipeline.
2020-09-24 00:43:27 -04:00
FScreenPassTexture SceneColor ( ( * Inputs . SceneTextures ) - > SceneColorTexture , PrimaryViewRect ) ;
2020-04-28 12:42:51 -04:00
const FEngineShowFlags & EngineShowFlags = View . Family - > EngineShowFlags ;
const bool bVisualizeHDR = EngineShowFlags . VisualizeHDR ;
const bool bViewFamilyOutputInHDR = GRHISupportsHDROutput & & IsHDREnabled ( ) ;
const bool bOutputInHDR = IsPostProcessingOutputInHDR ( ) ;
// Post Process Material - Before Color Correction
FPostProcessMaterialInputs PostProcessMaterialInputs ;
PostProcessMaterialInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , SceneColor ) ;
2020-09-24 00:43:27 -04:00
PostProcessMaterialInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2020-04-28 12:42:51 -04:00
SceneColor = AddPostProcessMaterialPass ( GraphBuilder , View , PostProcessMaterialInputs , InMaterialInterface ) ;
// Replace tonemapper with device encoding only pass, which converts the scene color to device-specific color.
FDeviceEncodingOnlyInputs PassInputs ;
PassInputs . OverrideOutput = ViewFamilyOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . bOutputInHDR = bViewFamilyOutputInHDR ;
SceneColor = AddDeviceEncodingOnlyPass ( GraphBuilder , View , PassInputs ) ;
}
2019-10-01 13:03:04 -04:00
///////////////////////////////////////////////////////////////////////////
// Mobile Post Processing
//////////////////////////////////////////////////////////////////////////
2020-09-24 00:43:27 -04:00
static bool IsGaussianActive ( const FViewInfo & View )
2019-10-01 13:03:04 -04:00
{
2020-09-24 00:43:27 -04:00
float FarSize = View . FinalPostProcessSettings . DepthOfFieldFarBlurSize ;
float NearSize = View . FinalPostProcessSettings . DepthOfFieldNearBlurSize ;
2019-10-01 13:03:04 -04:00
float MaxSize = CVarDepthOfFieldMaxSize . GetValueOnRenderThread ( ) ;
FarSize = FMath : : Min ( FarSize , MaxSize ) ;
NearSize = FMath : : Min ( NearSize , MaxSize ) ;
const float CVarThreshold = CVarDepthOfFieldNearBlurSizeThreshold . GetValueOnRenderThread ( ) ;
if ( ( FarSize < 0.01f ) & & ( NearSize < CVarThreshold ) )
{
return false ;
}
return true ;
}
2022-05-09 15:15:12 -04:00
// Scene Captures are going to be used as textures and sampled in the main scene, so they must remain unflipped.
bool IsMobilePostProcessingFlipEnabled ( const FViewInfo & View )
{
return RHINeedsToSwitchVerticalAxis ( View . GetShaderPlatform ( ) ) & & ! View . bIsSceneCapture ;
}
2021-03-22 22:21:46 -04:00
void AddMobilePostProcessingPasses ( FRDGBuilder & GraphBuilder , FScene * Scene , const FViewInfo & View , const FMobilePostProcessingInputs & Inputs , FInstanceCullingManager & InstanceCullingManager )
2014-08-28 13:54:31 -04:00
{
2020-09-24 00:43:27 -04:00
CSV_SCOPED_TIMING_STAT_EXCLUSIVE ( RenderPostProcessing ) ;
QUICK_SCOPE_CYCLE_COUNTER ( STAT_PostProcessing_Process ) ;
2019-10-01 13:03:04 -04:00
2014-03-14 14:13:41 -04:00
check ( IsInRenderingThread ( ) ) ;
2020-09-24 00:43:27 -04:00
Inputs . Validate ( ) ;
const FIntRect FinalOutputViewRect = View . ViewRect ;
const FScreenPassRenderTarget ViewFamilyOutput = FScreenPassRenderTarget : : CreateViewFamilyOutput ( Inputs . ViewFamilyTexture , View ) ;
const FScreenPassTexture SceneDepth ( ( * Inputs . SceneTextures ) - > SceneDepthTexture , FinalOutputViewRect ) ;
const FScreenPassTexture CustomDepth ( ( * Inputs . SceneTextures ) - > CustomDepthTexture , FinalOutputViewRect ) ;
2021-02-18 21:11:17 -04:00
const FScreenPassTexture Velocity ( ( * Inputs . SceneTextures ) - > SceneVelocityTexture , FinalOutputViewRect ) ;
2020-09-24 00:43:27 -04:00
const FScreenPassTexture BlackAlphaOneDummy ( GSystemTextures . GetBlackAlphaOneDummy ( GraphBuilder ) ) ;
// Scene color is updated incrementally through the post process pipeline.
FScreenPassTexture SceneColor ( ( * Inputs . SceneTextures ) - > SceneColorTexture , FinalOutputViewRect ) ;
2021-06-11 13:47:20 -04:00
FScreenPassTexture SceneDepthAux ( ( * Inputs . SceneTextures ) - > SceneDepthAuxTexture , FinalOutputViewRect ) ;
2020-09-24 00:43:27 -04:00
// Default the new eye adaptation to the last one in case it's not generated this frame.
const FEyeAdaptationParameters EyeAdaptationParameters = GetEyeAdaptationParameters ( View , ERHIFeatureLevel : : ES3_1 ) ;
2021-05-17 05:39:52 -04:00
FRDGBufferRef LastEyeAdaptationBuffer = GetEyeAdaptationBuffer ( GraphBuilder , View ) ;
2020-09-24 00:43:27 -04:00
2021-05-25 02:43:26 -04:00
const FPaniniProjectionConfig PaniniConfig ( View ) ;
2020-09-24 00:43:27 -04:00
enum class EPass : uint32
{
Distortion ,
SunMask ,
BloomSetup ,
DepthOfField ,
Bloom ,
EyeAdaptation ,
SunMerge ,
SeparateTranslucency ,
2021-02-18 21:11:17 -04:00
TAA ,
2020-09-24 00:43:27 -04:00
Tonemap ,
PostProcessMaterialAfterTonemapping ,
2021-02-03 14:57:28 -04:00
FXAA ,
2020-09-24 00:43:27 -04:00
HighResolutionScreenshotMask ,
SelectionOutline ,
EditorPrimitive ,
PrimaryUpscale ,
Visualize ,
HMDDistortion ,
MAX
} ;
const TCHAR * PassNames [ ] =
{
TEXT ( " Distortion " ) ,
TEXT ( " SunMask " ) ,
TEXT ( " BloomSetup " ) ,
TEXT ( " DepthOfField " ) ,
TEXT ( " Bloom " ) ,
TEXT ( " EyeAdaptation " ) ,
TEXT ( " SunMerge " ) ,
TEXT ( " SeparateTranslucency " ) ,
2021-02-18 21:11:17 -04:00
TEXT ( " TAA " ) ,
2020-09-24 00:43:27 -04:00
TEXT ( " Tonemap " ) ,
TEXT ( " PostProcessMaterial (AfterTonemapping) " ) ,
2021-02-03 14:57:28 -04:00
TEXT ( " FXAA " ) ,
2020-09-24 00:43:27 -04:00
TEXT ( " HighResolutionScreenshotMask " ) ,
TEXT ( " SelectionOutline " ) ,
TEXT ( " EditorPrimitive " ) ,
TEXT ( " PrimaryUpscale " ) ,
TEXT ( " Visualize " ) ,
TEXT ( " HMDDistortion " )
} ;
static_assert ( static_cast < uint32 > ( EPass : : MAX ) = = UE_ARRAY_COUNT ( PassNames ) , " EPass does not match PassNames. " ) ;
TOverridePassSequence < EPass > PassSequence ( ViewFamilyOutput ) ;
PassSequence . SetNames ( PassNames , UE_ARRAY_COUNT ( PassNames ) ) ;
2014-03-14 14:13:41 -04:00
// This page: https://udn.epicgames.com/Three/RenderingOverview#Rendering%20state%20defaults
// describes what state a pass can expect and to what state it need to be set back.
// All post processing is happening on the render thread side. All passes can access FinalPostProcessSettings and all
// view settings. Those are copies for the RT then never get access by the main thread again.
// Pointers to other structures might be unsafe to touch.
2018-05-23 21:04:31 -04:00
const EDebugViewShaderMode DebugViewShaderMode = View . Family - > GetDebugViewShaderMode ( ) ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
FScreenPassTexture BloomOutput ;
FScreenPassTexture DofOutput ;
FScreenPassTexture PostProcessSunShaftAndDof ;
// temporary solution for SP_METAL using HW sRGB flag during read vs all other mob platforms using
// incorrect UTexture::SRGB state. (UTexture::SRGB != HW texture state)
bool bSRGBAwareTarget = View . Family - > RenderTarget - > GetDisplayGamma ( ) = = 1.0f
& & View . bIsSceneCapture
& & IsMetalMobilePlatform ( View . GetShaderPlatform ( ) ) ;
2021-02-01 17:58:35 -04:00
2020-09-24 00:43:27 -04:00
const EAutoExposureMethod AutoExposureMethod = GetAutoExposureMethod ( View ) ;
const bool bUseEyeAdaptation = IsMobileEyeAdaptationEnabled ( View ) ;
2021-02-24 11:02:45 -04:00
2020-09-24 00:43:27 -04:00
//The input scene color has been encoded to non-linear space and needs to decode somewhere if MSAA enabled on Metal platform
2021-02-24 11:02:45 -04:00
bool bMetalMSAAHDRDecode = GSupportsShaderFramebufferFetch & & IsMetalMobilePlatform ( View . GetShaderPlatform ( ) ) & & GetDefaultMSAACount ( ERHIFeatureLevel : : ES3_1 ) > 1 ;
2020-09-24 00:43:27 -04:00
// add the passes we want to add to the graph (commenting a line means the pass is not inserted into the graph) ---------
// HQ gaussian
bool bUseDof = GetMobileDepthOfFieldScale ( View ) > 0.0f & & View . Family - > EngineShowFlags . DepthOfField & & ! View . Family - > EngineShowFlags . VisualizeDOF ;
bool bUseMobileDof = bUseDof & & ! View . FinalPostProcessSettings . bMobileHQGaussian ;
bool bUseToneMapper = ! View . Family - > EngineShowFlags . ShaderComplexity & & IsMobileHDR ( ) ;
bool bUseHighResolutionScreenshotMask = IsHighResolutionScreenshotMaskEnabled ( View ) ;
static const auto VarTonemapperUpscale = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.MobileTonemapperUpscale " ) ) ;
bool bDisableUpscaleInTonemapper = ! VarTonemapperUpscale | | VarTonemapperUpscale - > GetValueOnRenderThread ( ) = = 0 ;
2021-06-11 13:47:20 -04:00
bool bShouldPrimaryUpscale = IsMobilePropagateAlphaEnabled ( View . GetShaderPlatform ( ) ) | | ( View . PrimaryScreenPercentageMethod = = EPrimaryScreenPercentageMethod : : SpatialUpscale & & View . UnscaledViewRect ! = View . ViewRect ) ;
2020-09-24 00:43:27 -04:00
PassSequence . SetEnabled ( EPass : : Tonemap , bUseToneMapper ) ;
PassSequence . SetEnabled ( EPass : : HighResolutionScreenshotMask , bUseHighResolutionScreenshotMask ) ;
# if WITH_EDITOR
PassSequence . SetEnabled ( EPass : : SelectionOutline , GIsEditor & & View . Family - > EngineShowFlags . Selection & & View . Family - > EngineShowFlags . SelectionOutline & & ! View . Family - > EngineShowFlags . Wireframe ) ;
PassSequence . SetEnabled ( EPass : : EditorPrimitive , FSceneRenderer : : ShouldCompositeEditorPrimitives ( View ) ) ;
# else
PassSequence . SetEnabled ( EPass : : SelectionOutline , false ) ;
PassSequence . SetEnabled ( EPass : : EditorPrimitive , false ) ;
# endif
2021-12-17 17:38:18 -05:00
PassSequence . SetEnabled ( EPass : : PrimaryUpscale , PaniniConfig . IsEnabled ( ) | | ( bShouldPrimaryUpscale & & bDisableUpscaleInTonemapper ) ) ;
2020-09-24 00:43:27 -04:00
PassSequence . SetEnabled ( EPass : : Visualize , View . Family - > EngineShowFlags . ShaderComplexity ) ;
PassSequence . SetEnabled ( EPass : : HMDDistortion , View . Family - > EngineShowFlags . StereoRendering & & View . Family - > EngineShowFlags . HMDDistortion ) ;
// Always evaluate custom post processes
// The scene color will be decoded at the first post-process material and output linear color space for the following passes
// bMetalMSAAHDRDecode will be set to false if there is any post-process material exist
auto AddPostProcessMaterialPass = [ & GraphBuilder , & View , & Inputs , & SceneColor , & CustomDepth , & bMetalMSAAHDRDecode , & PassSequence ] ( EBlendableLocation BlendableLocation , bool bLastPass )
2014-03-14 14:13:41 -04:00
{
2020-09-24 00:43:27 -04:00
FPostProcessMaterialInputs PostProcessMaterialInputs ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
if ( BlendableLocation = = BL_AfterTonemapping & & PassSequence . IsEnabled ( EPass : : PostProcessMaterialAfterTonemapping ) )
{
PassSequence . AcceptOverrideIfLastPass ( EPass : : PostProcessMaterialAfterTonemapping , PostProcessMaterialInputs . OverrideOutput ) ;
}
PostProcessMaterialInputs . SetInput ( EPostProcessMaterialInput : : SceneColor , SceneColor ) ;
PostProcessMaterialInputs . CustomDepthTexture = CustomDepth . Texture ;
2022-05-09 15:15:12 -04:00
PostProcessMaterialInputs . bFlipYAxis = IsMobilePostProcessingFlipEnabled ( View ) & & bLastPass ;
2020-09-24 00:43:27 -04:00
PostProcessMaterialInputs . bMetalMSAAHDRDecode = bMetalMSAAHDRDecode ;
PostProcessMaterialInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
const FPostProcessMaterialChain MaterialChain = GetPostProcessMaterialChain ( View , BlendableLocation ) ;
if ( MaterialChain . Num ( ) )
{
SceneColor = AddPostProcessMaterialChain ( GraphBuilder , View , PostProcessMaterialInputs , MaterialChain ) ;
// For solid material, we decode the input color and output the linear color
// For blend material, we force it rendering to an intermediate render target and decode there
bMetalMSAAHDRDecode = false ;
}
} ;
if ( IsPostProcessingEnabled ( View ) )
{
bool bUseSun = View . MobileLightShaft . IsSet ( ) ;
bool bUseBloom = View . FinalPostProcessSettings . BloomIntensity > 0.0f ;
2022-05-18 12:52:55 -04:00
bool bUseBasicEyeAdaptation = bUseEyeAdaptation & & ( AutoExposureMethod = = EAutoExposureMethod : : AEM_Basic ) ;
2020-09-24 00:43:27 -04:00
bool bUseHistogramEyeAdaptation = bUseEyeAdaptation & & ( AutoExposureMethod = = EAutoExposureMethod : : AEM_Histogram ) & &
// Skip if we don't have any exposure range to generate (eye adaptation will clamp).
View . FinalPostProcessSettings . AutoExposureMinBrightness < View . FinalPostProcessSettings . AutoExposureMaxBrightness ;
2014-03-14 14:13:41 -04:00
2021-02-03 14:57:28 -04:00
bool bUseTAA = View . AntiAliasingMethod = = AAM_TemporalAA ;
2021-06-23 11:54:40 -04:00
ensure ( View . AntiAliasingMethod ! = AAM_TSR ) ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
bool bUseDistortion = IsMobileDistortionActive ( View ) ;
bool bUseSeparateTranslucency = IsMobileSeparateTranslucencyActive ( View ) ;
const FPostProcessMaterialChain PostProcessMaterialAfterTonemappingChain = GetPostProcessMaterialChain ( View , BL_AfterTonemapping ) ;
PassSequence . SetEnabled ( EPass : : Distortion , bUseDistortion ) ;
PassSequence . SetEnabled ( EPass : : SunMask , bUseSun | | bUseDof ) ;
PassSequence . SetEnabled ( EPass : : BloomSetup , bUseSun | | bUseMobileDof | | bUseBloom | | bUseBasicEyeAdaptation | | bUseHistogramEyeAdaptation ) ;
PassSequence . SetEnabled ( EPass : : DepthOfField , bUseDof ) ;
PassSequence . SetEnabled ( EPass : : Bloom , bUseBloom ) ;
PassSequence . SetEnabled ( EPass : : EyeAdaptation , bUseEyeAdaptation ) ;
PassSequence . SetEnabled ( EPass : : SunMerge , bUseBloom | | bUseSun ) ;
PassSequence . SetEnabled ( EPass : : SeparateTranslucency , bUseSeparateTranslucency ) ;
2021-02-03 14:57:28 -04:00
PassSequence . SetEnabled ( EPass : : TAA , bUseTAA ) ;
2021-02-18 21:11:17 -04:00
PassSequence . SetEnabled ( EPass : : PostProcessMaterialAfterTonemapping , PostProcessMaterialAfterTonemappingChain . Num ( ) ! = 0 ) ;
2021-02-03 14:57:28 -04:00
PassSequence . SetEnabled ( EPass : : FXAA , View . AntiAliasingMethod = = AAM_FXAA ) ;
2020-09-24 00:43:27 -04:00
PassSequence . Finalize ( ) ;
if ( PassSequence . IsEnabled ( EPass : : Distortion ) )
2014-03-14 14:13:41 -04:00
{
2020-09-24 00:43:27 -04:00
PassSequence . AcceptPass ( EPass : : Distortion ) ;
FMobileDistortionAccumulateInputs DistortionAccumulateInputs ;
DistortionAccumulateInputs . SceneColor = SceneColor ;
2021-03-22 22:21:46 -04:00
FMobileDistortionAccumulateOutputs DistortionAccumulateOutputs = AddMobileDistortionAccumulatePass ( GraphBuilder , Scene , View , DistortionAccumulateInputs ) ;
2020-09-24 00:43:27 -04:00
FMobileDistortionMergeInputs DistortionMergeInputs ;
DistortionMergeInputs . SceneColor = SceneColor ;
DistortionMergeInputs . DistortionAccumulate = DistortionAccumulateOutputs . DistortionAccumulate ;
SceneColor = AddMobileDistortionMergePass ( GraphBuilder , View , DistortionMergeInputs ) ;
}
AddPostProcessMaterialPass ( BL_BeforeTranslucency , false ) ;
// Optional fixed pass processes
if ( PassSequence . IsEnabled ( EPass : : SunMask ) )
{
PassSequence . AcceptPass ( EPass : : SunMask ) ;
2021-06-11 13:47:20 -04:00
bool bUseDepthTexture = SceneColor . Texture - > Desc . Format = = PF_FloatR11G11B10 & & ! SceneDepthAux . IsValid ( ) ;
2020-09-24 00:43:27 -04:00
FMobileSunMaskInputs SunMaskInputs ;
SunMaskInputs . bUseDepthTexture = bUseDepthTexture ;
SunMaskInputs . bUseDof = bUseDof ;
SunMaskInputs . bUseMetalMSAAHDRDecode = bMetalMSAAHDRDecode ;
SunMaskInputs . bUseSun = bUseSun ;
SunMaskInputs . SceneColor = SceneColor ;
SunMaskInputs . SceneTextures = Inputs . SceneTextures ;
// Convert depth to {circle of confusion, sun shaft intensity}
FMobileSunMaskOutputs SunMaskOutputs = AddMobileSunMaskPass ( GraphBuilder , View , SunMaskInputs ) ;
PostProcessSunShaftAndDof = SunMaskOutputs . SunMask ;
2022-01-05 20:41:17 +00:00
// The scene color will be decoded after sun mask pass and output to linear color space for following passes if sun shaft enabled
// set bMetalMSAAHDRDecode to false if sun shaft enabled
2022-01-06 16:44:09 +00:00
if ( bMetalMSAAHDRDecode & & bUseSun )
{
SceneColor = SunMaskOutputs . SceneColor ;
bMetalMSAAHDRDecode = false ;
}
2020-09-24 00:43:27 -04:00
//@todo Ronin sunmask pass isnt clipping to image only.
}
FMobileBloomSetupOutputs BloomSetupOutputs ;
if ( PassSequence . IsEnabled ( EPass : : BloomSetup ) )
{
PassSequence . AcceptPass ( EPass : : BloomSetup ) ;
bool bHasEyeAdaptationPass = ( bUseBasicEyeAdaptation | | bUseHistogramEyeAdaptation ) ;
FMobileBloomSetupInputs BloomSetupInputs ;
BloomSetupInputs . bUseBloom = bUseBloom ;
BloomSetupInputs . bUseDof = bUseMobileDof ;
BloomSetupInputs . bUseEyeAdaptation = bHasEyeAdaptationPass ;
BloomSetupInputs . bUseMetalMSAAHDRDecode = bMetalMSAAHDRDecode ;
BloomSetupInputs . bUseSun = bUseSun ;
BloomSetupInputs . SceneColor = SceneColor ;
BloomSetupInputs . SunShaftAndDof = PostProcessSunShaftAndDof ;
BloomSetupOutputs = AddMobileBloomSetupPass ( GraphBuilder , View , EyeAdaptationParameters , BloomSetupInputs ) ;
2014-03-14 14:13:41 -04:00
}
2020-09-24 00:43:27 -04:00
if ( PassSequence . IsEnabled ( EPass : : DepthOfField ) )
2014-03-14 14:13:41 -04:00
{
2020-09-24 00:43:27 -04:00
PassSequence . AcceptPass ( EPass : : DepthOfField ) ;
if ( bUseMobileDof )
2018-10-11 23:52:27 -04:00
{
2020-09-24 00:43:27 -04:00
// Near dilation circle of confusion size.
// Samples at 1/16 area, writes to 1/16 area.
FMobileDofNearInputs DofNearInputs ;
DofNearInputs . BloomSetup_SunShaftAndDof = BloomSetupOutputs . SunShaftAndDof ;
DofNearInputs . bUseSun = bUseSun ;
2014-03-14 14:13:41 -04:00
2020-09-24 00:43:27 -04:00
FMobileDofNearOutputs DofNearOutputs = AddMobileDofNearPass ( GraphBuilder , View , DofNearInputs ) ;
2018-09-25 10:11:35 -04:00
2020-09-24 00:43:27 -04:00
// DOF downsample pass.
// Samples at full resolution, writes to 1/4 area.
FMobileDofDownInputs DofDownInputs ;
DofDownInputs . bUseSun = bUseSun ;
DofDownInputs . DofNear = DofNearOutputs . DofNear ;
DofDownInputs . SceneColor = SceneColor ;
DofDownInputs . SunShaftAndDof = PostProcessSunShaftAndDof ;
FMobileDofDownOutputs DofDownOutputs = AddMobileDofDownPass ( GraphBuilder , View , DofDownInputs ) ;
// DOF blur pass.
// Samples at 1/4 area, writes to 1/4 area.
FMobileDofBlurInputs DofBlurInputs ;
DofBlurInputs . DofDown = DofDownOutputs . DofDown ;
DofBlurInputs . DofNear = DofNearOutputs . DofNear ;
FMobileDofBlurOutputs DofBlurOutputs = AddMobileDofBlurPass ( GraphBuilder , View , DofBlurInputs ) ;
DofOutput = DofBlurOutputs . DofBlur ;
2021-02-01 17:58:35 -04:00
FMobileIntegrateDofInputs IntegrateDofInputs ;
IntegrateDofInputs . DofBlur = DofBlurOutputs . DofBlur ;
IntegrateDofInputs . SceneColor = SceneColor ;
IntegrateDofInputs . SunShaftAndDof = PostProcessSunShaftAndDof ;
2020-06-23 18:40:00 -04:00
2021-02-01 17:58:35 -04:00
SceneColor = AddMobileIntegrateDofPass ( GraphBuilder , View , IntegrateDofInputs ) ;
2018-11-14 19:05:13 -05:00
}
else
{
2020-09-24 00:43:27 -04:00
bool bDepthOfField = IsGaussianActive ( View ) ;
2019-01-08 11:38:48 -05:00
2020-09-24 00:43:27 -04:00
if ( bDepthOfField )
2019-01-08 11:38:48 -05:00
{
2020-09-24 00:43:27 -04:00
float FarSize = View . FinalPostProcessSettings . DepthOfFieldFarBlurSize ;
float NearSize = View . FinalPostProcessSettings . DepthOfFieldNearBlurSize ;
const float MaxSize = CVarDepthOfFieldMaxSize . GetValueOnRenderThread ( ) ;
FarSize = FMath : : Min ( FarSize , MaxSize ) ;
NearSize = FMath : : Min ( NearSize , MaxSize ) ;
const bool bFar = FarSize > = 0.01f ;
const bool bNear = NearSize > = CVarDepthOfFieldNearBlurSizeThreshold . GetValueOnRenderThread ( ) ;
const bool bCombinedNearFarPass = bFar & & bNear ;
if ( bFar | | bNear )
{
// AddGaussianDofBlurPass produces a blurred image from setup or potentially from taa result.
auto AddGaussianDofBlurPass = [ & GraphBuilder , & View ] ( FScreenPassTexture & DOFSetup , bool bFarPass , float KernelSizePercent )
{
const TCHAR * BlurDebugX = bFarPass ? TEXT ( " FarDOFBlurX " ) : TEXT ( " NearDOFBlurX " ) ;
const TCHAR * BlurDebugY = bFarPass ? TEXT ( " FarDOFBlurY " ) : TEXT ( " NearDOFBlurY " ) ;
FGaussianBlurInputs GaussianBlurInputs ;
GaussianBlurInputs . NameX = BlurDebugX ;
GaussianBlurInputs . NameY = BlurDebugY ;
GaussianBlurInputs . Filter = DOFSetup ;
GaussianBlurInputs . TintColor = FLinearColor : : White ;
2021-12-07 09:55:09 -05:00
GaussianBlurInputs . CrossCenterWeight = FVector2f : : ZeroVector ;
2020-09-24 00:43:27 -04:00
GaussianBlurInputs . KernelSizePercent = KernelSizePercent ;
return AddGaussianBlurPass ( GraphBuilder , View , GaussianBlurInputs ) ;
} ;
FMobileDofSetupInputs DofSetupInputs ;
DofSetupInputs . bFarBlur = bFar ;
DofSetupInputs . bNearBlur = bNear ;
DofSetupInputs . SceneColor = SceneColor ;
DofSetupInputs . SunShaftAndDof = PostProcessSunShaftAndDof ;
FMobileDofSetupOutputs DofSetupOutputs = AddMobileDofSetupPass ( GraphBuilder , View , DofSetupInputs ) ;
FScreenPassTexture DofFarBlur , DofNearBlur ;
if ( bFar )
{
DofFarBlur = AddGaussianDofBlurPass ( DofSetupOutputs . DofSetupFar , true , FarSize ) ;
}
if ( bNear )
{
DofNearBlur = AddGaussianDofBlurPass ( DofSetupOutputs . DofSetupNear , false , NearSize ) ;
}
FMobileDofRecombineInputs DofRecombineInputs ;
DofRecombineInputs . bFarBlur = bFar ;
DofRecombineInputs . bNearBlur = bNear ;
DofRecombineInputs . DofFarBlur = DofFarBlur ;
DofRecombineInputs . DofNearBlur = DofNearBlur ;
DofRecombineInputs . SceneColor = SceneColor ;
DofRecombineInputs . SunShaftAndDof = PostProcessSunShaftAndDof ;
SceneColor = AddMobileDofRecombinePass ( GraphBuilder , View , DofRecombineInputs ) ;
}
}
}
}
// Bloom.
FScreenPassTexture BloomUpOutputs ;
if ( PassSequence . IsEnabled ( EPass : : Bloom ) )
{
PassSequence . AcceptPass ( EPass : : Bloom ) ;
auto AddBloomDownPass = [ & GraphBuilder , & View ] ( FScreenPassTexture & BloomDownSource , float BloomDownScale )
{
FMobileBloomDownInputs BloomDownInputs ;
BloomDownInputs . BloomDownScale = BloomDownScale ;
BloomDownInputs . BloomDownSource = BloomDownSource ;
return AddMobileBloomDownPass ( GraphBuilder , View , BloomDownInputs ) ;
} ;
float BloomDownScale = 0.66f * 4.0f ;
FScreenPassTexture PostProcessDownsample_Bloom [ 4 ] ;
for ( int32 i = 0 ; i < 4 ; + + i )
{
PostProcessDownsample_Bloom [ i ] = AddBloomDownPass ( i = = 0 ? BloomSetupOutputs . Bloom : PostProcessDownsample_Bloom [ i - 1 ] , BloomDownScale ) ;
}
const FFinalPostProcessSettings & Settings = View . FinalPostProcessSettings ;
2021-09-22 10:01:48 -04:00
auto AddBloomUpPass = [ & GraphBuilder , & View ] ( FScreenPassTexture & BloomUpSourceA , FScreenPassTexture & BloomUpSourceB , float BloomSourceScale , const FVector4f & TintA , const FVector4f & TintB )
2020-09-24 00:43:27 -04:00
{
FMobileBloomUpInputs BloomUpInputs ;
BloomUpInputs . BloomUpSourceA = BloomUpSourceA ;
BloomUpInputs . BloomUpSourceB = BloomUpSourceB ;
2022-02-02 01:43:41 -05:00
BloomUpInputs . ScaleAB = FVector2D ( BloomSourceScale , BloomSourceScale ) ;
2020-09-24 00:43:27 -04:00
BloomUpInputs . TintA = TintA ;
BloomUpInputs . TintB = TintB ;
return AddMobileBloomUpPass ( GraphBuilder , View , BloomUpInputs ) ;
} ;
float BloomUpScale = 0.66f * 2.0f ;
// Upsample by 2
{
2021-09-22 10:01:48 -04:00
FVector4f TintA = FVector4f ( Settings . Bloom4Tint . R , Settings . Bloom4Tint . G , Settings . Bloom4Tint . B , 0.0f ) ;
FVector4f TintB = FVector4f ( Settings . Bloom5Tint . R , Settings . Bloom5Tint . G , Settings . Bloom5Tint . B , 0.0f ) ;
2020-09-24 00:43:27 -04:00
TintA * = Settings . BloomIntensity ;
TintB * = Settings . BloomIntensity ;
BloomUpOutputs = AddBloomUpPass ( PostProcessDownsample_Bloom [ 2 ] , PostProcessDownsample_Bloom [ 3 ] , BloomUpScale , TintA , TintB ) ;
}
// Upsample by 2
{
2021-09-22 10:01:48 -04:00
FVector4f TintA = FVector4f ( Settings . Bloom3Tint . R , Settings . Bloom3Tint . G , Settings . Bloom3Tint . B , 0.0f ) ;
2020-09-24 00:43:27 -04:00
TintA * = Settings . BloomIntensity ;
2021-09-22 10:01:48 -04:00
FVector4f TintB = FVector4f ( 1.0f , 1.0f , 1.0f , 0.0f ) ;
2020-09-24 00:43:27 -04:00
BloomUpOutputs = AddBloomUpPass ( PostProcessDownsample_Bloom [ 1 ] , BloomUpOutputs , BloomUpScale , TintA , TintB ) ;
}
// Upsample by 2
{
2021-09-22 10:01:48 -04:00
FVector4f TintA = FVector4f ( Settings . Bloom2Tint . R , Settings . Bloom2Tint . G , Settings . Bloom2Tint . B , 0.0f ) ;
2020-09-24 00:43:27 -04:00
TintA * = Settings . BloomIntensity ;
// Scaling Bloom2 by extra factor to match filter area difference between PC default and mobile.
TintA * = 0.5 ;
2021-09-22 10:01:48 -04:00
FVector4f TintB = FVector4f ( 1.0f , 1.0f , 1.0f , 0.0f ) ;
2020-09-24 00:43:27 -04:00
BloomUpOutputs = AddBloomUpPass ( PostProcessDownsample_Bloom [ 0 ] , BloomUpOutputs , BloomUpScale , TintA , TintB ) ;
}
}
if ( PassSequence . IsEnabled ( EPass : : EyeAdaptation ) )
{
PassSequence . AcceptPass ( EPass : : EyeAdaptation ) ;
FMobileEyeAdaptationSetupInputs EyeAdaptationSetupInputs ;
EyeAdaptationSetupInputs . bUseBasicEyeAdaptation = bUseBasicEyeAdaptation ;
EyeAdaptationSetupInputs . bUseHistogramEyeAdaptation = bUseHistogramEyeAdaptation ;
EyeAdaptationSetupInputs . BloomSetup_EyeAdaptation = FScreenPassTexture ( TryRegisterExternalTexture ( GraphBuilder , View . PrevViewInfo . MobileBloomSetup_EyeAdaptation ) ) ;
if ( ! EyeAdaptationSetupInputs . BloomSetup_EyeAdaptation . IsValid ( ) )
{
EyeAdaptationSetupInputs . BloomSetup_EyeAdaptation = BloomSetupOutputs . EyeAdaptation ;
}
FMobileEyeAdaptationSetupOutputs EyeAdaptationSetupOutputs = AddMobileEyeAdaptationSetupPass ( GraphBuilder , View , EyeAdaptationParameters , EyeAdaptationSetupInputs ) ;
FMobileEyeAdaptationInputs EyeAdaptationInputs ;
EyeAdaptationInputs . bUseBasicEyeAdaptation = bUseBasicEyeAdaptation ;
EyeAdaptationInputs . bUseHistogramEyeAdaptation = bUseHistogramEyeAdaptation ;
EyeAdaptationInputs . EyeAdaptationSetupSRV = EyeAdaptationSetupOutputs . EyeAdaptationSetupSRV ;
2021-05-17 05:39:52 -04:00
EyeAdaptationInputs . EyeAdaptationBuffer = LastEyeAdaptationBuffer ;
2020-09-24 00:43:27 -04:00
AddMobileEyeAdaptationPass ( GraphBuilder , View , EyeAdaptationParameters , EyeAdaptationInputs ) ;
2021-05-17 05:39:52 -04:00
if ( ( bUseBasicEyeAdaptation | | bUseHistogramEyeAdaptation ) & & View . ViewState & & ! View . bStatePrevViewInfoIsReadOnly )
{
GraphBuilder . QueueTextureExtraction ( BloomSetupOutputs . EyeAdaptation . Texture , & View . ViewState - > PrevFrameViewInfo . MobileBloomSetup_EyeAdaptation ) ;
}
2020-09-24 00:43:27 -04:00
}
if ( PassSequence . IsEnabled ( EPass : : SunMerge ) )
{
PassSequence . AcceptPass ( EPass : : SunMerge ) ;
FScreenPassTexture SunBlurOutputs ;
if ( bUseSun )
{
FMobileSunAlphaInputs SunAlphaInputs ;
SunAlphaInputs . BloomSetup_SunShaftAndDof = BloomSetupOutputs . SunShaftAndDof ;
SunAlphaInputs . bUseMobileDof = bUseMobileDof ;
FScreenPassTexture SunAlphaOutputs = AddMobileSunAlphaPass ( GraphBuilder , View , SunAlphaInputs ) ;
FMobileSunBlurInputs SunBlurInputs ;
SunBlurInputs . SunAlpha = SunAlphaOutputs ;
SunBlurOutputs = AddMobileSunBlurPass ( GraphBuilder , View , SunBlurInputs ) ;
}
FMobileSunMergeInputs SunMergeInputs ;
SunMergeInputs . BloomSetup_Bloom = BloomSetupOutputs . Bloom ;
SunMergeInputs . BloomUp = BloomUpOutputs ;
SunMergeInputs . SunBlur = SunBlurOutputs ;
SunMergeInputs . bUseBloom = bUseBloom ;
SunMergeInputs . bUseSun = bUseSun ;
BloomOutput = AddMobileSunMergePass ( GraphBuilder , View , SunMergeInputs ) ;
}
// mobile separate translucency
if ( PassSequence . IsEnabled ( EPass : : SeparateTranslucency ) )
{
PassSequence . AcceptPass ( EPass : : SeparateTranslucency ) ;
FMobileSeparateTranslucencyInputs SeparateTranslucencyInputs ;
SeparateTranslucencyInputs . SceneColor = SceneColor ;
SeparateTranslucencyInputs . SceneDepth = SceneDepth ;
2022-04-19 05:21:40 -04:00
AddMobileSeparateTranslucencyPass ( GraphBuilder , Scene , View , SeparateTranslucencyInputs ) ;
2020-09-24 00:43:27 -04:00
}
2020-11-24 18:42:39 -04:00
AddPostProcessMaterialPass ( BL_BeforeTonemapping , false ) ;
2021-02-18 21:11:17 -04:00
// Temporal Anti-aliasing. Also may perform a temporal upsample from primary to secondary view rect.
if ( PassSequence . IsEnabled ( EPass : : TAA ) )
{
PassSequence . AcceptPass ( EPass : : TAA ) ;
EMainTAAPassConfig TAAConfig = ITemporalUpscaler : : GetMainTAAPassConfig ( View ) ;
checkSlow ( TAAConfig ! = EMainTAAPassConfig : : Disabled ) ;
const ITemporalUpscaler * UpscalerToUse = ( TAAConfig = = EMainTAAPassConfig : : ThirdParty ) ? View . Family - > GetTemporalUpscalerInterface ( ) : ITemporalUpscaler : : GetDefaultTemporalUpscaler ( ) ;
const TCHAR * UpscalerName = UpscalerToUse - > GetDebugName ( ) ;
// Standard event scope for temporal upscaler to have all profiling information not matter what, and with explicit detection of third party.
RDG_EVENT_SCOPE_CONDITIONAL (
GraphBuilder ,
TAAConfig = = EMainTAAPassConfig : : ThirdParty ,
" ThirdParty %s %dx%d -> %dx%d " ,
UpscalerToUse - > GetDebugName ( ) ,
View . ViewRect . Width ( ) , View . ViewRect . Height ( ) ,
View . GetSecondaryViewRectSize ( ) . X , View . GetSecondaryViewRectSize ( ) . Y ) ;
ITemporalUpscaler : : FPassInputs UpscalerPassInputs ;
UpscalerPassInputs . SceneColorTexture = SceneColor . Texture ;
UpscalerPassInputs . SceneDepthTexture = SceneDepth . Texture ;
UpscalerPassInputs . SceneVelocityTexture = Velocity . Texture ;
2021-12-03 13:05:09 -05:00
ITemporalUpscaler : : FOutputs Outputs = UpscalerToUse - > AddPasses (
2021-02-18 21:11:17 -04:00
GraphBuilder ,
View ,
2021-12-03 13:05:09 -05:00
UpscalerPassInputs ) ;
2021-03-05 19:27:14 -04:00
2021-12-03 13:05:09 -05:00
SceneColor = Outputs . FullRes ;
2021-02-18 21:11:17 -04:00
}
2020-09-24 00:43:27 -04:00
}
else
{
PassSequence . SetEnabled ( EPass : : Distortion , false ) ;
PassSequence . SetEnabled ( EPass : : SunMask , false ) ;
PassSequence . SetEnabled ( EPass : : BloomSetup , false ) ;
PassSequence . SetEnabled ( EPass : : DepthOfField , false ) ;
PassSequence . SetEnabled ( EPass : : Bloom , false ) ;
PassSequence . SetEnabled ( EPass : : EyeAdaptation , false ) ;
PassSequence . SetEnabled ( EPass : : SunMerge , false ) ;
PassSequence . SetEnabled ( EPass : : SeparateTranslucency , false ) ;
PassSequence . SetEnabled ( EPass : : TAA , false ) ;
PassSequence . SetEnabled ( EPass : : PostProcessMaterialAfterTonemapping , false ) ;
2021-03-05 19:27:14 -04:00
PassSequence . SetEnabled ( EPass : : FXAA , false ) ;
2020-09-24 00:43:27 -04:00
PassSequence . Finalize ( ) ;
}
if ( PassSequence . IsEnabled ( EPass : : Tonemap ) )
{
bool bHDRTonemapperOutput = false ;
if ( ! BloomOutput . IsValid ( ) )
{
BloomOutput = BlackAlphaOneDummy ;
}
2021-02-01 17:58:35 -04:00
bool bDoGammaOnly = false ;
FRDGTextureRef ColorGradingTexture = nullptr ;
if ( IStereoRendering : : IsAPrimaryView ( View ) )
2020-09-24 00:43:27 -04:00
{
2021-02-01 17:58:35 -04:00
ColorGradingTexture = AddCombineLUTPass ( GraphBuilder , View ) ;
}
// We can re-use the color grading texture from the primary view.
else if ( View . GetTonemappingLUT ( ) )
{
ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , View . GetTonemappingLUT ( ) ) ;
2016-03-16 21:16:51 -04:00
}
2020-09-24 00:43:27 -04:00
else
2014-03-14 14:13:41 -04:00
{
2021-02-01 17:58:35 -04:00
const FViewInfo * PrimaryView = static_cast < const FViewInfo * > ( View . Family - > Views [ 0 ] ) ;
ColorGradingTexture = TryRegisterExternalTexture ( GraphBuilder , PrimaryView - > GetTonemappingLUT ( ) ) ;
2014-03-14 14:13:41 -04:00
}
2016-12-08 22:53:00 -05:00
2021-02-01 17:58:35 -04:00
FTonemapInputs TonemapperInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Tonemap , TonemapperInputs . OverrideOutput ) ;
// This is the view family render target.
if ( TonemapperInputs . OverrideOutput . Texture )
{
FIntRect OutputViewRect ;
if ( View . PrimaryScreenPercentageMethod = = EPrimaryScreenPercentageMethod : : RawOutput )
{
OutputViewRect = View . ViewRect ;
}
else
{
OutputViewRect = View . UnscaledViewRect ;
}
ERenderTargetLoadAction OutputLoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
TonemapperInputs . OverrideOutput . ViewRect = OutputViewRect ;
TonemapperInputs . OverrideOutput . LoadAction = OutputLoadAction ;
}
TonemapperInputs . SceneColor = SceneColor ;
2021-12-03 17:20:45 -05:00
TonemapperInputs . Bloom = BloomOutput ;
2021-09-01 11:22:04 -04:00
TonemapperInputs . EyeAdaptationParameters = & EyeAdaptationParameters ;
2021-02-01 17:58:35 -04:00
TonemapperInputs . EyeAdaptationTexture = nullptr ;
TonemapperInputs . ColorGradingTexture = ColorGradingTexture ;
2021-06-11 13:47:20 -04:00
TonemapperInputs . bWriteAlphaChannel = View . AntiAliasingMethod = = AAM_FXAA | | IsPostProcessingWithAlphaChannelSupported ( ) | | bUseMobileDof | | IsMobilePropagateAlphaEnabled ( View . GetShaderPlatform ( ) ) ;
2022-05-09 15:15:12 -04:00
TonemapperInputs . bFlipYAxis = IsMobilePostProcessingFlipEnabled ( View ) & & ! PassSequence . IsEnabled ( EPass : : PostProcessMaterialAfterTonemapping ) ;
2021-02-01 17:58:35 -04:00
TonemapperInputs . bOutputInHDR = bHDRTonemapperOutput ;
TonemapperInputs . bGammaOnly = bDoGammaOnly ;
TonemapperInputs . bMetalMSAAHDRDecode = bMetalMSAAHDRDecode ;
2021-05-17 05:39:52 -04:00
TonemapperInputs . EyeAdaptationBuffer = bUseEyeAdaptation ? LastEyeAdaptationBuffer : nullptr ;
2021-02-01 17:58:35 -04:00
SceneColor = AddTonemapPass ( GraphBuilder , View , TonemapperInputs ) ;
2020-09-24 00:43:27 -04:00
//The output color should been decoded to linear space after tone mapper apparently
bMetalMSAAHDRDecode = false ;
}
2019-09-17 11:58:25 -04:00
2020-09-24 00:43:27 -04:00
if ( IsPostProcessingEnabled ( View ) )
{
AddPostProcessMaterialPass ( BL_AfterTonemapping , true ) ;
2017-10-24 10:14:07 -04:00
2021-02-03 14:57:28 -04:00
if ( PassSequence . IsEnabled ( EPass : : FXAA ) )
{
FFXAAInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : FXAA , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Quality = GetFXAAQuality ( ) ;
SceneColor = AddFXAAPass ( GraphBuilder , View , PassInputs ) ;
}
2014-03-14 14:13:41 -04:00
}
2020-09-24 00:43:27 -04:00
if ( PassSequence . IsEnabled ( EPass : : HighResolutionScreenshotMask ) )
{
FHighResolutionScreenshotMaskInputs HighResolutionScreenshotMaskInputs ;
HighResolutionScreenshotMaskInputs . SceneColor = SceneColor ;
2022-01-18 02:20:35 -05:00
HighResolutionScreenshotMaskInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
HighResolutionScreenshotMaskInputs . Material = View . FinalPostProcessSettings . HighResScreenshotMaterial ;
HighResolutionScreenshotMaskInputs . MaskMaterial = View . FinalPostProcessSettings . HighResScreenshotMaskMaterial ;
HighResolutionScreenshotMaskInputs . CaptureRegionMaterial = View . FinalPostProcessSettings . HighResScreenshotCaptureRegionMaterial ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : HighResolutionScreenshotMask , HighResolutionScreenshotMaskInputs . OverrideOutput ) ;
2020-09-24 00:43:27 -04:00
HighResolutionScreenshotMaskInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
SceneColor = AddHighResolutionScreenshotMaskPass ( GraphBuilder , View , HighResolutionScreenshotMaskInputs ) ;
}
# if WITH_EDITOR
// Show the selection outline if it is in the editor and we aren't in wireframe
// If the engine is in demo mode and game view is on we also do not show the selection outline
if ( PassSequence . IsEnabled ( EPass : : SelectionOutline ) )
{
FSelectionOutlineInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : SelectionOutline , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
2022-02-20 23:08:33 -05:00
PassInputs . SceneTextures = GetSceneTextureShaderParameters ( Inputs . SceneTextures ) ;
2020-09-24 00:43:27 -04:00
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
// TODO: Nanite - pipe through results
SceneColor = AddSelectionOutlinePass ( GraphBuilder , View , PassInputs , nullptr ) ;
}
if ( PassSequence . IsEnabled ( EPass : : EditorPrimitive ) )
{
FEditorPrimitiveInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : EditorPrimitive , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . SceneDepth = SceneDepth ;
PassInputs . BasePassType = FEditorPrimitiveInputs : : EBasePassType : : Mobile ;
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
2021-01-14 05:23:34 -04:00
SceneColor = AddEditorPrimitivePass ( GraphBuilder , View , PassInputs , InstanceCullingManager ) ;
2020-09-24 00:43:27 -04:00
}
# endif
// Apply ScreenPercentage
2021-03-05 19:27:14 -04:00
if ( PassSequence . IsEnabled ( EPass : : PrimaryUpscale ) )
2020-09-24 00:43:27 -04:00
{
2021-07-22 17:20:27 -04:00
ISpatialUpscaler : : FInputs PassInputs ;
2020-09-24 00:43:27 -04:00
PassSequence . AcceptOverrideIfLastPass ( EPass : : PrimaryUpscale , PassInputs . OverrideOutput ) ;
PassInputs . Stage = EUpscaleStage : : PrimaryToOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
2021-07-22 17:20:27 -04:00
if ( const ISpatialUpscaler * CustomUpscaler = View . Family - > GetPrimarySpatialUpscalerInterface ( ) )
{
RDG_EVENT_SCOPE (
GraphBuilder ,
" ThirdParty PrimaryUpscale %s %dx%d -> %dx%d " ,
CustomUpscaler - > GetDebugName ( ) ,
SceneColor . ViewRect . Width ( ) , SceneColor . ViewRect . Height ( ) ,
View . UnscaledViewRect . Width ( ) , View . UnscaledViewRect . Height ( ) ) ;
SceneColor = CustomUpscaler - > AddPasses ( GraphBuilder , View , PassInputs ) ;
if ( PassSequence . IsLastPass ( EPass : : PrimaryUpscale ) )
{
check ( SceneColor = = ViewFamilyOutput ) ;
}
else
{
check ( SceneColor . ViewRect . Size ( ) = = View . UnscaledViewRect . Size ( ) ) ;
}
}
else
{
SceneColor = ISpatialUpscaler : : AddDefaultUpscalePass ( GraphBuilder , View , PassInputs , EUpscaleMethod : : Bilinear , PaniniConfig ) ;
}
2020-09-24 00:43:27 -04:00
}
if ( PassSequence . IsEnabled ( EPass : : Visualize ) )
{
FScreenPassRenderTarget OverrideOutput ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : Visualize , OverrideOutput ) ;
switch ( View . Family - > GetDebugViewShaderMode ( ) )
{
case DVSM_QuadComplexity :
{
float ComplexityScale = 1.f / ( float ) ( GEngine - > QuadComplexityColors . Num ( ) - 1 ) / NormalizedQuadComplexityValue ; // .1f comes from the values used in LightAccumulator_GetResult
FVisualizeComplexityInputs PassInputs ;
PassInputs . OverrideOutput = OverrideOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Colors = GEngine - > QuadComplexityColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Stair ;
PassInputs . ComplexityScale = ComplexityScale ;
PassInputs . bDrawLegend = true ;
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
break ;
}
case DVSM_ShaderComplexity :
case DVSM_ShaderComplexityContainedQuadOverhead :
case DVSM_ShaderComplexityBleedingQuadOverhead :
{
FVisualizeComplexityInputs PassInputs ;
PassInputs . OverrideOutput = OverrideOutput ;
PassInputs . SceneColor = SceneColor ;
PassInputs . Colors = GEngine - > ShaderComplexityColors ;
PassInputs . ColorSamplingMethod = FVisualizeComplexityInputs : : EColorSamplingMethod : : Ramp ;
PassInputs . ComplexityScale = 1.0f ;
PassInputs . bDrawLegend = true ;
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
SceneColor = AddVisualizeComplexityPass ( GraphBuilder , View , PassInputs ) ;
break ;
}
default :
ensure ( false ) ;
break ;
}
}
if ( PassSequence . IsEnabled ( EPass : : HMDDistortion ) )
{
FHMDDistortionInputs PassInputs ;
PassSequence . AcceptOverrideIfLastPass ( EPass : : HMDDistortion , PassInputs . OverrideOutput ) ;
PassInputs . SceneColor = SceneColor ;
PassInputs . OverrideOutput . LoadAction = View . IsFirstInFamily ( ) ? ERenderTargetLoadAction : : EClear : ERenderTargetLoadAction : : ELoad ;
SceneColor = AddHMDDistortionPass ( GraphBuilder , View , PassInputs ) ;
}
2014-03-14 14:13:41 -04:00
}
2016-04-13 21:24:38 -04:00
2020-11-12 13:39:39 -04:00
FRDGTextureRef AddProcessPlanarReflectionPass (
FRDGBuilder & GraphBuilder ,
const FViewInfo & View ,
FRDGTextureRef SceneColorTexture )
2016-04-13 21:24:38 -04:00
{
2019-09-17 11:58:25 -04:00
FSceneViewState * ViewState = View . ViewState ;
const EAntiAliasingMethod AntiAliasingMethod = View . AntiAliasingMethod ;
2021-06-23 11:54:40 -04:00
if ( IsTemporalAccumulationBasedMethod ( AntiAliasingMethod ) )
2016-04-13 21:24:38 -04:00
{
2019-09-17 11:58:25 -04:00
check ( ViewState ) ;
2016-04-13 21:24:38 -04:00
UE5_MAIN: Multi-view-family scene renderer refactor, part 2. Move FSceneTextures singleton out of RDG blackboard and FSceneTexturesConfig global variable singleton, into FViewFamilyInfo. This is necessary to allow multiple view families to render in a single render graph and a single scene renderer call.
* Existing calls to CreateSceneTextureShaderParameters and similar functions use "GetSceneTexturesChecked", which allows for the possibility that they are reached in a code path where scene textures haven't been initialized, and nullptr is returned instead of asserting. The shader parameter setup functions then fill in dummy defaults for that case. The goal was to precisely match the original behavior, which queried the RDG blackboard, and gracefully handled null if scene textures weren't there. This definitely appears to occur in FNiagaraGpuComputeDispatch::ProcessPendingTicksFlush, which can be called with a dummy scene with no scene textures. In the future, I may change this so dummy defaults are filled in for FSceneTextures at construction time, so the structure is never in an uninitialized state, but I would like to set up a test case for the Niagara code path before doing that, and the checks aren't harmful in the meantime.
* I marked as deprecated global functions which query values from FSceneTexturesConfig, but they'll still work with the caveat that if you use multi-view-family rendering, the results will be indeterminate (whatever view family rendered last). There was only one case outside the scene renderer that accessed the globals (depth clear value), which I removed, noting that there is nowhere in the code where we modify the depth clear value from its global default. I would like to permanently deprecate or remove these at some point. Display Cluster is the only code that's currently using the multi-view-family code path, and as a new (still incomplete) feature, third party code can't be using it, and won't be affected.
#jira NONE
#rb chris.kulla zach.bethel mihnea.balta
#preflight 6261aca76119a1a496bd2644
[CL 19873983 by jason hoerner in ue5-main branch]
2022-04-22 17:33:02 -04:00
FSceneTextureParameters SceneTextures = GetSceneTextureParameters ( GraphBuilder , View ) ;
2016-04-13 21:24:38 -04:00
2019-09-17 11:58:25 -04:00
const FTemporalAAHistory & InputHistory = View . PrevViewInfo . TemporalAAHistory ;
FTemporalAAHistory * OutputHistory = & ViewState - > PrevFrameViewInfo . TemporalAAHistory ;
2018-05-23 21:04:31 -04:00
2019-09-17 11:58:25 -04:00
FTAAPassParameters Parameters ( View ) ;
2020-09-24 00:43:27 -04:00
Parameters . SceneDepthTexture = SceneTextures . SceneDepthTexture ;
2020-08-23 00:00:09 -04:00
// Planar reflections don't support velocity.
Parameters . SceneVelocityTexture = nullptr ;
2020-11-12 13:39:39 -04:00
Parameters . SceneColorInput = SceneColorTexture ;
2016-04-13 21:24:38 -04:00
2019-10-01 13:03:04 -04:00
FTAAOutputs PassOutputs = AddTemporalAAPass (
2019-09-17 11:58:25 -04:00
GraphBuilder ,
View ,
Parameters ,
InputHistory ,
OutputHistory ) ;
2016-04-13 21:24:38 -04:00
2020-11-12 13:39:39 -04:00
return PassOutputs . SceneColor ;
2019-09-17 11:58:25 -04:00
}
else
{
2020-11-12 13:39:39 -04:00
return SceneColorTexture ;
2016-04-13 21:24:38 -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
}
2021-10-12 21:21:22 -04:00
# if DEBUG_POST_PROCESS_VOLUME_ENABLE
FScreenPassTexture AddFinalPostProcessDebugInfoPasses ( FRDGBuilder & GraphBuilder , const FViewInfo & View , FScreenPassTexture & ScreenPassSceneColor )
{
RDG_EVENT_SCOPE ( GraphBuilder , " FinalPostProcessDebugInfo " ) ;
FRDGTextureRef SceneColor = ScreenPassSceneColor . Texture ;
AddDrawCanvasPass ( GraphBuilder , RDG_EVENT_NAME ( " PostProcessDebug " ) , View , FScreenPassRenderTarget ( SceneColor , View . ViewRect , ERenderTargetLoadAction : : ELoad ) ,
[ & View ] ( FCanvas & Canvas )
{
FLinearColor TextColor ( FLinearColor : : White ) ;
FLinearColor GrayTextColor ( FLinearColor : : Gray ) ;
FLinearColor GreenTextColor ( FLinearColor : : Green ) ;
FString Text ;
const float ViewPortWidth = float ( View . ViewRect . Width ( ) ) ;
const float ViewPortHeight = float ( View . ViewRect . Height ( ) ) ;
const float CRHeight = 20.0f ;
const float PrintX_CR = ViewPortWidth * 0.1f ;
float PrintX = PrintX_CR ;
float PrintY = ViewPortHeight * 0.2f ;
Text = FString : : Printf ( TEXT ( " Post-processing volume debug (count = %i) " ) , View . FinalPostProcessDebugInfo . Num ( ) ) ;
Canvas . DrawShadowedString ( PrintX , PrintY , * Text , GetStatsFont ( ) , GreenTextColor ) ; PrintX = PrintX_CR ; PrintY + = CRHeight * 1.5 ;
Canvas . DrawShadowedString ( PrintX , PrintY , * FString ( " Name " ) , GetStatsFont ( ) , GrayTextColor ) ; PrintX + = 256.0f ;
Canvas . DrawShadowedString ( PrintX , PrintY , * FString ( " IsEnabled " ) , GetStatsFont ( ) , GrayTextColor ) ; PrintX + = 96.0f ;
Canvas . DrawShadowedString ( PrintX , PrintY , * FString ( " Priority " ) , GetStatsFont ( ) , GrayTextColor ) ; PrintX + = 96.0f ;
Canvas . DrawShadowedString ( PrintX , PrintY , * FString ( " CurrentWeight " ) , GetStatsFont ( ) , GrayTextColor ) ; PrintX + = 96.0f ;
Canvas . DrawShadowedString ( PrintX , PrintY , * FString ( " bIsUnbound " ) , GetStatsFont ( ) , GrayTextColor ) ; PrintX + = 96.0f ;
PrintY + = CRHeight ;
PrintX = PrintX_CR ;
const int32 PPDebugInfoCount = View . FinalPostProcessDebugInfo . Num ( ) - 1 ;
for ( int32 i = PPDebugInfoCount ; i > = 0 ; - - i )
{
const FPostProcessSettingsDebugInfo & PPDebugInfo = View . FinalPostProcessDebugInfo [ i ] ;
Text = FString : : Printf ( TEXT ( " %s " ) , * PPDebugInfo . Name . Left ( 40 ) ) ; // Clamp the name to a reasonable length
Canvas . DrawShadowedString ( PrintX , PrintY , * Text , GetStatsFont ( ) , TextColor ) ; PrintX + = 256.0f ;
Text = FString : : Printf ( TEXT ( " %d " ) , PPDebugInfo . bIsEnabled ? 1 : 0 ) ;
Canvas . DrawShadowedString ( PrintX + 32.0f , PrintY , * Text , GetStatsFont ( ) , TextColor ) ; PrintX + = 96.0f ;
Text = FString : : Printf ( TEXT ( " %.3f " ) , PPDebugInfo . Priority ) ;
Canvas . DrawShadowedString ( PrintX , PrintY , * Text , GetStatsFont ( ) , TextColor ) ; PrintX + = 96.0f ;
Text = FString : : Printf ( TEXT ( " %3.3f " ) , PPDebugInfo . CurrentBlendWeight ) ;
Canvas . DrawShadowedString ( PrintX + 32.0f , PrintY , * Text , GetStatsFont ( ) , TextColor ) ; PrintX + = 96.0f ;
Text = FString : : Printf ( TEXT ( " %d " ) , PPDebugInfo . bIsUnbound ? 1 : 0 ) ;
Canvas . DrawShadowedString ( PrintX + 32.0f , PrintY , * Text , GetStatsFont ( ) , TextColor ) ; PrintX + = 96.0f ;
Canvas . DrawShadowedString ( PrintX_CR , PrintY + 3.0f , * FString ( " ______________________________________________________________________________________________________________ " ) , GetStatsFont ( ) , TextColor ) ;
PrintX = PrintX_CR ;
PrintY + = CRHeight ;
}
} ) ;
return MoveTemp ( ScreenPassSceneColor ) ;
}
# endif