2019-01-17 18:54:05 -05:00
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
# include "RenderUtils.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 "Containers/ResourceArray.h"
# include "Containers/DynamicRHIResourceArray.h"
2014-03-14 14:13:41 -04:00
# include "RenderResource.h"
2019-01-30 21:24:04 -05:00
# include "RHIStaticStates.h"
# include "RenderGraphUtils.h"
2019-02-19 19:25:23 -05:00
# include "PipelineStateCache.h"
2014-03-14 14:13:41 -04:00
2018-09-26 10:08:47 -04:00
# if WITH_EDITOR
# include "Misc/CoreMisc.h"
# include "Interfaces/ITargetPlatform.h"
# include "Interfaces/ITargetPlatformManagerModule.h"
# endif
2014-03-14 14:13:41 -04:00
const uint16 GCubeIndices [ 12 * 3 ] =
{
0 , 2 , 3 ,
0 , 3 , 1 ,
4 , 5 , 7 ,
4 , 7 , 6 ,
0 , 1 , 5 ,
0 , 5 , 4 ,
2 , 6 , 7 ,
2 , 7 , 3 ,
0 , 4 , 6 ,
0 , 6 , 2 ,
1 , 3 , 7 ,
1 , 7 , 5 ,
} ;
#CodeReview: jason.bestimt,nick.whiting,mike.beach
--------------------------------------
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering [at] 4358666)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4073167 by Krzysztof.Narkowicz
Added subsurface profile for eye shading model.
#jira none
Change 4073422 by Krzysztof.Narkowicz
Added dual specular for subsurface profile shading model.
#jira none
Change 4075278 by Krzysztof.Narkowicz
Fixed forward reflection/refraction rendering issues, which caused ShaderModels.Material.Refraction to fail.
#jira none
Change 4084231 by Krzysztof.Narkowicz
Dual specular - replace lobe spread with two separate roughness multipliers. Default material roughness is now replaced by an average lobe roughness in order to support non dual specular features.
#jira none
Change 4092798 by Matt.Collins
Some HDR refactoring.
Previously the DisplayOutput and ColorGamut were only set in GameUserSettings.
I added a Sink that checks the HDR enable. If it's toggled we apply the correct DisplayOutput and ColorGamut for the current platform (this way we get good settings even if you toggle via the console). These settings are still exposed via the console and can be set independently if the user wants.
Change 4096954 by Chris.Bunner
Added ShaderModelID as scene texture option and renamed existing value to ShaderModelColor to better reflect the internal code.
Change 4111285 by Brian.Karis
Eye shading update.
Added Iris normal (disabled). Removed wrap. Fixed contact shadows.
Change 4155261 by Krzysztof.Narkowicz
Planar reflection prefilter - use scene viewport size instead of reflection target size in order to keep filter size constant in screen space. This makes planar reflection filter more stable in case of dynamic resolution.
#jira none
Change 4167644 by Krzysztof.Narkowicz
Global shader map is now stored in multiple DDC entries (one per shader filename) instead of keeping everything in a single one. This allows to skip recompilation of unchanged shader files.
Change 4183727 by Yuriy.ODonnell
Implemented auto-conversion from deferred to DBuffer decals in forward shading mode (when GBuffer is not available).
Added support for specular and metallic channels for DBuffer decals, based on work by Chris Bunner.
This requires DBufferC to be expanded from 2 to 4 channels, leading to slight increase in DBuffer bandwidth and memory requirements.
Appearance of DBuffer decals is affected by this change, as specular and metallic channel values previously hard-coded in DBufferDecalShared.ush.
Decals were forced to be non-metallic and have specular of 4% (0.5 numeric value). Now the authored decal material values will be used, which matches GBuffer decals.
Added support for DBuffer decals with emissive component.
Most decal types can now be automatically converted, with the exception of stain decals. Those are currently approximated as regular translucent decals.
Change 4197684 by laz.matech
Added a PostProcess Volume test to the map to test that Cinematic Depth of View can be achieved through PPVs as well. Changed the BP_DepthOfFeildPOV asset - I exposed Focus Method so that it can be disabled for the PPV test. Added a second Hair Model head to the InFocusHair test so that it tests in and out of focus hair models (changed the name of the test to FocusHair).
#jira none
Change 4225614 by Rolando.Caloca
DR - Enable depth collision particles on Vulkan mobile
Change 4235489 by Uriel.Doyon
Removed r.DefaultFeature.PointLightUnits and r.DefaultFeature.SpotLightUnits and replaced them by a single r.DefaultFeature.LightUnits which also controls the units of newly placed rect lights.
#jira UE-59525
Change 4260154 by Mark.Satterthwaite
Parallelize the creation of Metal archives and libraries when they are broken up into smaller sub-libraries, this should reduce apparent cook time by going wide across threads on the host of the cooker.
Change 4270594 by Brian.Karis
Fix for textured rect light L pointing away from plane due to approximate diffuse integration.
Change 4273361 by Daniel.Wright
Particle Cutouts with 8 verts now always use stochastic approach. Circle textures with > 234 edges in the convex hull were overflowing the uint64 calculation of the total number of combinations, causing an infinite loop.
Change 4309174 by Mark.Satterthwaite
Graph device utilization from the driver monitor stats - really helps see how well the GPU is being used.
Change 4310121 by Matt.Collins
Optmizing RemoveUniformBuffersFromSource. Brings it from ~20% to ~1.5% in my testing.
#jira none
Change 4312960 by Daniel.Wright
Fix from Stephen Hill for incorrect light grid culling near the near plane
Change 4314169 by Richard.Wallis
FShaderCache and associated public structures are now marked as deprecated. All FShaderCache code hooks removed from MetalRHI, OpenGLDrv and engine Launch/Shutdown logic.
#jira none
Change 4320760 by Arne.Schober
DR - Remove SV_Coverage from basepass interpolants when running with Masked in early Depth with ForwardShading as otherwise earlyZ will be disabled (as the PS has to run).
#jira UE-60992
Change 4334607 by Uriel.Doyon
Added custom overrides to reset ULightComponent::Intensity to default (in FLightComponentDetails).
Now settings a light Intesity to default resets the brightness to the archetype brightness.
This handles correctly cases where the intensity units differs between the two objects.
Also changed FLocalLightComponentDetails so that changing intensity units kepts the same brightness
(by recomputing the Intensity).
#jira UE-61401
Change 4336188 by Rolando.Caloca
DR - Added -ReduceThreadUsage so programs can use less threads (for SCW )
Change 4337967 by Rolando.Caloca
DR - Remove unused RHISupportsShaderCompression function
#rb none
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4358751 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
[CL 4358828 by jason bestimt in Dev-VR branch]
2018-09-11 15:00:12 -04:00
TGlobalResource < FCubeIndexBuffer > GCubeIndexBuffer ;
TGlobalResource < FTwoTrianglesIndexBuffer > GTwoTrianglesIndexBuffer ;
TGlobalResource < FScreenSpaceVertexBuffer > GScreenSpaceVertexBuffer ;
2014-03-14 14:13:41 -04:00
//
// FPackedNormal serializer
//
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
FArchive & operator < < ( FArchive & Ar , FDeprecatedSerializedPackedNormal & N )
2014-03-14 14:13:41 -04:00
{
Ar < < N . Vector . Packed ;
return Ar ;
}
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
FArchive & operator < < ( FArchive & Ar , FPackedNormal & N )
2016-04-13 21:24:38 -04:00
{
Ar < < N . Vector . Packed ;
return Ar ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2981742)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2967522 on 2016/05/05 by Martin.Mittring
fixed UE-30208 Ensure taking high resolution screenshot
renamed cvar from r.SaveUncompressedEXRFrame to r.SaveEXR.CompressionQuality and change meaning
Change 2967541 on 2016/05/05 by Martin.Mittring
added cvar help entry to the editor menu
Change 2967544 on 2016/05/05 by Martin.Mittring
* added ensures to track down UE-22073 [CrashReport] Crash when changing Editor Window Size - FDeferredShadingSceneRenderer::ClearTranslucentVolumeLighting()
* fixed typo
* improved r.DisplayInternals
Change 2967685 on 2016/05/05 by Rolando.Caloca
DR - Fix 2013 compile
#jira UE-30369
Change 2967883 on 2016/05/05 by Olaf.Piesche
Making inherit rotation work for mesh particles
#jira UE-30153
Change 2967948 on 2016/05/05 by Daniel.Wright
MaterialParameterCollections now create default resources (uniform buffers) which are used when no valid FScene is present (eg DrawTile while exporting materials to lightmass)
Change 2967954 on 2016/05/05 by Daniel.Wright
New refraction mode 'Pixel Normal Offset', which uses the difference between the per-pixel normal and the per-vertex normal to compute the refraction offset. This is useful for refraction from large water surfaces without reading outside of screen bounds as much.
Change 2967970 on 2016/05/05 by Olaf.Piesche
Improvement for depth buffer collision; reduce tunneling by sampling midpoint instead of predicted position.
#jira UE-27297
Change 2968125 on 2016/05/05 by Daniel.Wright
Hopeful fix for mac compile error with enum
Change 2968126 on 2016/05/05 by Daniel.Wright
Forward declare to fix compile error
Change 2969070 on 2016/05/06 by Martin.Mittring
fixed Clang Compile error
Change 2969224 on 2016/05/06 by Martin.Mittring
fixed Clang
Change 2969275 on 2016/05/06 by Rolando.Caloca
DR - Fix for simulation time from BP not matching material editor expression time
#jira UE-26431
Change 2969413 on 2016/05/06 by Daniel.Wright
Simple forward shading path
* Support for a directional light in the base pass, which can be shadowed either by distance field shadowmaps or a single shadow factor from the Indirect Lighting Cache
* Binding and outputting to GBuffers is disabled when using simple forward shading, along with dependencies of the GBuffers
* Specular, normal maps and the 3rd SH band of skylighting are all hardcoded off. Materials are forced fully rough.
* Enabled with 'r.SimpleForwardShading 1', which can be changed at runtime
* Added r.SupportSimpleForwardShading, which determines if the necessary shaders are compiled
* Removed r.SimpleDynamicLighting, whose functionality (unshadowed directional light in the base pass) is a subset of simple forward shading, and was unused
Change 2969414 on 2016/05/06 by Daniel.Wright
Added cvar 'r.Fog' for scalability
Change 2969415 on 2016/05/06 by Daniel.Wright
Low end scalability setup for Paragon
Change 2969583 on 2016/05/06 by Daniel.Wright
Effectively disabled the WRITES_PRECSHADOWFACTOR_TO_GBUFFER optimization, as all combinations use the GBuffer target
* This fixes bSingleSampleShadowFromStationaryLights which was broken in cl 2863775 when selective GBuffer outputs was enabled
Change 2969597 on 2016/05/06 by Olaf.Piesche
Adding emitter tick times to Cascade viewport overlays
#jira UE-25172
Change 2969599 on 2016/05/06 by Daniel.Wright
Added r.Shadow.ForceSingleSampleShadowingFromStationary for scalability
Change 2969795 on 2016/05/06 by Daniel.Wright
Made r.SimpleForwardShading a scalability cvar
Change 2969796 on 2016/05/06 by Daniel.Wright
Enabled simple forward shading for the lowest shadow quality in Paragon
* Moved Orion.Character.NonLocalHeroPreshadows to be under shadow quality
* Enabling r.Shadow.ForceSingleSampleShadowingFromStationary when shadows are disabled through r.ShadowQuality
Change 2972338 on 2016/05/10 by Martin.Mittring
Added ImageValidator V0.11 to Perforce (for automated screenshot comparison)
Change 2972450 on 2016/05/10 by Martin.Mittring
fixed sorting issues, added column sort
Change 2972564 on 2016/05/10 by Martin.Mittring
fixed PixelCountToFail
Change 2972572 on 2016/05/10 by Martin.Mittring
added color
Change 2972667 on 2016/05/10 by Daniel.Wright
Capsule shadows support an off-center projection - fixes stereo rendering
Indirect lighting cache is updated for primitives with a visible indirect capsule shadow - fixes indirect shadows disappearing when the caster is off-screen in the Static skylight case
Change 2972687 on 2016/05/10 by Martin.Mittring
split data from view
Change 2972713 on 2016/05/10 by Martin.Mittring
background validation
Change 2972742 on 2016/05/10 by Martin.Mittring
do not lock files in folder
Change 2972837 on 2016/05/10 by Daniel.Wright
Comment for tiled reflection culling edge failure case
Change 2972891 on 2016/05/10 by Daniel.Wright
Simple forward shading only supported on PC now
Change 2972927 on 2016/05/10 by Martin.Mittring
fixed comparison, added directory watcher
Change 2972952 on 2016/05/10 by Martin.Mittring
tooltips
Change 2972965 on 2016/05/10 by Martin.Mittring
readme
Change 2972986 on 2016/05/10 by Martin.Mittring
polish
Change 2973015 on 2016/05/10 by Zabir.Hoque
Clamp max cubemap resolutions for reflection capture component.
Change 2973067 on 2016/05/10 by Uriel.Doyon
Removed temporary streaming data from ULevel. Now the data goes directly in FStreamingManagerTexture.
Removed deprecated classes and structures associated with old data.
Uniformized dynamic primitives and static primitives streaming logic.
Static primitive instances are now bound to level component and have visibility information.
MeshTexCoordSize Debug now shows live update when tweaking "StreamingDistanceMultiplier"
Change 2973129 on 2016/05/10 by Martin.Mittring
fixed crash (uninit var)
Change 2973167 on 2016/05/10 by Olaf.Piesche
Fixing mac compiler warnings; removed beam tangent from particle source and target, as it's treated separately anyway.
Change 2973654 on 2016/05/11 by Gil.Gribb
FIxed bad resolve from main merge
Change 2973787 on 2016/05/11 by Simon.Tovey
PR #2080: Added 7 additional blueprint nodes and assoicated functions to Particle System Compoenent (Contributed by alwintom)
#2080
Change 2973794 on 2016/05/11 by Simon.Tovey
GitHub 1646 : Increase Wireframe Linear Color Value for Particles in Cascade Preview viewport
#1646
Change 2973814 on 2016/05/11 by Chris.Bunner
Fixed D3D warning.
Change 2973868 on 2016/05/11 by Martin.Mittring
fixed compiler warning
Change 2974104 on 2016/05/11 by Uriel.Doyon
Optimized TextureStreaming ASync task by improving cache efficency.
Removed ForcedFullyLoad texture sets and merged them with the other entries (to prevent checking in two data structures).
Change 2974163 on 2016/05/11 by Uriel.Doyon
Fixed Editor Build
Change 2974263 on 2016/05/11 by Olaf.Piesche
Fix for particle beam source/target selection
Change 2974313 on 2016/05/11 by Martin.Mittring
nicer icon
Change 2974632 on 2016/05/11 by Martin.Mittring
zoom (mouse wheel) and pan support
Change 2974651 on 2016/05/11 by Martin.Mittring
UE-30565 Blend Radius does not override Priority for blendable post process material array
#test:PC
Change 2974994 on 2016/05/12 by Uriel.Doyon
Fixed uninitialized members in texture streaming when updating dynamic primitives.
#jira UE-30632
Change 2975514 on 2016/05/12 by Olaf.Piesche
Getting mesh particle transform down to pixel shader, making available in TransformVector/TransformPosition nodes
#udn 288158, and requests from several artists
Change 2975970 on 2016/05/12 by Zabir.Hoque
Enable setting high precision normals/tangets as a part of static mesh import.
Change 2976134 on 2016/05/12 by Daniel.Wright
Moved RHI prefix out of command list macros so you can find callers in a Find in Files for RHIBlendState, etc
Change 2976135 on 2016/05/12 by Daniel.Wright
Added material property bAllowNegativeEmissiveColor which is useful when rendering to an offscreen render target
Change 2976139 on 2016/05/12 by Daniel.Wright
Blueprint can now be used to draw to a TextureRenderTarget2D with DrawMaterialToRenderTarget
Canvas can now draw to a TextureRenderTarget2D in a Blueprint with BeginDrawCanvasToRenderTarget / EndDrawCanvasToRenderTarget
Change 2976199 on 2016/05/12 by Brian.Karis
Improved screen space ray cast intersection heuristic.
Change 2976203 on 2016/05/12 by Brian.Karis
Fixed hair NaNs
Change 2976214 on 2016/05/12 by Zabir.Hoque
Fix compiler error on Clang
Change 2976239 on 2016/05/12 by Brian.Karis
Improved hair shadows
Change 2976240 on 2016/05/12 by Brian.Karis
Made recompileshaders specific file work again. Kind of hacky but better than nothing
Change 2976290 on 2016/05/12 by Zabir.Hoque
Few more clang compiler fixes.
#jira UE-30713
Change 2976517 on 2016/05/13 by Zabir.Hoque
Final set of fixes for compile breaks.
Change 2976535 on 2016/05/13 by Zabir.Hoque
Fix mono builds
Change 2977270 on 2016/05/13 by Zabir.Hoque
Incorrectly used 7 as max texcoords. Corrected to #define MAX_TEX_COORDS
#lockdown gil.gribb
Change 2980140 on 2016/05/17 by Gil.Gribb
Merging //UE4/Dev-Main@2980127 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
Change 2980211 on 2016/05/17 by Ben.Marsh
EC: Build DDC in Dev-Rendering every 3 hours.
#lockdown Gil.Gribb
Change 2980876 on 2016/05/17 by Michael.Trepka
Metal shader compile fix
#lockdown gil.gribb
[CL 2981788 by Gil Gribb in Main branch]
2016-05-18 09:31:59 -04:00
FArchive & operator < < ( FArchive & Ar , FPackedRGBA16N & N )
{
Ar < < N . X ;
Ar < < N . Y ;
Ar < < N . Z ;
Ar < < N . W ;
return Ar ;
}
2014-03-14 14:13:41 -04:00
//
// Pixel format information.
//
FPixelFormatInfo GPixelFormats [ PF_MAX ] =
{
// Name BlockSizeX BlockSizeY BlockSizeZ BlockBytes NumComponents PlatformFormat Supported UnrealFormat
{ TEXT ( " unknown " ) , 0 , 0 , 0 , 0 , 0 , 0 , 0 , PF_Unknown } ,
{ TEXT ( " A32B32G32R32F " ) , 1 , 1 , 1 , 16 , 4 , 0 , 1 , PF_A32B32G32R32F } ,
{ TEXT ( " B8G8R8A8 " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_B8G8R8A8 } ,
{ TEXT ( " G8 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 1 , PF_G8 } ,
{ TEXT ( " G16 " ) , 1 , 1 , 1 , 2 , 1 , 0 , 1 , PF_G16 } ,
{ TEXT ( " DXT1 " ) , 4 , 4 , 1 , 8 , 3 , 0 , 1 , PF_DXT1 } ,
{ TEXT ( " DXT3 " ) , 4 , 4 , 1 , 16 , 4 , 0 , 1 , PF_DXT3 } ,
{ TEXT ( " DXT5 " ) , 4 , 4 , 1 , 16 , 4 , 0 , 1 , PF_DXT5 } ,
{ TEXT ( " UYVY " ) , 2 , 1 , 1 , 4 , 4 , 0 , 0 , PF_UYVY } ,
2017-09-25 14:08:25 -04:00
{ TEXT ( " FloatRGB " ) , 1 , 1 , 1 , 4 , 3 , 0 , 1 , PF_FloatRGB } ,
2014-03-14 14:13:41 -04:00
{ TEXT ( " FloatRGBA " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_FloatRGBA } ,
2017-09-25 14:08:25 -04:00
{ TEXT ( " DepthStencil " ) , 1 , 1 , 1 , 4 , 1 , 0 , 0 , PF_DepthStencil } ,
2014-03-14 14:13:41 -04:00
{ TEXT ( " ShadowDepth " ) , 1 , 1 , 1 , 4 , 1 , 0 , 0 , PF_ShadowDepth } ,
{ TEXT ( " R32_FLOAT " ) , 1 , 1 , 1 , 4 , 1 , 0 , 1 , PF_R32_FLOAT } ,
{ TEXT ( " G16R16 " ) , 1 , 1 , 1 , 4 , 2 , 0 , 1 , PF_G16R16 } ,
{ TEXT ( " G16R16F " ) , 1 , 1 , 1 , 4 , 2 , 0 , 1 , PF_G16R16F } ,
{ TEXT ( " G16R16F_FILTER " ) , 1 , 1 , 1 , 4 , 2 , 0 , 1 , PF_G16R16F_FILTER } ,
{ TEXT ( " G32R32F " ) , 1 , 1 , 1 , 8 , 2 , 0 , 1 , PF_G32R32F } ,
{ TEXT ( " A2B10G10R10 " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_A2B10G10R10 } ,
{ TEXT ( " A16B16G16R16 " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_A16B16G16R16 } ,
{ TEXT ( " D24 " ) , 1 , 1 , 1 , 4 , 1 , 0 , 1 , PF_D24 } ,
{ TEXT ( " PF_R16F " ) , 1 , 1 , 1 , 2 , 1 , 0 , 1 , PF_R16F } ,
{ TEXT ( " PF_R16F_FILTER " ) , 1 , 1 , 1 , 2 , 1 , 0 , 1 , PF_R16F_FILTER } ,
{ TEXT ( " BC5 " ) , 4 , 4 , 1 , 16 , 2 , 0 , 1 , PF_BC5 } ,
{ TEXT ( " V8U8 " ) , 1 , 1 , 1 , 2 , 2 , 0 , 1 , PF_V8U8 } ,
{ TEXT ( " A1 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 0 , PF_A1 } ,
2017-09-25 14:08:25 -04:00
{ TEXT ( " FloatR11G11B10 " ) , 1 , 1 , 1 , 4 , 3 , 0 , 0 , PF_FloatR11G11B10 } ,
2014-03-14 14:13:41 -04:00
{ TEXT ( " A8 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 1 , PF_A8 } ,
{ TEXT ( " R32_UINT " ) , 1 , 1 , 1 , 4 , 1 , 0 , 1 , PF_R32_UINT } ,
{ TEXT ( " R32_SINT " ) , 1 , 1 , 1 , 4 , 1 , 0 , 1 , PF_R32_SINT } ,
// IOS Support
{ TEXT ( " PVRTC2 " ) , 8 , 4 , 1 , 8 , 4 , 0 , 0 , PF_PVRTC2 } ,
{ TEXT ( " PVRTC4 " ) , 4 , 4 , 1 , 8 , 4 , 0 , 0 , PF_PVRTC4 } ,
{ TEXT ( " R16_UINT " ) , 1 , 1 , 1 , 2 , 1 , 0 , 1 , PF_R16_UINT } ,
{ TEXT ( " R16_SINT " ) , 1 , 1 , 1 , 2 , 1 , 0 , 1 , PF_R16_SINT } ,
{ TEXT ( " R16G16B16A16_UINT " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_R16G16B16A16_UINT } ,
{ TEXT ( " R16G16B16A16_SINT " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_R16G16B16A16_SINT } ,
{ TEXT ( " R5G6B5_UNORM " ) , 1 , 1 , 1 , 2 , 3 , 0 , 1 , PF_R5G6B5_UNORM } ,
{ TEXT ( " R8G8B8A8 " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_R8G8B8A8 } ,
{ TEXT ( " A8R8G8B8 " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_A8R8G8B8 } ,
{ TEXT ( " BC4 " ) , 4 , 4 , 1 , 8 , 1 , 0 , 1 , PF_BC4 } ,
{ TEXT ( " R8G8 " ) , 1 , 1 , 1 , 2 , 2 , 0 , 1 , PF_R8G8 } ,
{ TEXT ( " ATC_RGB " ) , 4 , 4 , 1 , 8 , 3 , 0 , 0 , PF_ATC_RGB } ,
{ TEXT ( " ATC_RGBA_E " ) , 4 , 4 , 1 , 16 , 4 , 0 , 0 , PF_ATC_RGBA_E } ,
{ TEXT ( " ATC_RGBA_I " ) , 4 , 4 , 1 , 16 , 4 , 0 , 0 , PF_ATC_RGBA_I } ,
{ TEXT ( " X24_G8 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 0 , PF_X24_G8 } ,
{ TEXT ( " ETC1 " ) , 4 , 4 , 1 , 8 , 3 , 0 , 0 , PF_ETC1 } ,
{ TEXT ( " ETC2_RGB " ) , 4 , 4 , 1 , 8 , 3 , 0 , 0 , PF_ETC2_RGB } ,
{ TEXT ( " ETC2_RGBA " ) , 4 , 4 , 1 , 16 , 4 , 0 , 0 , PF_ETC2_RGBA } ,
2014-06-03 15:53:13 -04:00
{ TEXT ( " PF_R32G32B32A32_UINT " ) , 1 , 1 , 1 , 16 , 4 , 0 , 1 , PF_R32G32B32A32_UINT } ,
{ TEXT ( " PF_R16G16_UINT " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_R16G16_UINT } ,
2014-09-18 17:49:40 -04:00
// ASTC support
{ TEXT ( " ASTC_4x4 " ) , 4 , 4 , 1 , 16 , 4 , 0 , 0 , PF_ASTC_4x4 } ,
{ TEXT ( " ASTC_6x6 " ) , 6 , 6 , 1 , 16 , 4 , 0 , 0 , PF_ASTC_6x6 } ,
{ TEXT ( " ASTC_8x8 " ) , 8 , 8 , 1 , 16 , 4 , 0 , 0 , PF_ASTC_8x8 } ,
{ TEXT ( " ASTC_10x10 " ) , 10 , 10 , 1 , 16 , 4 , 0 , 0 , PF_ASTC_10x10 } ,
{ TEXT ( " ASTC_12x12 " ) , 12 , 12 , 1 , 16 , 4 , 0 , 0 , PF_ASTC_12x12 } ,
2014-11-19 19:14:13 -05:00
{ TEXT ( " BC6H " ) , 4 , 4 , 1 , 16 , 3 , 0 , 1 , PF_BC6H } ,
{ TEXT ( " BC7 " ) , 4 , 4 , 1 , 16 , 4 , 0 , 1 , PF_BC7 } ,
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3012064 on 2016/06/13 by Nick.Whiting
Merging Main -> DevVR
Change 3048060 on 2016/07/13 by Nick.Whiting
Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR
Upgrade Android and iOS GVR SDK to the latest.
Fix the flipped vignette issue when using Unreal's post processing distortion.
Change the Daydream & Cardboard mode to use scanline racing.
Deprecate the ability to turn off individual UI elements.
Change 3235307 on 2016/12/14 by Keli.Hlodversson
Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit
Change 3235308 on 2016/12/14 by Ryan.Vance
#jira UEVR-478
Monoscopic far field improvements
Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile.
Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled.
Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined.
Addressed code review comments.
Change 3235397 on 2016/12/14 by Keli.Hlodversson
[Oculus] Only enable GearVR platform on Windows if Oculus service is running
Original author: Loren.McQuade
Change 3235762 on 2016/12/14 by Keli.Hlodversson
Add explicit parentheses to placate the build bots.
Change 3242318 on 2016/12/21 by Ryan.Vance
Working around pixel density crash.
Change 3242522 on 2016/12/21 by Ryan.Vance
Missing flag clear so our adaptive test was always returning true.
Change 3243173 on 2016/12/22 by Ryan.Vance
Integrating post present callback implementation from 4.14.1
Change 3248633 on 2017/01/05 by Keli.Hlodversson
Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal)
Change 3248723 on 2017/01/05 by Keli.Hlodversson
Fix after merge. EnablePositionalTracking no longer exists.
Change 3249484 on 2017/01/06 by Keli.Hlodversson
Add missing includes
Change 3249714 on 2017/01/06 by Keli.Hlodversson
Remove monolithic header include
Change 3249980 on 2017/01/06 by Keli.Hlodversson
SteamVR: Remove leftover unused WindowMirrorMode member variable
Change 3252432 on 2017/01/10 by Keli.Hlodversson
Submitting change by Loren McQuade to fix monolithic builds.
Unshelved from pending changelist '3251436':
Change 3257373 on 2017/01/13 by Keli.Hlodversson
#jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands
#jira UEVR-412: Rename and merge remaining Morpheus console commands
#jira UEVR-417: Remove Exec from IHeadMountedDisplay
Change 3269971 on 2017/01/24 by Jeff.Fisher
UEVR-498 move controller is missing world to meters
UEVR-522 PS4 motion controller worldscale support.
-Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level.
-Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update.
#jira UEVR-498
#review-3384107
Change 3288308 on 2017/02/06 by Jeff.Fisher
UEVR-517 Detect MotionController Connectivity
-PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed.
-Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before.
-Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4.
-Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint.
-With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit.
-PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected.
-DS4 controller no longer jumps back to 000 if it loses tracking.
#review-3384107
#jira UEVR-517
Change 3288309 on 2017/02/06 by Keli.Hlodversson
Add file missing from CL#3257373.
Change 3288311 on 2017/02/06 by Jeff.Fisher
UEVR-517 Detect MotionController Connectivity - Test content.
-tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum.
-ctrl-A disables tracking of all controllers
-alt-A disables tracking of all controllers for player 0
-ctrl-D toggles enabling new controllers by default
-Also fixed one button not working in one of the other test modes for the Aim (gun) controller.
-The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera.
-This logic is in the QA_MoCoAll blueprint.
Change 3291601 on 2017/02/07 by Jeff.Fisher
UEVR-536 PSVR motion controller tracking problem with multiple controllers
-Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread.
#jira UEVR-536
#review-3384107 @Ryan.Vance
Change 3292460 on 2017/02/08 by Jeff.Fisher
PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added.
Change 3308771 on 2017/02/17 by Keli.Hlodversson
Rename GoogleVR console commands
#jira UEVR-412
Change 3309156 on 2017/02/17 by Keli.Hlodversson
Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly.
Change 3311999 on 2017/02/20 by Keli.Hlodversson
Create a default implementation for RecordAnalytics.
Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality.
Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown"
#jira UE-21878
#jira UEVR-213
Change 3313467 on 2017/02/20 by Ryan.Vance
#jira UE-41604
3278583
pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped.
3278536
Adding ovrError_NoHmd to our sanity check in OnStartGameFrame.
Change 3314002 on 2017/02/21 by Keli.Hlodversson
Fix compilation on PS4 and Linux
Change 3326722 on 2017/03/01 by Jeff.Fisher
Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
Integrating 4.15 from main.
Change 3327567 on 2017/03/01 by Jeff.Fisher
UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered.
Duplicating from Release-4.15 cl 3327481, 3327542
-Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused.
#jira UEVR-588
#review-3384107
Change 3328098 on 2017/03/01 by Jeff.Fisher
4.15 merge fixes
-Fixed deprecated enum name function usage.
-Fixed world scale usage in GoogleVRController.
-Fixed compile break in PS4Tracker.
Change 3328271 on 2017/03/01 by Jeff.Fisher
2.15 merge
-restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere.
Change 3328307 on 2017/03/01 by Jeff.Fisher
4.15 merge
-More googlevr worldscale fixes.
Change 3328312 on 2017/03/01 by Jeff.Fisher
4.15 merge
-removing 2 unused includes
Change 3330610 on 2017/03/02 by Jeff.Fisher
4.15 merge
-fixing linux build
Change 3333952 on 2017/03/06 by Keli.Hlodversson
Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not.
#jira UEVR-628
#jira UE-42555
Change 3334961 on 2017/03/07 by Keli.Hlodversson
Add missing include to fix non-unity builds
Change 3336200 on 2017/03/07 by Keli.Hlodversson
Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs)
* Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.)
* Switch apparently doesn't know how to format a size_t for analytics either.
Also: Typo in backwards compatibility command name alias
Change 3337347 on 2017/03/08 by Jeff.Fisher
UE-42631 Stereo off while prox sensor uncovered causes low framerate
-Setting maxfps appropriately on 'stereo on/off'.
#review-3384107
#jira UE-42631
Change 3338385 on 2017/03/08 by Ryan.Vance
r.DisableDistortion was only being used for the mobile renderer
Change 3342301 on 2017/03/10 by patrickr.donovan
Test updates to TM-VRSmoke.
Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset.
Rebuilt lighting.
Change 3348133 on 2017/03/15 by Ryan.Vance
Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway.
Change 3348836 on 2017/03/15 by Ryan.Vance
Direct multi-view support for gear vr
Monoscopic far field with multi-view (blit and direct) support for gear vr
Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly)
Fixed missing discards/clears in the multi-view blit
Change 3348843 on 2017/03/15 by Ryan.Vance
Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16.
Change 3349276 on 2017/03/16 by Keli.Hlodversson
Fixing compile errors in GoogleVR after merge from main.
Change 3350932 on 2017/03/16 by Ryan.Vance
Re-enabling the gearvr plugin on windows.
Change 3351977 on 2017/03/17 by Jeff.Fisher
Fixing masked member variable.
Change 3352314 on 2017/03/17 by Ryan.Vance
We need to ensure that we don't select different lod levels for each eye.
Change 3352993 on 2017/03/17 by Nick.Whiting
Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D
Change 3355185 on 2017/03/20 by Nick.Whiting
Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working
Change 3355676 on 2017/03/20 by Nick.Whiting
PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications
Change 3357286 on 2017/03/21 by Jeff.Fisher
Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago.
Change 3357435 on 2017/03/21 by Jeff.Fisher
Fixing editor build break, looks like a merge mistake.
Change 3359960 on 2017/03/23 by Keli.Hlodversson
Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor.
Change 3361230 on 2017/03/23 by Jeff.Fisher
Fixing linux build opengl include problem... maybe.
Change 3361638 on 2017/03/23 by Jeff.Fisher
Another guess at fixing linux build.
Change 3364224 on 2017/03/24 by Keli.Hlodversson
Initial implementation of UEVR-576 - Base emulated layer implementation
#jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation
#jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support
#jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support
#jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support
#jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer
Change 3364242 on 2017/03/24 by Keli.Hlodversson
SteamVR layers do not support negatve Layer priorities
Change 3364263 on 2017/03/24 by Jeff.Fisher
Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up.
Change 3364472 on 2017/03/24 by Jeff.Fisher
Merge fix
Change 3364475 on 2017/03/24 by Jeff.Fisher
Fixing gearvr include.
Change 3364486 on 2017/03/24 by Jeff.Fisher
merge fix
Change 3364532 on 2017/03/24 by Ryan.Vance
pso update for mono rendering and stereo layers.
Change 3364599 on 2017/03/24 by Ryan.Vance
Oculus changes for SI1.12
Change 3365159 on 2017/03/26 by Jeff.Fisher
include fix
Change 3365182 on 2017/03/26 by Jeff.Fisher
include fix
Change 3366087 on 2017/03/27 by Ryan.Vance
Remaining files from Oculus changes for SI1.12 merge request.
Fixing a bug in OnlineSubsystem.
Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue.
Change 3366492 on 2017/03/27 by Ryan.Vance
#jira UE-43294
Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes.
Going to leave the shader clear in the rift prerender for clearing the eye padding for now.
Change 3366929 on 2017/03/27 by Ryan.Vance
Fixing compile error
Change 3368549 on 2017/03/28 by Jeff.Fisher
Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR
Upgrade Google VR Plugin to v1.3:
*Upgraded GVR NDK to 1.30.0
*Changed some BlueprintFunction to use BlueprintPure
*Add the missing bDaydream flag in UEDeployAndroid.cs
#review-3384107
Change 3368975 on 2017/03/28 by Ryan.Vance
CIS clean up
#jira UE-43428, UE-43429, UE-43426, UE-43427
Change 3369028 on 2017/03/28 by Ryan.Vance
This is not exacly 'correct', but it's at least what the code was trying to do.
Change 3370203 on 2017/03/29 by Ryan.Vance
Adding gear vr controller component support.
Change 3370918 on 2017/03/29 by Ryan.Vance
Merging 3370569 using Partner-Google-VR_to_DevVR
Change 3371030 on 2017/03/29 by Ryan.Vance
Fixing linux build errors
#jira UE-43426
Change 3371036 on 2017/03/29 by Ryan.Vance
Oculus 4.16 integration.
Not terribly happy with the use of std::string. They promised to clean this up for the next release.
Change 3373495 on 2017/03/30 by Jeff.Fisher
Merging from Dev-Main, in preparation for 4.16
Change 3373578 on 2017/03/30 by Jeff.Fisher
build break, one comma short
Change 3373870 on 2017/03/31 by Jeff.Fisher
Include order fix.
Change 3374001 on 2017/03/31 by Keli.Hlodversson
Use DefaultStereoLayers as base for Morpheus implementation.
#jira UEVR-709 #jira UE-42919
#rb: Jeff.Fisher
Change 3374004 on 2017/03/31 by Keli.Hlodversson
Fix rendering for the default Stereo Layers implementation on mobile.
Depth test was set to "Never" instead of "Always"
Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms.
Change 3375125 on 2017/03/31 by Jeff.Fisher
UE-43506 Ensure using VRPreview with GoogleVR
-Removed the ensure, there is code in there to handle that case, and it works.
#jira UE-43506
Change 3375294 on 2017/03/31 by nick.bullard
Resaving Plugin content to resovle "saved with empty engine version"
#jira UE-43537
Change 3375480 on 2017/03/31 by Jeff.Fisher
UEVR-9 PSVR: Social Screen Support
-Experimental social screen support for 4.16.
-This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor.
-Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play).
-There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers.
-MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode).
-Also finally updated the bEnabled flag in project settings to tell people it's only for PC.
#jira UEVR-9
#review-3384107
Change 3375540 on 2017/03/31 by Ryan.Vance
#jira UE-43504
Fixing android build break when using a 64 bit isa.
Change 3375655 on 2017/03/31 by Jeff.Fisher
Fixing missing RGBAToYUV shader problem
-This at least unblocks our process. Will revisit before zbr.
Change 3375820 on 2017/04/01 by Jeff.Fisher
Fixing linux build warning about HAS_MORPHEUS
Change 3376050 on 2017/04/02 by Jeff.Fisher
UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings
-Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings.
-Just wrap all standard headers in static analysis disables.
#jira UE-43515
Change 3376609 on 2017/04/03 by Jeff.Fisher
Fixing rgbatoyuvshader include.
Change 3377001 on 2017/04/03 by Jeff.Fisher
UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS
- shader c++ must be compiled so that it can be cooked for ps4.
#jira UE-43547
Change 3379858 on 2017/04/04 by Jeff.Fisher
Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
pulling main this should get us ps4 sdk 4.508
Change 3379938 on 2017/04/04 by Ryan.Vance
#jira UE-43548
If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them.
The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene.
Change 3381519 on 2017/04/05 by Jeff.Fisher
UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect.
-Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status.
#jira UEVR-733
#review-3384107
Change 3382019 on 2017/04/05 by Ryan.Vance
Linux: add Vulkan support from dev editor: 3381593
Change 3382021 on 2017/04/05 by Ryan.Vance
SteamVR on Linux using Vulkan
OpenVR rev to 1_0_6
PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro)
Change 3382076 on 2017/04/05 by Ryan.Vance
Fixing linux steamvr lib path. It changed to something less silly in 1.0.6
Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed.
Change 3383237 on 2017/04/06 by Ryan.Vance
#jira UE-43732
Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now.
Change 3383353 on 2017/04/06 by Ryan.Vance
Fixing include cycles.
Change 3383509 on 2017/04/06 by Jeff.Fisher
Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR)
merging the stuff from dev-mobile
[CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
{ TEXT ( " R8_UINT " ) , 1 , 1 , 1 , 1 , 1 , 0 , 1 , PF_R8_UINT } ,
{ TEXT ( " L8 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 0 , PF_L8 } ,
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
{ TEXT ( " XGXR8 " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_XGXR8 } ,
{ TEXT ( " R8G8B8A8_UINT " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_R8G8B8A8_UINT } ,
{ TEXT ( " R8G8B8A8_SNORM " ) , 1 , 1 , 1 , 4 , 4 , 0 , 1 , PF_R8G8B8A8_SNORM } ,
2017-10-13 11:32:28 -04:00
{ TEXT ( " R16G16B16A16_UINT " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_R16G16B16A16_UNORM } ,
{ TEXT ( " R16G16B16A16_SINT " ) , 1 , 1 , 1 , 8 , 4 , 0 , 1 , PF_R16G16B16A16_SNORM } ,
#CodeReview: jason.bestimt,nick.whiting,mike.beach
--------------------------------------
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering [at] 4358666)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4073167 by Krzysztof.Narkowicz
Added subsurface profile for eye shading model.
#jira none
Change 4073422 by Krzysztof.Narkowicz
Added dual specular for subsurface profile shading model.
#jira none
Change 4075278 by Krzysztof.Narkowicz
Fixed forward reflection/refraction rendering issues, which caused ShaderModels.Material.Refraction to fail.
#jira none
Change 4084231 by Krzysztof.Narkowicz
Dual specular - replace lobe spread with two separate roughness multipliers. Default material roughness is now replaced by an average lobe roughness in order to support non dual specular features.
#jira none
Change 4092798 by Matt.Collins
Some HDR refactoring.
Previously the DisplayOutput and ColorGamut were only set in GameUserSettings.
I added a Sink that checks the HDR enable. If it's toggled we apply the correct DisplayOutput and ColorGamut for the current platform (this way we get good settings even if you toggle via the console). These settings are still exposed via the console and can be set independently if the user wants.
Change 4096954 by Chris.Bunner
Added ShaderModelID as scene texture option and renamed existing value to ShaderModelColor to better reflect the internal code.
Change 4111285 by Brian.Karis
Eye shading update.
Added Iris normal (disabled). Removed wrap. Fixed contact shadows.
Change 4155261 by Krzysztof.Narkowicz
Planar reflection prefilter - use scene viewport size instead of reflection target size in order to keep filter size constant in screen space. This makes planar reflection filter more stable in case of dynamic resolution.
#jira none
Change 4167644 by Krzysztof.Narkowicz
Global shader map is now stored in multiple DDC entries (one per shader filename) instead of keeping everything in a single one. This allows to skip recompilation of unchanged shader files.
Change 4183727 by Yuriy.ODonnell
Implemented auto-conversion from deferred to DBuffer decals in forward shading mode (when GBuffer is not available).
Added support for specular and metallic channels for DBuffer decals, based on work by Chris Bunner.
This requires DBufferC to be expanded from 2 to 4 channels, leading to slight increase in DBuffer bandwidth and memory requirements.
Appearance of DBuffer decals is affected by this change, as specular and metallic channel values previously hard-coded in DBufferDecalShared.ush.
Decals were forced to be non-metallic and have specular of 4% (0.5 numeric value). Now the authored decal material values will be used, which matches GBuffer decals.
Added support for DBuffer decals with emissive component.
Most decal types can now be automatically converted, with the exception of stain decals. Those are currently approximated as regular translucent decals.
Change 4197684 by laz.matech
Added a PostProcess Volume test to the map to test that Cinematic Depth of View can be achieved through PPVs as well. Changed the BP_DepthOfFeildPOV asset - I exposed Focus Method so that it can be disabled for the PPV test. Added a second Hair Model head to the InFocusHair test so that it tests in and out of focus hair models (changed the name of the test to FocusHair).
#jira none
Change 4225614 by Rolando.Caloca
DR - Enable depth collision particles on Vulkan mobile
Change 4235489 by Uriel.Doyon
Removed r.DefaultFeature.PointLightUnits and r.DefaultFeature.SpotLightUnits and replaced them by a single r.DefaultFeature.LightUnits which also controls the units of newly placed rect lights.
#jira UE-59525
Change 4260154 by Mark.Satterthwaite
Parallelize the creation of Metal archives and libraries when they are broken up into smaller sub-libraries, this should reduce apparent cook time by going wide across threads on the host of the cooker.
Change 4270594 by Brian.Karis
Fix for textured rect light L pointing away from plane due to approximate diffuse integration.
Change 4273361 by Daniel.Wright
Particle Cutouts with 8 verts now always use stochastic approach. Circle textures with > 234 edges in the convex hull were overflowing the uint64 calculation of the total number of combinations, causing an infinite loop.
Change 4309174 by Mark.Satterthwaite
Graph device utilization from the driver monitor stats - really helps see how well the GPU is being used.
Change 4310121 by Matt.Collins
Optmizing RemoveUniformBuffersFromSource. Brings it from ~20% to ~1.5% in my testing.
#jira none
Change 4312960 by Daniel.Wright
Fix from Stephen Hill for incorrect light grid culling near the near plane
Change 4314169 by Richard.Wallis
FShaderCache and associated public structures are now marked as deprecated. All FShaderCache code hooks removed from MetalRHI, OpenGLDrv and engine Launch/Shutdown logic.
#jira none
Change 4320760 by Arne.Schober
DR - Remove SV_Coverage from basepass interpolants when running with Masked in early Depth with ForwardShading as otherwise earlyZ will be disabled (as the PS has to run).
#jira UE-60992
Change 4334607 by Uriel.Doyon
Added custom overrides to reset ULightComponent::Intensity to default (in FLightComponentDetails).
Now settings a light Intesity to default resets the brightness to the archetype brightness.
This handles correctly cases where the intensity units differs between the two objects.
Also changed FLocalLightComponentDetails so that changing intensity units kepts the same brightness
(by recomputing the Intensity).
#jira UE-61401
Change 4336188 by Rolando.Caloca
DR - Added -ReduceThreadUsage so programs can use less threads (for SCW )
Change 4337967 by Rolando.Caloca
DR - Remove unused RHISupportsShaderCompression function
#rb none
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4358751 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
[CL 4358828 by jason bestimt in Dev-VR branch]
2018-09-11 15:00:12 -04:00
{ TEXT ( " PLATFORM_HDR_0 " ) , 0 , 0 , 0 , 0 , 0 , 0 , 0 , PF_PLATFORM_HDR_0 } ,
{ TEXT ( " PLATFORM_HDR_1 " ) , 0 , 0 , 0 , 0 , 0 , 0 , 0 , PF_PLATFORM_HDR_1 } ,
{ TEXT ( " PLATFORM_HDR_2 " ) , 0 , 0 , 0 , 0 , 0 , 0 , 0 , PF_PLATFORM_HDR_2 } ,
2019-01-17 18:54:05 -05:00
// NV12 contains 2 textures: R8 luminance plane followed by R8G8 1/4 size chrominance plane.
// BlockSize/BlockBytes/NumComponents values don't make much sense for this format, so set them all to one.
{ TEXT ( " NV12 " ) , 1 , 1 , 1 , 1 , 1 , 0 , 0 , PF_NV12 } ,
2014-03-14 14:13:41 -04:00
} ;
static struct FValidatePixelFormats
{
FValidatePixelFormats ( )
{
for ( int32 X = 0 ; X < ARRAY_COUNT ( GPixelFormats ) ; + + X )
{
// Make sure GPixelFormats has an entry for every unreal format
check ( X = = GPixelFormats [ X ] . UnrealFormat ) ;
}
}
} ValidatePixelFormats ;
//
// CalculateImageBytes
//
SIZE_T CalculateImageBytes ( uint32 SizeX , uint32 SizeY , uint32 SizeZ , uint8 Format )
{
if ( Format = = PF_A1 )
{
// The number of bytes needed to store all 1 bit pixels in a line is the width of the image divided by the number of bits in a byte
uint32 BytesPerLine = SizeX / 8 ;
// The number of actual bytes in a 1 bit image is the bytes per line of pixels times the number of lines
return sizeof ( uint8 ) * BytesPerLine * SizeY ;
}
else if ( SizeZ > 0 )
{
return ( SizeX / GPixelFormats [ Format ] . BlockSizeX ) * ( SizeY / GPixelFormats [ Format ] . BlockSizeY ) * ( SizeZ / GPixelFormats [ Format ] . BlockSizeZ ) * GPixelFormats [ Format ] . BlockBytes ;
}
else
{
return ( SizeX / GPixelFormats [ Format ] . BlockSizeX ) * ( SizeY / GPixelFormats [ Format ] . BlockSizeY ) * GPixelFormats [ Format ] . BlockBytes ;
}
}
//
// FWhiteTexture implementation
//
/**
* A solid - colored 1 x1 texture .
*/
template < int32 R , int32 G , int32 B , int32 A >
class FColoredTexture : public FTexture
{
public :
// FResource interface.
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
// Create the texture RHI.
2019-03-13 14:52:34 -04:00
FRHIResourceCreateInfo CreateInfo ( TEXT ( " ColoredTexture " ) ) ;
2014-06-27 11:07:13 -04:00
FTexture2DRHIRef Texture2D = RHICreateTexture2D ( 1 , 1 , PF_B8G8R8A8 , 1 , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = Texture2D ;
// Write the contents of the texture.
uint32 DestStride ;
2014-06-27 11:07:13 -04:00
FColor * DestBuffer = ( FColor * ) RHILockTexture2D ( Texture2D , 0 , RLM_WriteOnly , DestStride , false ) ;
2014-03-14 14:13:41 -04:00
* DestBuffer = FColor ( R , G , B , A ) ;
2014-06-27 11:07:13 -04:00
RHIUnlockTexture2D ( Texture2D , 0 , false ) ;
2014-03-14 14:13:41 -04:00
// Create the sampler state RHI resource.
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
}
/** Returns the width of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
/** Returns the height of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeY ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
} ;
FTexture * GWhiteTexture = new TGlobalResource < FColoredTexture < 255 , 255 , 255 , 255 > > ;
FTexture * GBlackTexture = new TGlobalResource < FColoredTexture < 0 , 0 , 0 , 255 > > ;
/**
* Bulk data interface for providing a single black color used to initialize a
* volume texture .
*/
class FBlackVolumeTextureResourceBulkDataInterface : public FResourceBulkDataInterface
{
public :
/** Default constructor. */
FBlackVolumeTextureResourceBulkDataInterface ( )
: Color ( 0 )
{
}
/**
* Returns a pointer to the bulk data .
*/
2014-06-13 06:14:46 -04:00
virtual const void * GetResourceBulkData ( ) const override
2014-03-14 14:13:41 -04:00
{
return & Color ;
}
/**
* @ return size of resource memory
*/
2014-06-13 06:14:46 -04:00
virtual uint32 GetResourceBulkDataSize ( ) const override
2014-03-14 14:13:41 -04:00
{
return sizeof ( Color ) ;
}
/**
* Free memory after it has been used to initialize RHI resource
*/
2014-06-13 06:14:46 -04:00
virtual void Discard ( ) override
2014-03-14 14:13:41 -04:00
{
}
private :
/** Storage for the color. */
FColor Color ;
} ;
/**
* A class representing a 1 x1x1 black volume texture .
*/
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
template < EPixelFormat PixelFormat >
2014-03-14 14:13:41 -04:00
class FBlackVolumeTexture : public FTexture
{
public :
/**
* Initialize RHI resources .
*/
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
2016-03-16 21:16:51 -04:00
if ( GSupportsTexture3D )
2014-03-14 14:13:41 -04:00
{
// Create the texture.
FBlackVolumeTextureResourceBulkDataInterface BlackTextureBulkData ;
2014-05-20 15:09:51 -04:00
FRHIResourceCreateInfo CreateInfo ( & BlackTextureBulkData ) ;
2019-03-13 14:52:34 -04:00
CreateInfo . DebugName = TEXT ( " BlackVolumeTexture " ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
FTexture3DRHIRef Texture3D = RHICreateTexture3D ( 1 , 1 , 1 , PixelFormat , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = Texture3D ;
}
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
Merge conflict.
jason.bestimt, please merge this change by hand.
More info at https://robomerge.epicgames.net#DEVVR
--------------------------------------
Copying //UE4/Release-Staging-4.21 to //UE4/Dev-Main (Source: //UE4/Release-4.21 [at] 4447256)
============================
MAJOR FEATURES & CHANGES
============================
Change 4447256 by Joe.Graf
Added a video settings field to the debug menu so you can see your choice
#jira: UE-65026, UE-65017
Change 4446451 by Matt.Kuhlenschmidt
Fix inline edit conditions not supporting undo
PR #4854: UE-61432: Add FScopedTransaction to SetEditConditionState (Contributed by projectgheist)
#jira UE-61432
Change 4446389 by Mieszko.Zielinski
Fixed navmesh tiles AABB being calculated wrong for large agents #UE4
#jira UE-65038
Change 4446171 by Matt.Kuhlenschmidt
Fix crash resetting cascade distributions to default
#jira UE-64458
Change 4446143 by Uriel.Doyon
Re-worked fix from CL 4442729 to handle !SUPPORTS_INDEPENDENT_SAMPLERS
#jira UE-64695
Change 4446071 by Jeff.Fisher
Duplicating for 4.21 Change: 4446057 UE-64942 Material Switching in MRMesh
-Fixed run time material switching on MRMesh
#jira UE-64942
Files:
//UE4/Dev-VR/Engine/Source/Runtime/MRMesh/Private/MRMeshComponent.cpp#24
//UE4/Dev-VR/Engine/Source/Runtime/MRMesh/Public/MRMeshComponent.h#16
Change 4445939 by Joe.Conley
#jira UE-54503 - Transparency for textures applied to the spectator screen for VR
Added a flag bUseAlpha that is checked in FDefaultSpectatorScreenController::RenderSpectatorModeMirrorAndTexture(), if (SpectatorScreenModeTexturePlusEyeLayout_RenderThread.bDrawEyeFirst). It can be set with the SetSpectatorScreenModeTexturePlusEyeLayout Blueprint node.
Change 4445917 by Matt.Kuhlenschmidt
Guarad against crash when destroying asset view items
#jira UE-61108
Change 4445911 by Matt.Kuhlenschmidt
Guard against null objects in asset editors
#jira UE-64499
Change 4445574 by Wyeth.Johnson
Kill volume cleanup, helper function for cone, edge case on pendulum
#jira none
Change 4445472 by Matt.Collins
UE-64680
The new depth bounds optimization in PostAO doesn't work with MSAA. The AO target and depth buffer are different sample counts. Forcing this feature off for now.
In the future if we want to turn it back on we will either have to resolve the depth buffer or increase the AO target sample count.
#jira UE-64680
Change 4444917 by Bogdan.Vasilache
UE-63963 - Fix FSystemTextures.InitializeTextures initialization ordering
#jira UE-63963
Change 4444779 by andrew.porter
QAGane: Updating focus so we can select UMG test button in TM-PlaybackControls
#jira UE-29618
Change 4444678 by Richard.Wallis
Clone of Dev-Rendering CL 4444343:
Fix for eyedropper in the Color Picker window not grabbing any color values on Mac. Bug also says Linux - unable to verify if its the same issue so kept change to Mac specific code.
#jira UE-53789
Change 4444677 by Lauren.Ridge
Context menu opening cancels a rename
#jira UE-64525
Change 4444321 by Michael.Dupuis
#jira none: uncomment the lazy obj ptr warning as the integration is completed
Change 4444288 by Simon.Tourangeau
BP_SunPosition now has a soft ref to BP_SkySphere to prevent cross level referencing
#jira UE-64607
Change 4444287 by JeanMichel.Dignard
Copied 4442004 Daniel.Coelho
Fix for being unable to trigger on variants from UMG blueprints
#jira UE-64948
Change 4444105 by Mitchell.Wilson
Saving assets to resolve UMeshDescription warnings
#jira UE-64022
Change 4444080 by Ben.Marsh
Fix path to Win64 DLLs when building DDC on Linux.
#jira
Change 4444036 by Patrick.Boutot
Fix crash when there are too many pending task in ImageWriteQueue.
#jira UE-64991
Change 4443920 by Ben.Marsh
Fix runtime dependencies not being enumerated for modules that aren't linked into a binary.
#jira UE-65024
Change 4443889 by Ben.Marsh
Copy Windows DDCUtils DLLs when building DDC for Linux on the Win64 host platform.
#jira UE-64975
Change 4443882 by Ben.Marsh
Fix CIS compile error in UE4Game HTML5.
#jira
Change 4443531 by Nick.Shin
#jira UE-65015 HTML5: Project Crashes During Launching Engine due to "Texture format 'R8G8B8A8_UINT' not supported"
this solution was based on: UE-48208
Change 4443358 by Joe.Graf
Changed the world mapping state conversion in ARKit to return NotAvailable, Mapping, Mapped
#jira: UE-65023
Change 4443217 by Dan.Oconnor
Fixed crash after hitting stop when in-stack-debugging
Clear GPlayInEditorID when stopping PIE at a blueprint exception/breakpoint
#jira UE-64895, UE-65005, UE-65008
Change 4443200 by Max.Chen
Sequencer: Now accouting for frame rate when copying key tangents when converting from matinee to level sequence.
#jira UE-65020
Change 4443062 by Dan.Oconnor
Fixed crash when undoing after deleting a function graph that has a math expression node
#jira UE-62134
Change 4442903 by Lauren.Ridge
Allowing material graph nodes to have duplicate names in all cases except creating a new parameter from a constant
#jira UE-64421
Change 4442878 by Joe.Graf
Disabled the clion ignore file generation on Windows since it isn't supported correctly there
#jira: UE-64871
Change 4442840 by Max.Chen
Control Rig: Fix crash tearing down sequencer object spawner
#jira UE-65013
Change 4442810 by Ethan.Geller
Fix build for SoundVisualizations plugin: add const qualifiers for WaveInfo. #jira none #rb none #fyi aaron.mcleran
Change 4442769 by Brandon.Schaefer
Linux: Use the size of our In Rect which is the size of our buffer rather then the size of the Texture which is not always the same size as the buffer
#jira UE-64785
[at]Rolando.Caloca, [at]Arciel.Rekman
Change 4442758 by Dan.Oconnor
"Assign [Delegate Name]" blueprint context menu entries now properly create a custom event node again
#jira UE-65000
Change 4442729 by Uriel.Doyon
Changed GetForwardDynamicShadowFactors implementation to use Texture2DSampleLevel instead of Load.
This is because we sometime bind the GWhiteDummy when the light attenuation buffer is not required, which is a 1x1 texture.
#jira UE-64695
Change 4442724 by Max.Chen
Sequencer: Added back in ScrubHandleUp/Down for the VisualLoggerTimeSliderController to fix missing brush warning
#jira UE-64994
Change 4442519 by Marc.Audy
Avoid broadcasting events that could result in invalidating the array we're iterating.
#jira UE-64959
Change 4442460 by JeanMichel.Dignard
Fixed crash with VRED importer
- DataTable wasn't counting its changes properly resulting in a failed check.
#jira UE-64982
Change 4442216 by Ethan.Geller
Unshelved from pending changelist '4438353':
Ensure const correctness in USoundWave cook processing.
Change 4442191 by Mitchell.Wilson
Updating min ios version to resolve warnings.
#jira UE-64815
Change 4442124 by Arciel.Rekman
Another fix for lock up on starting without audio devices (UE-64506).
#jira UE-64506
Change 4442006 by Ben.Marsh
Fix debug info being included for Lumin binaries on Mac.
#jira UE-65002
Change 4441939 by Ben.Marsh
Fix inability to package Mac targets from Windows.
#jira UE-64148
Change 4441374 by tim.gautier
QAGame: Resaved Niagara assets.
Rebuilt lighting / resaved TM-ShaderModels
#jira UE-29618
Change 4441369 by Rolando.Caloca
UE4.21 - hlslcc - Fix UAV getting removed
#jira
Change 4441347 by Michael.Dupuis
#jira UE-63631: LOD Distribution settings, must be > 1.01 as otherwise 1/1 will not give correct result.
Change 4441132 by Dan.Oconnor
Remove unused dtor
#jira None
Change 4441108 by Dan.Oconnor
Fix leaking entries for PLACEHOLDER classes in the new ClassToPlaceholderMap
#jira UE-64971
Change 4441096 by tim.gautier
Adding the VRMode_Ball asset for VRMode testing.
#jira UE-29618
Change 4441093 by Ryan.Gerleve
Fix the writer's size issue in the auth handler when requesting resends. This fixes packet over/underflows. Also make it so that dropall drops all of auth's packets as well.
#Jira UE-63796, UE-64156
#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.21 of change#4374419 by Jake.Leonard on 2018/09/18 15:41:48.
Change 4441065 by Ryan.Gerleve
Fix using SetIp(uint) on an IPv6 only platform so that both cases are handled properly. Should contain the same flow as the IPv6 framework.
#Jira UE-64129
#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.21 of change#4374299 by Jake.Leonard on 2018/09/18 15:23:37.
Change 4441052 by Ben.Zeigler
#jira UE-64446 Fix crash on cooked devices when using GameplayCues but not explicitly setting a manager
It is unsafe to reference dynamic objects from a CDO so spawn an instance of the default class
Change 4441042 by Ryan.Gerleve
Remove the bForceUDP from the new CreateSocket signature. This is an argument that came in from UE3 and is not supported. It should not continue to exist anymore.
#Jira: UE-63879
#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.21 of change#4356623 by Jake.Leonard on 2018/09/10 20:35:09.
Change 4441005 by Ben.Zeigler
#jira UE-64446 Call InitGlobalData from ActionRPG sample and set up path for cue notifies. All projects using abilities should do this
Change 4440944 by Ryan.Gerleve
Because addrconfig is not supported on HTML5. This is not documented anywhere, so any query with the flag will just be removed from any queries.
#Jira UE-63791
#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.21 of change#4356538 by Jake.Leonard on 2018/09/10 19:35:29.
Change 4440912 by Ryan.Gerleve
Skip lobbies we are already a part of when generating matchmaking results. This allows us to not try to fetch data on ourselves.
#Jira UE-63543
#AUTOMERGE using branch //UE4/Dev-Networking_to_//UE4/Release-4.21 of change#4356532 by Jake.Leonard on 2018/09/10 19:34:39.
Change 4440861 by Ben.Zeigler
#jira UE-61890 Fix XGE shader compilation on newer incredibuilds by checking registry for path
Change 4440850 by Michael.Dupuis
#jira UE-62426: Reset InstanceCountToRender if the static mesh is valid or we have no instances
Change 4440514 by Ben.Marsh
Add additional info to comment around optimization being disabled due to codegen bug.
#jira
Change 4440501 by Ben.Zeigler
#jira UE-64971 Fix resolving export tracker to clean itself up after resolving. This fixes the immediate crash, but there may be another way it can end up crashing so this needs further investigation as the structure is unsafe
Change 4440479 by Rex.Hill
Fix debug hud not rendering when swapping between PIE/SIE modes
#jira UE-64704
Change 4440447 by Joe.Graf
Rename/move AR samples
#jira: UE-64944
Change 4440338 by Joe.Graf
Cleaned up leftover files from the bad 4.20->Dev-VR merge
#jira: UE-64957
Change 4440318 by Joe.Graf
Fixed the bad asset merge that happened from 4.20 back to Dev-VR
#jira: UE-64957
Change 4440237 by Ben.Zeigler
#jira UE-64960 Disable validating data dialog when saving, and ony show if > 0.1 seconds
Change 4440157 by Mieszko.Zielinski
Fixed a bug in how UNavModifierComponent handles FKConvexElems #UE4
#jira UE-60987
Change 4440017 by Mitchell.Wilson
Saving SunlightColorLUT in KiteDemo to resolve warnings.
#jira UE-64744
Change 4439856 by Jurre.deBaare
Crash when trying to "Update Mesh Section" on any procedural mesh just after "Clear Mesh Section" and "Create Mesh Section" for different vertices and triangles.
#fix Ensure that we recreate the scene proxy whener a mesh section is updated with a larger amount of vertices than original, this will reinit the vertex buffers to the correct sizes
#jira UE-60607
Change 4439831 by Ben.Marsh
Fix ClangEditor CIS warning.
Change MSVC_PRAGMA to not be defined when compiling using Clang on Windows. Also add a link to bad codegen report on Microsoft's developer forum for an instance of optimization being disabled.
#jira
Change 4439828 by mason.seay
Added variable to blueprint
#jira UE-29618
Change 4439763 by Jurre.deBaare
#jira UE-62048
PR #4892: HLOD System: Fix crash when static mesh has no valid material (Contributed by user37337)
#fix slightly modifier fix
Change 4439731 by Joe.Graf
Rename/move AR samples
#jira: UE-64944
Change 4439715 by Cosmin.Sulea
UE-64937 - IphonePackager cannot verify UDID on new devices (XS or newer)
#jira UE-64937
Change 4439697 by Wyeth.Johnson
Metadata errors and fixes
#jira none
Change 4439658 by Michael.Dupuis
#jira UE-63831: Added some guard to prevent the crash
Change 4439605 by Michael.Dupuis
#jira UE-53944: Added some asserto help track what could be happening in this case
Change 4439516 by Ben.Marsh
UBT: Set the permissions on directories containing scripts to be executed as part of remote builds.
#jira UE-64860
Change 4439395 by Michael.Dupuis
#jira UE-63637: When doing migration from 4.18, if the data was in a BP, use a Reset instead of a Reserve, as otherwise we will end up with twice the amounf of instances.
Change 4439197 by Michael.Dupuis
#jira UE-63242
#jira UE-63123:
Integrate from Dev-Editor branch
Change 4439162 by Mieszko.Zielinski
Made sure NavigationSystemConfig respects GEngine->NavigationSystemClassName #UE4
#jira UE-62991
Change 4439106 by Cosmin.Sulea
UE-64603 - Android Devices do not show up in device list for Device Output Log
#jira UE-64603
Change 4438283 by Ben.Zeigler
#jira UE-63825 Integrate pull request:
PR #5073: Implement LoadGameFromMemory function. (Contributed by KelbyG)
Change 4438242 by Ben.Zeigler
Test case for #jira UE-63705. To verify, open WeakReferencedPrimaryAsset and note that the UntrackedMeshPtr is set to AT_StaticMesh.
Then, right click and show references, that mesh should NOT show up, as it is marked as Untracked via metadata
Change 4438238 by Ben.Zeigler
#jira UE-63843 Temporary fix for Visual Studio 2017 compile bug causing crashes in Audio Mixer code
Change 4438237 by Ben.Zeigler
#jira UE-64770 Fix bug where AssetManager could fail to call delegates in sync load mode
Change 4438236 by Ben.Zeigler
#jira UE-64466 Fix issues with debug builds with ENABLE_NAN_DIAGNOSTIC and TransformNonVectorized, it's not safe to use the FVector constructor as it will always ensure. Also unified checks with the vectorized version to be consistent
Change 4438234 by Ben.Zeigler
#jira UE-63705 Add full support for Untracked soft object references, enable by adding that tag to the metadata for a property or using FSoftObjectPathSerializationScope with NeverCollect
If set the references will not be automatically cooked, reported to the asset registry, or cause warnings when deleting a referenced actor
They are meant to be used for cases where they are just used as a lazy cache, such as things converted from FLazyObjectPtr
The reference from Foliage to it's base actor is now an Untracked SoftObjectPtr instead of a LazyPtr
Change 4437969 by Michael.Lentine
Fix gpu skin cache with multiple cloth sections.
#jira ue-62951
Change 4437907 by Joe.Graf
Rename/move AR samples
#jira: UE-64944
Change 4437901 by Mikey.Boyd
Resaved QA-Promotion and TM-ShaderModels to clear up warnings for Linear Color Curves in UE-64949.
#jira UE-29618
Change 4437877 by Dan.Oconnor
Guard against double-queuing in Macro BP gather phase
#jira None
Change 4437615 by Sorin.Gradinaru
UE-64624 App fails to open when packaged for Distribution - Android
#jira UE-64624
#Android
#4.21
As Chris.Babcock mentioned, this is caused by an app pause event triggered when the obb downloader starts and puts the activity in background. Adding a flag to ignore the first app pause in this situation.
Change 4437541 by Andrew.Porter
QAGame: Updating location of an animation so it can be visiblty in the sequence
#jira UE-29618
Change 4437078 by Mitchell.Wilson
Updating lerp tooltip based on updates by Sam Deiter.
#jira UEDOC-8219
Change 4436943 by Bogdan.Vasilache
UE-61698 - Android + Mouse: Hover events and Get Mouse Position on Viewport not working
#jira UE-61698
Change 4436915 by Dan.Oconnor
Remove debugging hook accidentally added in 4235135
#jira None
Change 4436204 by Joe.Graf
Switched the AREnvProbe sample to Metal 2.1 to fix the z-fighting that happens in 2.0 and below
#jira: UE-64932
Change 4435856 by Arciel.Rekman
Fix CIS (UE-64925).
#jira UE-64925
Change 4435811 by Mark.Satterthwaite
Sort out the way we report R11G11B10 support for Metal so that it should work correctly on iOS & tvOS.
#jira UE-64905
Change 4435783 by Brandon.Schaefer
libvpx: Rebuild on centos7
#jira UE-64887
Change 4435710 by Thomas.Sarkanen
Fixed crash drag-dropping a variable onto a state machine
#jira UE-64539 - [CrashReport] UE4Editor-CoreUObject.dylib!CastLogError()
Change 4435694 by Andrew.Grant
Removed some stale Orion tests
#jira UE-64857
Change 4435662 by Ben.Marsh
Rework the way that custom icons are used on Windows.
* For code projects, the custom icon is embedded into the resource when compiled from UBT. This ensures the custom icon is set even before packaging, and removes the need for a deployment step.
* For content projects, the custom icon is set after packaging using the previous method.
#jira UE-64527
Change 4435599 by Michael.Lentine
Avoid crash with null materials
#jira ue-64819
Change 4435596 by Michael.Lentine
Account for the case where skeletal mesh doesn't exsit in the component body setup.
#jira ue-63104
Change 4435563 by Brandon.Schaefer
SDL2: Fix pointer barriers on resize/move and multimonitor
Part of this change is from PR 5041 (thanks yaakuro)
#jira UE-60461, UE-63372
Change 4435557 by Michael.Lentine
Allow for non uniform scaling in some of the capsule functions.
#jira ue-59651
Change 4435518 by Mitchell.Wilson
Saving two assets to resolve empty engine version warnings in RemoteSessionApp
#jira UE-64747
Change 4435416 by Robert.Manuszewski
Fixing a Cook On The Fly server crash when an asset that has been requested by the client is missing from the server
#jira UE-64616
Change 4434780 by Uriel.Doyon
Fixed Niagara proxy rendering in ES2 while the shaders are not available.
#jira UE-64666
Change 4434758 by Joe.Graf
Fixed the use of deprecated NSKeyedArchiver and NSKeyedUnarchiver methods
#jira: UE-64913
Change 4434757 by Joe.Graf
Removed invalid plugins that were specified for the AR samples
#jira: UE-64914
Change 4434497 by Joe.Graf
Fixed incomplete merge of ARSharedWorld sample
#jira: UE-64673
Change 4434281 by Joe.Conley
#jira UE-63793 - ARKit Crash with Session Type: Image
Removing error logging since it's also getting logged higher up in the callstack.
Change 4434250 by Joe.Conley
#jira UE-63793 - ARKit Crash with Session Type: Image
Instead of an assert (and thus crash) if Session Configuration is null (which happens if device/os doesn't support ARKit 2.0), just print out an error to the log and keep running.
Change 4434173 by Aaron.McLeran
Fix for audio device shutdown
-- Actually, need to make sure the flush code doesn't execute on platforms without threads. This will still fail on HTML5
#jira UE-64619
Change 4434112 by Aaron.McLeran
Bug fix pausability
- Pausing sound while stopping can cause a crash when updating the sound
#jira none
Change 4433986 by Michael.Lentine
Avoid dereferencing null.
#jira ue-63593
Change 4433954 by Michael.Lentine
Use correct enable flag.
#jira ue-64801
Change 4433867 by Uriel.Doyon
Fixed integration issue from Niagara with "Collision Query" module
#jira UE-64906
Change 4433779 by Dan.Oconnor
Mirror 4379405 from Dev-Framework
Add flags to track bMarkedObjectsPendingKill and bCleanedUpWorld to ensure that sublevels are cleaned up properly
#jira UE-64227
Change 4433771 by Dan.Oconnor
Mirror 4365800 from Dev-Framework
Avoid marking a blueprint as modified when the compiler renames a graph
#jira UE-63942
Change 4433763 by Dan.Oconnor
Mirror 4363197 from Dev-Framework
Perform a placeholder resolve pass immediately after the CDO has been serialized
#jira UE-62928
Change 4433716 by Chris.Bunner
#author Bogdan.Vasilache
Comitting shelf 4433043 for UE-64237.
#jira UE-64237
Change 4433609 by Uriel.Doyon
Fixed how UNiagaraDataInterfaceCurlNoise release its render resource by adding a release command in BeginDestroy.
#jira UE-64898
Change 4433524 by zak.parrish
Final functionality for AR SaveLoad now in place. Just needs cleanup/commenting and About screen
#JIRA UE-64681
Change 4433512 by Christina.TempelaarL
Mirror 4373989 from Dev-Editor.
Cascade: Copy particle emitter properties when invoking Duplicate Emitter or Export Emitter in the Cascade editor.
#jira UE-63856
Change 4433328 by Chris.Babcock
Fix ConfigRules.jar parsing for Linux line endings
#jira UE-64892
#ue4
#android
Change 4433279 by Zachary.Wilson
Switching DoF methods for PostProcess volumes in QA_PostProcessing and TM_Showflags_LightingFeatures.
#jira UE-64659
Change 4433092 by Dan.Oconnor
Fix missing include
#jira None
Change 4433046 by Michael.Lentine
Renamed command to relfect actual behavior.
#jira ue-55368
Change 4433024 by Ben.Marsh
PR #5154: Prevent crunch_x64.exe from showing in Git commit changes (Contributed by projectgheist)
#jira
Change 4432990 by Wyeth.Johnson
Fixing issues related to particle mass and gravity
#jira none
Change 4432979 by Uriel.Doyon
Fixed DOF when enabling Pre-Exposure
Added units to the intensity property of point, spot, rect, directional and sky lights.
Refactored the VisualizeHDR so that it shows the HDR view is a PIP on top of the main render.
Fixed PixelInspector results being affected by pre-exposure.
Added a pre-exposure output value to the PixelInspector.
Moved ExposureCompensation to the Exposure tab in post-process settings.
Changed max slider intensity for directional light to be in 120 000 lux
Changed max slider intensity for sky light to be in 50 000 cd/m2
Non bUseInverseSquaredFalloff point lights now have their units forced to ELightUnits::Unitless
Moved light units to advanced display, now that the unit is embeded in the Intensity property
Added Candela, Lux and CandelaPerMeterSquared units to the engine units
Fixed meta data properties to support the "Units" keyword.
#jira UE-64881
Change 4432953 by Chris.Gagnon
CL 4356067 copied to Release-4.21
#jira UE-63861
Change 4432934 by Chris.Gagnon
CL 4399650 copied to Release-4.21
#jira UE-64070
Change 4432913 by Dan.Oconnor
Mirror 4363175 from Dev-Framework
Reuse subobjects during archetype reinstancing path
#jira UE-59135
Change 4432901 by Michael.Lentine
Adding missing counter.
#jira ue-59969
Change 4432895 by Dan.Oconnor
Mirror 4344890 from Dev-Framework
Make FObjectFinder visibile to reference collectors and properly replace subobjects on the CDO. This fixes instability after reloading the FirstPersonCharacter blueprint
#jira UE-54419, UE-63061
Change 4432805 by Uriel.Doyon
Fixed error when compiling some Niagara GPU particles
#jira UE-64885
Change 4432789 by Michael.Lentine
Fix comments.
#jira 58064
Change 4432766 by Ben.Marsh
Fix issues with mismatched solution/project configurations.
* Every C++ project now has an "invalid" configuration. Trying to build any solution configuration which does not apply to the project will now build that, which prints an error rather than building a completely different configuration.
* Available configurations are now parsed from C# files, so the "Release" configuration will now be used if "Development" is not available, and platforms are supported correctly.
* Programs are now built in game and editor configurations.
#jira UE-59288
Change 4432649 by Michael.Lentine
Resize Temp instead of Out.
#jira ue-62919
Change 4432540 by Chris.Bunner
[Duplicating 4432262] - HLOD visibility state is now cleared when not in use.
#jira UE-64432
Change 4431926 by Chad.Garyet
Integrating changes from dev-build over to release-4.21
- Add win64 host support to DDC Group Linux
- Change project params split to remove empty entries
- Change BuildDerivedDataCache to skip building a feature pack if there are no project specific platforms for it out of the available targetplatforms
#jira UE-62311
Change 4431602 by Simon.Therriault
Merging MediaBundle fix
#jira UE-64853
Change 4431481 by Brandon.Schaefer
Linux: Break grabs and bring down pointer barreirs when we have crashed
#jira UE-63981
[at]Arciel.Rekman
Change 4431456 by Jules.Blok
Merging CL 4428447 from Dev-VR - Update the WMR plugin for Dev-Rendering changes.
#jira UE-64507
Change 4431310 by Robert.Manuszewski
Fixed a crash when setting the initial size of the disregard for Garbage Collection pool to a value greater than 66560.
#jira UE-64844
Change 4431307 by Sorin.Gradinaru
UE-64749 App crashes on device when a Widget Blueprint in use contains a Web Browser widget
#jira UE-64749
#Android
#iOS
#4.21
Moving SharedThis(this) out of the WB Window's constructor
Change 4431161 by Robert.Manuszewski
Fixing CIS
#jira none
Change 4431153 by Sorin.Gradinaru
UE-63263 Startup movies are not playing on tvOS
#jira UE-63263
#4.21
#tvOS
Startup movies need AppleMoviePlayer.uplugin, which was never enabled for tvOS.
Same behavior as an iPhone/iPad, slightly stuttering at first run, plays fine afterwards
Change 4430958 by Matt.Collins
Returns the default context from GetCurrentContext if none is set. Fixes crash in UE-64369. This is probably not 100% correct - we should fix all the cases where GetCurrentContext is called and a context is not set.
#jira UE-64369
Change 4430862 by Matt.Collins
Turning GPU Command Buffer timing back on. Enables correct profiling.
#jira UE-64841
Change 4430813 by Marcin.Undak
Linux: fixed editor launch with no audio device
#jira UE-64506
Change 4430783 by Ben.Marsh
Include Mac build files on Windows (eg. shell scripts, mono) to support remote compilation.
#jira UE-64684
Change 4430761 by Ben.Marsh
Fix issues with running DsymExporter remotely from a PC, and reorder engine filters to reduce the amount of junk which has to be re-transferred every time.
#jira UE-63883
Change 4430445 by Chris.Gagnon
Copy of CL 4416373
Extend GCompilingBlueprint lifetime to include BroadcastBlueprintReinstanced when compiling synchronously
#jira None
Change 4430103 by Ben.Marsh
Make sure Newtonsoft is included in the installed engine build. (Also ignore *.build.cs that aren't enumerated from the targets we build; they won't be usable)
#jira UE-64777
Change 4430050 by Ben.Marsh
PR #5151: Fix BuildPlugin automation command to include Shaders folder (Contributed by pluranium)
#jira UE-64781
Change 4430037 by Ben.Marsh
UBT: Fix generating and checking for UHT manifest in the wrong location. If a target does not have a script plugin, the manifest should not be stored in the project binaries directory.
#jira
Change 4430035 by Alexis.Matte
Port a fix from cl: 4366690
Fix the material ID when creating generating reduce LODs from a mesh where the materials was re-order to the FBX order.
#jira UE-64028
Change 4429730 by Ryan.Vance
#jira UEVR-1322
Instead of tearing down and spinning up the render thread / rhi thread pipeline on pause, simply disable and enable rendering.
This leaves the rendering infrastructure intact, but with no work to do.
Change 4429709 by Ryan.Vance
#jira UE-64289
Distortion correct mesh generation needs to happen on the render thread.
Change 4429690 by Ryan.Vance
#jira UE-63538
From 4.20.3 hotfix: 4333358
Test render target texture size if available to ensure we don't do an extra upscale when not needed.
The render target size is not updated when the backing render target texture is reallocated.
Change 4429671 by Ryan.Vance
#jira UE-63333
Lumin needs task threads to avoid saturating a single core. Reverting to previous task thread behavior for lumin.
Change 4429489 by Mitchell.Wilson
Saving curve assets to resolve warnings.
#jira UE-64744
Change 4429160 by Wyeth.Johnson
First pass at integrating mass as a first class citizen. This includes solver changes, a new gravity force, and updates to a number of other force modules and templates
#jira none
Change 4429064 by Mitchell.Wilson
Updating default iOS version to 10 in samples and templates
#jira UE-64815
Change 4428944 by Michael.Trepka
Fixed issues with cursor locking on window activation on Mac
#jira UE-13768
Change 4428879 by Ben.Marsh
Fix error generating dsyms on Mac through the remote toolchain.
#jira UE-63883
Change 4428729 by Ben.Marsh
Fix warning about missing expat libs when generating projects from installed build on Mac.
#jira UE-64740
Change 4428710 by Dan.Oconnor
When recompiling a blueprint macro library we now do a full compile of all dependent blueprints
#jira UE-63284
Change 4428331 by frankie.dipietro
Update TM-FocusPriority to utilize a looping Music file
#jira UE-29618
Change 4428295 by Rex.Hill
Fixed debug hud not drawing during simulate in editor
#jira UE-64704
Change 4428255 by Zachary.Wilson
Removing Bokeh and Gaussian DoF tests that were displaying a warning
#jira UE-64659
Change 4428236 by Andrew.Rodham
Sequencer: Fixed edge case where equvalent range bounds were not considered equal
#jira UE-64742
Change 4428210 by zak.parrish
#JIRA UE-64681
Getting proper save reporting in place on AR Save Load
Change 4428146 by Ben.Marsh
Fix CIS error.
#jira
Change 4428046 by Chris.Babcock
Fix bad merge
#jira UE-64784
#ue4
#android
Change 4427865 by Ben.Marsh
Add missing include causing CIS error.
#jira
Change 4427846 by Ben.Marsh
When we detect a hang and send an ensure crash report, include the callstack of the thread that hung.
#jira UE-63982
Change 4427716 by Peter.Sauerbrei
deprecate IOS 9
#jira UE-64018
Change 4427575 by Cody.Albert
Fixed ShooterGame best score logic
#jira UE-64514
Change 4427537 by Frank.Fella
Niagara - Disable the houdini plugin in engine test since we're not actively testing it and it's causing lots of cooking problems.
#jira UE-64736
Change 4427273 by Stefan.Boberg
PR #5123: Small typo in Engine.h (Contributed by Vatyx)
#jira UE-64496
Change 4427126 by Simon.Tovey
Merging from Dev-Niagara 4427076
Fix for static analysis warnings.
#jira UE-64717
Change 4427014 by Simon.Therriault
Fix for MediaFrameworkUtilities plugin
#jira UE-64774
Change 4426983 by Ben.Marsh
Remove natvis file from UE4 project.
#jira
Change 4426920 by Sorin.Gradinaru
Unshelved from pending changelist '4398174':
UE-54804 Graphical stuttering for weapon model on Lenovo S939 in First Person Template Project
#jira UE-54804
#Android
#4.21
The bug was generated by CL3840215 - the fix for UE-53592: Assertion right after rendering scene on Lenovo S939. I've retested UE-53592 on my side and it's OK.
Also, when building a sample (eg. First Person) on //Dev-Main, the game crashed at start with:
D/UE4 (22619): Assertion failed: glProgramParameteri [File:C:/Work/UE4_Main/Engine/Source/Runtime/OpenGLDrv/Private\Android/AndroidOpenGL.h] [Line: 479]
Change 4426571 by Ben.Marsh
Fix UAT compile error.
#jira
Change 4426569 by Ben.Marsh
UnrealVS: Fix single-file compile not working for foreign projects where the engine folder contains a space.
#jira UE-64752
Change 4426529 by Ben.Marsh
Various fixes/improvements to program plugins.
* Runtime plugins are no longer loaded for every program (as was the case in 4.20)
* If a module is whitelisted for a specific program, it will be enabled regardless of whether the Type is "Program" or not.
* The bCanBeUsedWithUnrealHeaderTool flag in the plugin descriptor is now translated into support for the "UnrealHeaderTool" program on load.
* Restored support for the RuntimeAndProgram module type.
* Plugins are now enabled in UHT by passing the project on the command line, rather than passing explicit plugins to enable.
#jira UE-64247, UE-64595
Change 4426481 by Jeff.Fisher
UE-64597 //UE4/Release-4.21 - Build DDC Win64 - BP_DebugMenu has been saved with empty engine version
-resaved
#jira UE-64597
Change 4426400 by Ben.Marsh
Fix extra blank line at the end of ManagedProcess output.
#jira UE-64780
Change 4426398 by Arciel.Rekman
Linux: fix ARM server build (UE-64775).
#jira UE-64775
Change 4426126 by Dan.Oconnor
Harden EdGraphPin serialization
#jira UE-64500
Change 4426071 by Dan.Oconnor
Added logging to Blueprint merge operation
#jira UE-58891
Change 4426061 by Phillip.Kavan
Fix for an EDL runtime assertion on load when constructing the CDO for a nativized Blueprint class that contains an instanced object reference of another nativized Blueprint class type that references an instance of a non-nativized Blueprint class as a nested, class-owned subobject.
- Mirrored from //UE4/Dev-Framework (4413311).
#jira UE-62514
Change 4426031 by Phillip.Kavan
Fix potential data loss in inherited SCS component default value overrides at runtime in a cooked build for an instance of a non-nativized child Blueprint class that inherits from a nativized parent Blueprint class.
- Mirrored from //UE4/Dev-Framework (4365827).
#jira UE-63757
Change 4425975 by Phillip.Kavan
Fix potential CDO validation failures at cook time during the C++ code generation pass when Blueprint nativization is enabled.
- Mirrored from 4371073.
#jira UE-63647
Change 4425952 by Chris.Babcock
Add notification channel for Android 26 compatibility
#jira UE-62741
#ue4
#android
Change 4425916 by Dan.Oconnor
Added logging to package reloading
#jira UE-63834
Change 4425857 by Rolando.Caloca
UE4.21 - FIx crash on html5
#jira UE-64690
Change 4425808 by Jeff.Fisher
Merging using Dev-VR_to_Release-4.21 Change: 4425273 UEVR-1333 MRMesh normals problems
-Normals should not be world scaled.
#jira UEVR-1333
Files:
//UE4/Dev-VR/Engine/Plugins/Lumin/MagicLeap/Source/MagicLeap/Private/MeshTrackerComponent.cpp#13
Change 4425722 by Rolando.Caloca
UE4.21 - Android compile fix
#jira
Change 4425408 by Phillip.Kavan
Fix UBT warnings when building/packaging with Blueprint nativization enabled.
- Mirrored from //UE4/Dev-Framework (4352144).
#jira UE-62946, UE-63311
Change 4425238 by frankie.dipietro
Update TM-FocusPriority so that tests may utilize 8 audio channels
#jira UE-29618
Change 4425232 by Jamie.Dale
Fixed crash when re-pointing an object referenced in Python
#jira UE-64363
Change 4425194 by Phillip.Kavan
Support a proper fallback to construct any native 'noexport' struct-typed literal term in a nativized Blueprint class.
- Mirrored from //UE4/Dev-Framework (4347635).
#jira UE-63364
Change 4424786 by Brian.Zaugg
Add support for new iOS UserNotifications framework, enabled if min iOS version is set >= 10.
#jira UE-51041, UE-59178
Change 4424584 by Ben.Marsh
Include the Visual Studio .natvis file as a solution item, to fix problems with VS2017 15.8.5 not finding it in a makefile project.
#jira UE-64733
Change 4424410 by Max.Chen
Sequencer: Fix deprecation
#jira UE-48190
Change 4424364 by Frank.Fella
Niagara - Fix static analysis for SItemSelector.h - Preflight passed.
#jira UE-64719
Change 4424291 by Shaun.Kime
Volume texture work should not be pulled over from Dev-Niagara yet
#jira UE-64756
Change 4424021 by Jason.Bestimt
Merging CL 4401151 from Dev-VR - Adding destructor to SoundPresets
#JIRA:none
Change 4423955 by Brandon.Schaefer
Linux: Add a timer when we lose focus to check if we have lost application focus
#jira UE-63931
Change 4422974 by Robert.Manuszewski
Fixing CIS
#jira UE-64741
Change 4422709 by Jason.Bestimt
Merging CL# 4419752 from Dev-VR - Fixes to prevent audio from crashing on exit
#JIRA: none
Change 4422691 by Jamie.Dale
Fixing localization warnings
Added support for gathering from the newly added UI_COMMAND_EXT macro
#jira
Change 4422394 by Sorin.Gradinaru
UE-64066 TM-Gameplay Load Game does not work on TVOS
#jira UE-64066 TM-Gameplay Load Game does not work on TVOS
#tvOS
#4.21
Blocker: GRHIHDRDisplayOutputFormat must have a default value for tvOS (PF_B8G8R8A8, just like mac or ios for non-hdr). The issue appeared at CL4092793 [at] //UE4/Dev-Rendering, 5/24/2018
Change 4422285 by Jamie.Dale
Fixing localization warnings
#jira
Change 4421911 by Chris.Babcock
Fix issues with LLDB data formatters with 2 byte characters
#jira UE-64737
#ue4
Change 4421833 by Wyeth.Johnson
#jira 64735
Sample Skel Mesh refactor to fix it not initializing, still bugged for vertex colors
Change 4421316 by Jamie.Dale
Fixing localization warnings
#jira
Change 4421223 by Ben.Marsh
Add an experimental setting to enable support for long paths in the content browser.
#jira
Change 4421197 by Jamie.Dale
Fixing localization warnings
#jira
Change 4421191 by Jamie.Dale
Fixing localization warnings
#jira
Change 4421179 by Rolando.Caloca
UE4.21 - Vulkan - Add missing viewport resize function
- Separate num buffers per usage
#jira
Change 4420955 by Michael.Trepka
Ignore tooltips and cursor decorator windows when determining the window under cursor on Mac
#jira UE-64645
Change 4420323 by Robert.Manuszewski
Reimplementing CL #4402016 from Dev-Core:
Fixed cooked materials not working in the editor
#jira UE-64389
Change 4420227 by Rex.Hill
Fix USD Linux compiler warning
#jira UE-63658
Change 4420198 by Ben.Marsh
UBT: Detect changes to source directories and invalidate the makefile if they are newer. Forces the makefile to be rebuilt when files are added or removed.
#jira UE-42601
Change 4420194 by Mitchell.Wilson
Saving color curve assets to resolve warnings.
#jira UE-64724
Change 4419740 by Jamie.Dale
Don't force LocRes files to always use Unicode strings
The automatic Unicode detection works just fine for them, and changing this can produce considerably smaller (up-to 50% smaller!) LocRes files
#jira
Change 4419728 by Mikey.Boyd
Updating TM-MaterialAttributes map and MaterialAttributes_Widget for cleaner testing of UEQATC-3497. Set the level to the default GameMode, updated the level blueprint, and disabled interaction with the widget bp.
#jira UE-29618
Change 4419646 by Ben.Marsh
UBT: Determine the correct user directory when remote compiling on Mac, rather than inferring it from the user name. The user name can be changed after an account is created.
#jira UE-64071
Change 4419529 by Jules.Blok
Merging CL 4323685 from Dev-VR - Fix GLES occlusion queries when HDR is disabled.
Add occlusion query support for Multi-View.
Add ShowFlag to visualize occlusion query bounding meshes.
#jira UE-62347
Change 4419528 by Jules.Blok
Merging CL 4323400 from Dev-VR - Remove StereoPair in favor of visibility map merging introduced in CL 4036044
#jira UE-62738
Change 4419525 by Stefan.Boberg
Reduce CPU usage for Cook-on-the-fly server by not busy-waiting for assets to cook.
Added an event which is signaled when a network request has been received. The main COTF loop blocks on this event when the cook request queue is empty. This reduces CPU usage while keeping the request latency low.
#jira UE-51348
graeme.thornton, martin.ridgers
Change 4419034 by Ben.Marsh
Allow plugins specified on the command line to override engine plugins.
#jira UE-64685
Change 4419015 by Frank.Fella
Niagara - Fix linux compile error from CL 4418815.
#jira UE-63379
Change 4418931 by Frank.Fella
Niagara - Fix Win32 compile issue caused by cl 4418639
#jira UE-61823
Change 4418887 by Frank.Fella
Merging from Dev-Niagara all plugin content updates.
#jira UE-64711
Change 4418883 by Uriel.Doyon
Fixed GPU emitters not being ticked correctly on the renderthread.
#jira UE-64710
Change 4418817 by Chris.Babcock
Fix for x86 and x86_64 Android architectures with NDK14b
#jira UE-64708
#ue4
#android
Change 4418815 by Frank.Fella
Merging from Dev-Niagara 4399353 for nicholas.goldstein
Improve discoverability of and navigability to parent Emitters in Systems
#jira UE-63379
Change 4418709 by Frank.Fella
Merging from Dev-Niagara 4397394 for nicholas.goldstein
Add missing entries and param creation subcategory to Set Variables module.
#jira UE-63373
Change 4418639 by Frank.Fella
Merging from Dev-Niagara 4360525, 4360676, 4364096 for Simon.Tovey
Some compile time optimizations
- Moved large map of hlsl keyword replacements from C++ to ini file to improve compile times.
- Now not using templates to handle input parameters to data interface. Now taking a bit from the bytecode offset to denote constant vs register.
- As well as improving compile times, this also makes DIs far easier to write and maintain so I've rolled out to all DIs. Has no affect on perf.
- Moved some things into the VectorVM namesspace.
#jira UE-61823
Change 4418333 by Mark.Satterthwaite
Fix incorrect usage of a CFDictionary passed into IOServiceGetMatchingServices which releases it for us. #rb none #jira UE-62569
Change 4418323 by zak.parrish
Checking in files for SaveLoad - almost done. Need to update save status and do the helpAbout screen
#JIRA UE-64681
Change 4418307 by Frank.Fella
Merging from Dev-Niagara 4357655 for nicholas.goldstein
Fix various capitalization inconsistencies in niagara stack menus
#jira UE-63371
#jira UE-63446
Change 4418242 by Frank.Fella
Merging from Dev-Niagara 4356331 for nicholas.goldstein
Add Spacer between Event Handler header row and added Event Handler properties
#jira UE-63390
Change 4418222 by Dan.Oconnor
Close blueprint editor when replacing a blueprint, avoiding crash when using the merge tool to reload a blueprint
#jira UE-64435
Change 4418217 by Frank.Fella
Merging from Dev-Niagara 4356318 for nicholas.goldstein
Adjust DisplayName generation of linked inputs in Niagara Stack input options to show the entire namespace and to not pass through FName::NameToDisplayString
#jira UE-63387
#jira UE-60349
Change 4418163 by Frank.Fella
Merging from Dev-Niagara 4346597, 4346602, 4346709, 4353333, 4353344, 4353346, 4353355, 4355466, 4355948, 4356192
Niagara - New emitter and new system dialogs
#jira UE-63765
Change 4418114 by Mark.Satterthwaite
Assert that Metal heaps and sub-allocated buffers are actually created properly to catch OoM errors. #rb none #jira UE-62235
Change 4417947 by Ben.Marsh
Compile DebugGame version of the launch module for installed builds.
#jira UE-64604
Change 4417554 by Joe.Conley
Merging using Dev-VR_to_Release-4.21
#jira UE-63210 - "Stereo layers persist in HMD after VR Preview"
#jira UE-54565 - "Packaged game/Editor with Stereo Layers crashes when exiting game through steam VR overlay"
Remove check(VROverlay) in FSteamVRHMD::GetStereoLayers() and just return nullptr if it is null.
Revert previous fix for UE-54565 that caused UE-63210
Change 4417553 by Joe.Conley
Merging using Dev-VR_to_Release-4.21
#jira UE-64054 MRC - Mixed Reality Calibration app does not let users toggle between attachment devices.
Enumerate Motion Sources was getting called before the Motion Controller modular features were being added.
Added a delay before calling Enumerate Motion Sources.
Change 4417552 by Joe.Conley
Merging to Release-4.21 (//UE4/Release-4.21)
#jira UE-63579 Assert when having too many VR devices
Increase max controllers to support more.
Change 4417533 by Ben.Marsh
Fix IPhonePackager not being included in installed builds created on a Mac.
#jira UE-58493
Change 4417495 by Joe.Conley
Back out changelist 4417484
Integrate automatically submitted this before I could convert it to an edit, back out.
#jira UE-63579 Assert when having too many VR devices
Change 4417484 by Joe.Conley
Merging using Dev-VR_to_Release-4.21
#jira UE-63579 Assert when having too many VR devices
Increase max controllers to support more.
Change 4417438 by Ben.Marsh
Prevent unzipped frameworks from being removed every time a remote IOS compile is started, preventing iterative builds.
#jira
Change 4417422 by Ben.Marsh
PR #4937: UE-62508: Add option to project launcher to include prerequisites com. (Contributed by projectgheist)
#jira UE-62508
Change 4417362 by Ben.Marsh
Fix compile warning when converting a blueprint project to native.
#jira UE-63802
Change 4417357 by Jerome.Delattre
Copying from Dev-Enterprise CL 4364256
Fix typo in FGenericPlatformMemory::DumpStats to properly report the free virtual memory.
#author Martin.Sevigny
#jira
Change 4417350 by Jerome.Delattre
Copying from Dev-Enterprise CL 4364260
SceneCapture: Don't CaptureOnMovement if CaptureEveryFrame is enabled. This prevent the capture from happening twice in 1 frame.
#author Martin.Sevigny
#jira UE-64686
Change 4417333 by Uriel.Doyon
Reduced the amount of interpolants in FVertexFactoryInterpolantsVSToPS by the Niagara when using DynamicParameters.
Now only the param required are used where as before the count was defined by the max index.
#jira UE-63712
Change 4417318 by Dan.Oconnor
Improve error messaging when a class creates its CDO while the class layout is being created
#jira UE-64534
Change 4417276 by Frank.Fella
Merging 4340773 from Dev-Niagara for nicholas.goldstein
Add UProperty Specifiers to PropertyMetaData to fix displayed name and tooltip
#jira UE-63233
Change 4417226 by Frank.Fella
Merging 4340719 from Dev-Niagara for nicholas.goldstein
Disable Widget focus of expander arrows and pulldown arrows in Niagara Stack to prevent unexpected tab selection
#jira UE-63380
Change 4417196 by Patrick.Boutot
Create a 10bit media texture for CharBGR10A2 media format.
#jira UE-64682
Change 4417193 by Patrick.Boutot
Keep a reference to the current MediaProfile's proxy to prevent GC
Move MediaProfileSettings to default config.
#jira UE-64475
Change 4417192 by Patrick.Boutot
Deprecate ABGR16 and Float RGB from EDefaultBackBufferPixelFormat. They are not supported by D3DX SwapChain. The jira has more info on which formats are supported.
#jira UE-63090
Change 4416191 by zak.parrish
Resaving Debug menu for TP_ARBP template
#JIRA UE-64678
Change 4416030 by Marc.Audy
Remove broken test (as best it can be told it could never have worked)
#jira UE-64547
Change 4415784 by Marc.Audy
PR #5133: UE-64479 Fix the icon display for the Timeline node replication status (Contributed by mamoniem)
PR #5132: UE-64479: Replicated icon shows up for timelines in BP (Contributed by projectgheist)
#jira UE-64479
#jira UE-64596
#jira UE-64606
Change 4415763 by Steve.Robb
Fixes for improperly initialized USTRUCT() members.
#jira UE-64551
#jira UE-64546
Change 4415723 by Rolando.Caloca
UE4.21 - Remove Linux hack for Vulkan
#jira
Change 4415679 by Rolando.Caloca
UE4.21 - Copy fix from 4415584 and 4401641
- Added support for -vulkanpresentmode=N where N is a VkPresentModeKHR
- This prevents the CPU from getting more than one frame ahead of the GPU. In addition to making the Vulkan RHI more consistent with the DX RHIs and reducing game input latency, this also fixes the issue where memory for volatile uniform buffers could be overwritten by the CPU before the GPU was done with it. This could happen when running in immediate present mode with frame pacing and smoothing disabled, as the CPU could get several frames ahead of the GPU.
#jira
Change 4415654 by Jamie.Dale
Fixed the editor failing to load the native game localization data during init
#jira UE-64097
Change 4415635 by Jamie.Dale
Fixed null pointer access in setting helpers
#jira
Change 4415630 by Jamie.Dale
Ensure we GC at various points that could have left lingering references to items being content hot-reloaded
#jira
Change 4415624 by Jamie.Dale
Ensure that the transient instance created by the material editor is marked pending-kill once the material editor is closed
This fixes an issue where a lingering material editor instance would re-apply old material constant values after a content hot-reload, as the content hot-reload would call PostEditChange on the lingering instance.
#jira
Change 4415620 by Jamie.Dale
Fixed type validation of objects within containers
#jira UE-64151
Change 4415613 by Jamie.Dale
Fixed crash when deleting a package without an SSC state
#jira
Change 4415592 by Marcin.Undak
UAT: Aways create directory before saving encryption parameters
#jira none
Change 4415590 by Jamie.Dale
Merging CL# 4357533, CL# 4366557 and CL# 4374101
#jira
Change 4415577 by Marcin.Undak
Linux: fixed WebM crash
#jira UE-64157
Change 4415340 by frankie.dipietro
Empty M_VolumeSampler for testing
#jira UE-29618
Change 4415334 by frankie.dipietro
Adjust M_VolumeSample test material to use Emissive
#jira UE-29618
Change 4415085 by Ben.Marsh
Restore const signature for FApplePlatformCrashContext::ReportCrash() for compatibility with callbacks.
#jira
Change 4415032 by Ben.Marsh
Fix Mac compile error due to calling non-const function.
#jira
Change 4415005 by frankie.dipietro
Add M_VolumeSample to QAGame to aid Volume Texture testing
#jira UE-29618
Change 4414930 by Ben.Marsh
Include portable callstacks in ensures.
#jira UE-64574
Change 4414631 by Graeme.Thornton
Fix for crash when running automation tests
#jira UE-64652
Change 4414055 by Dan.Oconnor
Remove use of FAssetData to avoid side effects that can result in CDO creation
#jira UE-64534
Change 4413933 by Jeff.Fisher
Merging using Dev-VR_to_Release-4.21
4374589 UE-57680 [CrashReport] UE4Editor_SteamVR!FSteamVRModel::GetRawMeshData() [steamvrassetmanager.cpp:307]
-Added some more logging to try to figure out why this is crashing. Logs the resourceID of the steamVRMesh which might tell us if this is happening with some specific hardware. Also logs index and vertex counts and pointers to see if the data is somewhat malformed or just completely invalid.
4380355 UE-57680 [CrashReport] UE4Editor_SteamVR!FSteamVRModel::GetRawMeshData() [steamvrassetmanager.cpp:307]
-Two more log lines for steamvr shutdown. Maybe we are trying to get the models after shutdown and get bad data?
#jira UE-57680
Change 4413599 by Mitchell.Wilson
Saving SunlightColorLUT to resolve warning.
#jira UE-64648
Change 4413343 by Ben.Marsh
Add Rsync filters to installed build on Windows.
#jira UE-64623
Change 4413276 by Ben.Marsh
Remove logic that prevents UHT compiling on Mac during a remote build.
#jira UE-64493
Change 4413205 by Ben.Marsh
Fix missing dependencies from installed build on Mac and Linux.
#jira UE-64629
Change 4413154 by Jason.Bestimt
Merging CL 4379292 from Dev-VR - Fixes for mobile static draw list using incorrect material render proxy
#JIRA: UEVR-1321
Change 4413148 by Jason.Bestimt
Merging CL 4373138 from Dev-VR - Fix for media texture crash on Lumin
#JIRA: UEVR-1319
Change 4413142 by Jason.Bestimt
Merging CL 4347297 from Dev-VR - Swapping double to single quote to fix Mac Editor packaging for Lumin
#JIRA: UE-63556
Change 4412619 by Jason.Bestimt
Merging CL 4331753 from Dev-VR - Allowing output log to capture warning and error verbosity from commandline output it receives (like launch on Lumin)
#JIRA: UE-62981
Change 4412526 by Jason.Bestimt
Merging CL 4311018 from Dev-VR - Preventing multiple lumin frame timing hints while the graphics context isn't valid
#JIRA: UE-62031
Change 4412517 by Jason.Bestimt
Merging CL 4304939 from Dev-VR - Commenting out Eye Tracker init log until the feature is complete.
#JIRA: UE-61413
Change 4412515 by Jason.Bestimt
Merging CL 4304711 from Dev-VR - Downgrading sandbox jail warning to log, as it is expected output
#JIRA: UE-62992
Change 4412508 by Jason.Bestimt
Merging CL 4303846 from Dev-VR - Fix for fully qualified name in header
#JIRA: UE-62068
Change 4412496 by Jason.Bestimt
Merging CL 4303647 from Dev-VR - Fixing synth style warnings in Lumin Sample
#JIRA: UE-62068
Change 4412491 by Jason.Bestimt
Integrating CL 4303618 from Dev-VR to remove Lumin Emulator plugins
Change 4412425 by Mitchell.Wilson
Updating GetLinearColor nodes in BP_Sky_Sphere to GetClampedLinearColor nodes. Saving curves due to the change to resolve warnings.
#jira UE-64228
Change 4412349 by Lauren.Ridge
Adding custom version to linear color curve assets
#jira UE-64228
Change 4412302 by Ben.Marsh
Include the full filename of the config file if we can't save a backup. Attempt to track down UE-64554.
#jira UE-64554
Change 4412161 by frankie.dipietro
Adding bUsedWithStaticLighting flag to M_Roughness_0 to fix RectLight test
#jira UE-29618
Change 4411692 by tim.gautier
Minor adjustment to M_Tree_FallTreeMerged_01 - added a StaticSwitchParam
#jira UE-29618
Change 4411522 by Lauren.Ridge
PostLoad check and additional GetClampedColorValue BP function for linear color curves
#jira UE-64228
Change 4411494 by Francis.Hurteau
Copied 4359025 Francis.Hurteau
Test if have a valid continuation before running it when setting continuation on a ready future
#jira UE-64567
Change 4411151 by Jeff.Fisher
Merging using Dev-VR_to_Release-4.21
4345353 UE-62255 Google 6DOF Motion Controller Support
-Added support for 6DOF controller tracking on daydream.
-Project Settings->Android->Advanced APK Packaging->Configure GoogleVR to support specific hardware configurations-> Set to Daydream(6.6 DoF) to enable support for two 6dof controllers. A single 3dof controller is also supported by this configuration, as is a single 6dof controller.
-Currently the 3dof controller is detected only by noticing that the positions returned for all controllers are exactly 0,0,0 per Google reccomendation. A future API should make it explicit when a controller is 3dof or 6dof.
-Currently we arbitrarily make the controller at index 0 the right and the one at 1 the left. A future api should let us query for controller handedness.
4346387 Fixing build break in GoogleVRControllerFunctionLibrary.h
4349142 Fixing GoogleVRController build warning
4349742 Fixing AndroidRuntimeSettings build errors.
4350977 Fix for static analysis warning
4351170 Build fix for bad assert
#jira UE-62255
Change 4410947 by Lina.Halper
#DUPEMERGE
Fixes many reference pose issues, where they want to add node, and how it updates, and how they could move
- mainly execution can be disabled by button, and we will mark to compile when it needs recompile due to hierarchy change
- added quick warning to log when hierarchy is missing
- still lots of things need more iteration
- fixed assets
#jira: UE-63136
Change 4410550 by Lauren.Ridge
Fix for ListView not propagating selection change events
#jira UE-64118
Change 4410527 by Lauren.Ridge
Adding condition to guard against crash when pasting comments
#jira UE-63214
Change 4410512 by Marcin.Undak
UAT: Create manifest directory, before writing to it
#jira none
Change 4410511 by Lauren.Ridge
Fix for crash on spamming trigger presses in VR mode
#jira UE-63608
Change 4410489 by Lauren.Ridge
Fix for disappearing UI handle in VR mode
#jira UE-63622
Change 4410364 by Ben.Marsh
PR #5138: Fix bForceBuildShaderFormats not being read correctly in TargetRules (Contributed by rlabrecque)
#jira UE-64611
Change 4410086 by Ben.Marsh
UAT: Show timing/agent info in UAT the same way as in UBT, to make it easier to track down badly configured agents.
(Originallly CL 4343393 in Dev-Build)
#jira
Change 4410018 by Lina.Halper
#DUPE MERGe
Merging using Dev-Anim<->Release4.21
fix motion blur issue on poseable mesh component
#jira: UE-62296
Change 4409981 by Simon.Tourangeau
SunPosition plugin
#jira UE-64075
Change 4409913 by Michael.Kirzinger
Fix FUniqueNetIdRepl serialization for out of engine OSSs. Use FNetBitReader/Writer in the serialization test so it properly tests network replication
#jira UE-63326
[at]josh.markiewicz
Change 4409838 by Simon.Tourangeau
Integrate misc nDisplay fixes from Dev-Enterprise
- nDisplayLauncher: Removed useless no-val command line arguments
- Fixed Editor crash when translation direction is set in BP_DemoWand_Blueprint
- Use quotation marks for paths
- A lot of nDisplay warings "wand not found"
- nDisplayLauncher passes custom arguments at beginning
- Update blueprints (resubmit + comments)
- Single view for monoscipic devices
- Move swap eye attribute to [cluster_node]
- Removed viewport flip feature
- Disable input on slave nodes
- Fix for GL3/4 monoscopic device. Missed changes for 'Viewport positioning fix'.
- Removed custom swap_int
- Fixed demo blueprints
- Fixed crash in DC components when the DC is not initialized
- Fixed visibility of some inherited members
- Fixed Editor crash on second PIE session start
- Fix for viewport positioning
- BP API docs (comments)
- Turn off some screen effects in the nDisplay template project
#jira UE-64170
Change 4409812 by Simon.Tourangeau
USD SDK updated to v18.09
Merged from Dev-Enterprise
#author Rex.Hill
#jira UE-64140
Change 4409754 by Graeme.Thornton
Copy of CL 4385549 from Dev-Core
Try and detect a serialize function inside arbitrary preprocessor blocks and throw an error
Make a couple of other "can't have things inside preprocessor blocks" messages consistent with this one
#jira none
Change 4409671 by Jeff.Fisher
Merging using Dev-VR_to_Release-4.21
4392743 UE-63646 MagicLeap 4.21 redirects need updating
-Made redirectors more specific, found a way to do the updates without the MatchSubstring package update flag, to avoid a warning about how it is very slow.
#jira UE-63647
Change 4409395 by Ben.Marsh
Fix Python.build.cs adding locally generated *.pyc files as runtime dependencies. Since these files are not tracked as build products, they will not exist on other build machines, causing warnings when building DDC.
#jira
Change 4408881 by Max.Chen
Sequencer: Added missing ini change for 4395032
#jira UE-64258
Change 4408670 by Max.Chen
Sequencer: Step to next/prev key no longer uses ExclusiveEndFrame - 1. This fixes cases where you want to step to the last key of a section and add another animation clip that doesn't overlap.
#jira none
Change 4408662 by Max.Chen
Sequencer: Removed derived blueprint type for level sequence director blueprints
#jira UE-64258
Change 4408661 by Max.Chen
Sequencer: When evaluating a range of a sequence, all overlapping segments of that range are now guaranteed to be up-to-date and compiled.
This is a newer version of 4280319 which was backed out in 4317353, with the TRange::Overlaps issues addressed.
#jira UE-63336
#jira UE-62873
Change 4408660 by Max.Chen
Sequencer: Fix crash when converting matinee assets to sequences due to changes in events. Event keys will now have blueprint event endpoints created in the level sequence blueprint when converting.
#jira none
Change 4408354 by Marc.Audy
Fix additional cases where GetBlueprint could get called without a valid blueprint, thus checking
#jira UE-62444
Change 4408286 by Joe.Conley
#jira UE-64552 [CrashReport] UE4Editor_MagicLeap!UImageTrackerComponent::TickComponent() [imagetrackercomponent.cpp:391]
MagicLeap ImageTrackerComponent: Adding check for PLATFORM_LUMIN to prevent PIE crash running code that was designed to only run on device.
This had been fixed previously but somehow the fix got lost merging between streams.
Change 4408252 by Brandon.Schaefer
Doubles in the form of 1e+9999 can be larger then 30 chars, set aside more room
#jira UE-64582
Change 4408076 by Mike.Erwin
UAT: fix Iterative Deploy leaving behind old files on Android
(copy 4369737 from Dev-Build)
For iterative deploy on Android, files & directories not in staging will be zapped from the device.
The following directories are spared, to maintain config & logs on device:
Engine/Saved
Engine/Config
ProjectName/Saved
ProjectName/Config
Tested with Samsung Galaxy S6+ (Android 6.0) and Google Pixel 2 (Android 9.0)
#android
#jira UE-61686
Change 4408070 by Mike.Erwin
UAT: iterative deploy no longer prevents cleaning of staging directory
(copy 4369732 from Dev-Build)
Partial fix for
#jira UE-58838 UE-61686 UE-62879
Might need additional work to reduce file copies from Build to Stage.
Change 4407741 by Ben.Marsh
UBT: Avoid trying to figure out which mobile provision to use for a project when we already know the path to the provision we want. Also fix certificate not being updated if mobile provision changes.
#jira
Change 4407632 by Jamie.Dale
Removed pyc files from Python SDK
#jira UE-64531
Change 4407622 by Jamie.Dale
Updated Python SDK copy script to exclude pyc files
#jira UE-64531
Change 4407431 by Anousack.Kitisa
Copied 4392037 Anousack.Kitisa
Modified API for UV map generation.
#jira UE-63814
Change 4407427 by Ben.Marsh
Suppress warning for missing DebugNonUFS files when staging installed build.
#jira UE-64579
Change 4407401 by Anousack.Kitisa
Copied 4383601 Anousack.Kitisa
[StaticMeshEditor]:
* Fixed material assignment issue when re-importing Datasmith static mesh after deleting a section from the mesh.
* Fixed material issue when deleting a section from a mesh and undoing and chaging material on the mesh.
#jira UE-62480
Change 4407274 by Joe.Graf
Over merge reverted
#jira: fix
Change 4407268 by Anousack.Kitisa
Copied 4369800 Anousack.Kitisa
Import/export FBX metadata on SkeletalMesh and Skeleton assets.
#jira UEENT-1881
Change 4407220 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - AR samples updated
#jira: UE-64673
Change 4407213 by Rolando.Caloca
UE4.21 - Copy 4403346
DR - Fix post opaque extension running before lights
#jira
Change 4407208 by Anousack.Kitisa
Copied 4369604 JeanLuc.Corenthin
- Fixed indexing issue with FOverlappingCorners object created using a FmeshDescription object:
- Changed logic in building of FOverlappingCorners to be based on index of wedge, number of wedges equal 3 times the number of triangles like in FRawMesh, instead of index of vertex instances.
- Updated BuildVertexBuffer to take this new logic in account.
- Fixed crash in FMeshDescriptionOperations::CreateMikktTangents:
- MikkTSpace sdk does not handle properly faces with 0 vertices which occur with mesh description with invalid polygons.
#jira UE-62478, UE-63758
Change 4407188 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Fixed missing include when not using unity builds
#jira: UE-64673
Change 4407179 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added a way to see the ARKit CPU consumption across all of its threads
#jira: UE-64673
Change 4407178 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Bug fix for landscape image detection being at the wrong distance
#jira: UE-64673
Change 4407174 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Improved debug rendering of AR tracked images
#jira: UE-64673
Change 4407165 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added post edit change to force correct aspect ratios when editing physical size for detected images
#jira: UE-64673
Change 4407162 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Reverted premature merge
#jira: merge
Change 4407156 by Joe.Graf
Merging using Dev-VR_to_Release-4.21
#jira: merge
Change 4407146 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Point cloud rendering additions
#jira: UE-64673
Change 4407134 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added some config properties to box component for debug rendering
#jira: UE-64673
Change 4407128 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added missing #ifdef
#jira: UE-64673
Change 4407127 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - AR point cloud debug rendering support added
#jira: UE-64673
Change 4407119 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARVideoSettings sample
#jira: UE-64673
Change 4407113 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added a device orientation query in addition to the event that is present
#jira: UE-64673
Change 4407109 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Fixed a missing nullptr check that was causing AR apps to crash
#jira: UE-64673
Change 4407105 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added support for rotating an image while generating a jpeg for ARSharedWorld sample
#jira: UE-64673
Change 4407101 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added a set of properties to override thread priorities when using ARKit and UE4 is causing ARKit to starve
#jira: UE-64673
Change 4407098 by Joe.Graf
Merging using Dev-VR_to_Release-4.21
#jira: merge
Change 4407093 by Francis.Hurteau
Copied 4372687 Francis.Hurteau
Fix potential assert when changing ProtocolVersion based on ping messages
#jira UE-64035
Change 4407088 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Added scaling to jpeg creation for ARSharedWorld sample
#jira: UE-64673
Change 4407082 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407078 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Fix for null session config being passed to AR system
#jira: UE-64673
Change 4407074 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407064 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407061 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407052 by JeanLuc.Corenthin
Copy CL #4392021
- Fixed crash when importing model thru VRED importer
- Includes changes to StaticMeshBuilder.cpp made in CL #4369604
#jira UE-64152
Change 4407051 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407045 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Code suupport for streaming ar shared worlds
#jira: UE-64673
Change 4407039 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - ARSharedWorld sample
#jira: UE-64673
Change 4407032 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Improved AR template
#jira: UE-64673
Change 4407030 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Better BP exposure of GetMappingStatus for AR
#jira: UE-64673
Change 4407017 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Better double free fix for ar env probes
#jira: UE-64673
Change 4407012 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Double free fix for env probes
#jira: UE-64673
Change 4407007 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - AREnvProbe sample
#jira: UE-64673
Change 4407006 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - AREnvProbe sample
#jira: UE-64673
Change 4407003 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - AREnvProbe sample
#jira: UE-64673
Change 4406999 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Render doc fix for non-editor builds
#jira: merge
Change 4406994 by Anousack.Kitisa
Copied 4362955 JeanMichel.Dignard
Static Mesh Library : SetLodFromStaticMesh
- Assign materials to new LOD sections based on source mesh LOD.
- Copy LOD build settings from source.
#jira UE-63659, UE-64016
Change 4406992 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Fix for CLion IDE usage
#jira: merge
Change 4406987 by Joe.Graf
Merging using Dev-VR_to_Release-4.21 - Fix for missing property decoration for video modes
#jira: UE-64673
Change 4406944 by Max.Chen
Sequencer: Stop all sounds on tear down
#jira UE-63501
Change 4406942 by Mark.Satterthwaite
Duplicate CL #4398322: Rebuild mtlpp using Xcode 10 so Metal 2.1 works on iOS.
#jira N/A
Change 4406880 by Anousack.Kitisa
Copied 4356072 Anousack.Kitisa
[StaticMeshEditor]:
* Moved the UV channel removal functionality from the LOD details panel to the UV drop-down menu.
#jira UEENT-1827
Change 4406826 by Francis.Hurteau
Copied 4366928 Jeremie.Roy
Fix crashes related to the UndoHistory.
Add missing UndoBufferChangedDelegate broadcasts in EditorTransaction
#jira UE-64096
Change 4406820 by Anousack.Kitisa
Copied 4350474 Johan.Duparc
Fix UEditorAssetLibrary::DoesAssetExist to handle sub object name
#jira UE-62333
Change 4406783 by Anousack.Kitisa
Copied 4348861 Anousack.Kitisa
[StaticMeshEditor]:
* Fixed vertices being merged even though they don't share mergeable attributes.
#jira UE-62980
Change 4406752 by Anousack.Kitisa
Copied 4348838 Anousack.Kitisa
Fixed ConvertAnyPathToObjectPath returning wrong path for objects that are named differently than their package.
#jira UE-62333
Change 4406721 by Brandon.Schaefer
Linux: Set FORCE_ANSI_ALLOCATOR when using -EnableTSan to avoid multiple definitions
#jira UE-62804
Change 4406461 by Francis.Hurteau
Copied 4382276 Francis.Hurteau
Fix syncing streaming level visibility state with undo/redo
#jira UE-64315
Change 4406459 by Ben.Marsh
Fix temporary files containing dependency lists being created in Engine directory. Move them under Engine/Intermediate instead.
#jira
Change 4406451 by Brandon.Schaefer
Linux: Dont try to make current if our current window was the SplashScreen window we just destroyed
#jira UE-64211
Change 4406440 by Chris.Babcock
Remove AKEYCODE_BACK from valid gamepad keycodes to allow it when controllers are disabled
#jira UE-64350
#ue4
#android
Change 4406382 by Anousack.Kitisa
Copied 4393087 Patrick.Boutot
Add a shader source directory for the OpenCVLensDistortion plugin.
#jira UE-64568
Change 4406345 by Joe.Graf
Merge Xcode project generation fix to defaul to Legacy build mode using Dev-VR->Release-4.21
#jira: merge
Change 4405792 by JeanMichel.Dignard
Copied 4393315 JeanMichel.Dignard
Better telemetry for plugin warden
- Added more event attributes to track potential issues.
#jira UE-64280
Change 4405776 by JeanMichel.Dignard
Copied 4392578 JeanMichel.Dignard
Fixed actors not saving properly on a reimport when moved to a sublevel.
The issue is that they were being parented to actors from another level which isn't supported.
Also, the scene component template should refer to the parent component through a TSoftObjectPtr in case it's in another package.
#jira UE-62070
Change 4405738 by Mark.Satterthwaite
Duplicate CL #4396224: Remove another broken bit of legacy Metal code.
#jira UE-64128
Change 4405733 by Mark.Satterthwaite
Duplicate CL #4399472: Handle all Metal formats in ShaderPlatformToPlatformName - I have not made this handle all formats or platforms so this function is *wrong* for a number of others and should *assert* on failure to identify a platform. This fixes incorrect shader compilation for Forward rendering on iOS.
#jira UE-64355
Change 4405630 by JeanMichel.Dignard
Copied 43737703 Johan.Duparc
Prevent crash for old datasmith assets
Clear transactional flag in user asset data that could cause a crash for Blueprint assets.
#jira UE-63349
Change 4405481 by Sorin.Gradinaru
UE-61699 Kindle Fire 5th Gen crashes rotating Remote Session
#jira UE-61699
#Android
#4.21
From //UE4/Dev-Mobile CL4360704
Disabling threaded rendering for Kindle Fire HD 7 5th gen in DefaultDeviceProfiles.ini
Change 4405276 by Frankie.DiPietro
Adding test content for Volume Textures, Iris Normals, and Subsurface Boundary Bleed Color coverage
#jira UE-29618
Change 4405138 by JeanMichel.Dignard
Copied 4350470 Johan.Duparc
Fix crash on property edition for blueprint actors with templated asset user data
#jira UE-63349
Change 4404967 by Mikey.Boyd
Making content change to M_Translucent_PanNrm for UEQATC-244. Added a Texture Sample node to be used to test Platform Stats.
#jira UE-29618
Change 4404909 by Robert.Manuszewski
When enabling cooked assets in the editor, the engine will now use FArchiveAsync2 in the editor to be able to open them.
(re-implemented CL #4400327 from Dev-Core)
#jira UE-64389
Change 4404901 by Robert.Manuszewski
Fixed a hang when entering PIE when Background Streaming is disabled
#jira UE-63320
Change 4404816 by Ben.Marsh
Fix "Non-void function should return a value" warning in CIS.
#jira
Change 4404621 by Stefan.Boberg
Re-enabled LLM on Editor builds since the performance issue has been addressed
#jira UE-60020
Change 4404491 by Max.Chen
Sequencer: Use cached object bindings when drawing motion trails.
FindObjectId can be slow because it clears the cached bindings. Added FindCachedObjectId which retrieves the binding without clearing the cache.
#jira UE-63347
Change 4404490 by Max.Chen
Sequencer: Fix key reduction not working on imported fbx channel.
Implement channel Optimize() so that it follows the curve editor's SimplifySelection by evaluating whether a key is needed (rather than removing the key and checking whether the value has changed).
The main fix is that the tangents need to be calculated as non-normalized (ie. with the DisplayRate)
#jira UE-62353
Change 4404488 by Max.Chen
Sequencer: Changed HandleSingleNode fallback check for collapsed parents.
#jira UE-64394
Change 4404486 by Max.Chen
Sequencer: Remove restriction on hidden mobility. It's too wide to restrict transform tracks.
#jira UE-63415
Change 4404472 by Max.Chen
Sequencer: Restore drawing paths for selected nodes and channels
#jira UE-64204
Change 4404468 by Max.Chen
Sequencer: Check for property type in evaluation. This fixes an issue where the property type is changed after the track has been created.
#jira UE-64278
Change 4404439 by Keli.Hlodversson
Merging critical SteamVR fixes from Dev-VR
#jira UE-63198
#jira UE-64098
#jira UEVR-1250
Change 4403717 by Marc.Audy
Inline templated version of GetGameInstance
#jira UE-62591
Change 4403702 by Marc.Audy
PR #4944: Added template cast versions of multiple methods. (Contributed by francoap)
#jira UE-62591
Change 4403699 by Marc.Audy
Make reregistering an object in the significance manager an ensure not a check
#jira
Change 4403697 by Marc.Audy
PR #5074: Fixed minor bugs in GameUserSettings. (Contributed by phoenxin)
#jira UE-63893
Change 4403695 by Marc.Audy
Fix crash pasting timeline with external curve that has been force deleted
#jira UE-64504
Change 4403693 by Marc.Audy
PR #5077: Prevent TimelineComponent Update delegate from being executed 3 times when looping (Contributed by nedwardsnae)
#jira UE-63927
Change 4403691 by Marc.Audy
PR #5076: Correct icon when dragging an event dispatcher variable (Contributed by projectgheist)
#jira UE-63895
Change 4403689 by Marc.Audy
PR #5075: Mouse decorator when dragging a category from My Blueprint panel (Contributed by projectgheist)
#jira UE-63894
Change 4403686 by Marc.Audy
PR #5096: UE-64019: Use compare function for tooltip FText instead of != operator (Contributed by projectgheist)
#jira UE-64109
#jira UE-64019
Change 4403662 by Marc.Audy
Ensure that objects created via duplication in PIE are correctly constructed
#jira UE-63505
Change 4403462 by tim.gautier
Cleaned up M_Tree_FallTreeMerged_01, added comment blocks for UEQATC-212
#jira UE-29618
Change 4403308 by Michael.Trepka
Update mouse position on NSDraggingUpdate event on Mac
#jira UE-60800
Change 4403290 by Michael.Trepka
Fixed issues with window position and size when toggling between fullscreen and windowed modes
#jira UE-63212
Change 4403270 by Michael.Trepka
Fixed a problem with mouse click/drag events being received by incorrect window/widget in certain conditions while dragging windows on Mac
#jira UE-57506
Change 4403216 by Ben.Marsh
Fix null reference exception when resolving paths.
#jira
Change 4403213 by Ben.Marsh
Revert change to use FileReference for executable to use in the <Spawn> task, to ensure we can use programs in the PATH.
#jira
Change 4403209 by Ben.Marsh
Prevent null dereference when tagging a set of files.
#jira
Change 4403200 by Ben.Marsh
BuildGraph: Add support for automatic parsing of collection types in BuildGraph parameters.
#jira
Change 4403188 by Mikey.Boyd
Adding content for Data Table test coverage.
#jira UE-29618
Change 4403163 by Ben.Marsh
Sanitize the contents of all the receipts in the installed engine build, to make sure they don't reference any files we don't distribute.
#jira UE-56424
Change 4403151 by Ben.Marsh
UBT: Don't assume that console encoding is UTF-8 when using ParallelExecutor.
#jira UE-64248
Change 4403136 by Ben.Marsh
Fix IWYU issues with SQLite support.
#jira UE-64523
Change 4403116 by Ben.Marsh
UBT: Fix project files being generated for VS2017 if the user only has AutoSDKs, and does not have the IDE installed.
#jira UE-62726
Change 4403074 by Ben.Marsh
UBT: Fix a couple of edge cases when parsing output from child processes.
* If a single line was larger than 32kb, the process would be treated as having terminated.
* If the last output line did not have a trailing newline, the line would be dropped.
#jira UE-64234
Change 4403066 by Ben.Marsh
Fix project browser reopening when creating a new project, if other command line arguments are present. Missing a space between the project file and previous argument list.
#jira UE-63724
#lockdown Nick.Penwarden
#rb none
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 4447546 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
[CL 4452228 by jason bestimt in Dev-VR branch]
2018-10-11 11:48:32 -04:00
else
{
// Create a texture, even though it's not a volume texture
FBlackVolumeTextureResourceBulkDataInterface BlackTextureBulkData ;
FRHIResourceCreateInfo CreateInfo ( & BlackTextureBulkData ) ;
FTexture2DRHIRef Texture2D = RHICreateTexture2D ( 1 , 1 , PixelFormat , 1 , 1 , TexCreate_ShaderResource , CreateInfo ) ;
TextureRHI = Texture2D ;
}
// Create the sampler state.
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
2014-03-14 14:13:41 -04:00
}
/**
* Return the size of the texture in the X dimension .
*/
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
/**
* Return the size of the texture in the Y dimension .
*/
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeY ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
} ;
/** Global black volume texture resource. */
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
FTexture * GBlackVolumeTexture = new TGlobalResource < FBlackVolumeTexture < PF_B8G8R8A8 > > ( ) ;
/** Global black volume texture resource. */
FTexture * GBlackUintVolumeTexture = new TGlobalResource < FBlackVolumeTexture < PF_R8G8B8A8_UINT > > ( ) ;
2014-03-14 14:13:41 -04:00
class FBlackArrayTexture : public FTexture
{
public :
// FResource interface.
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
2014-07-10 10:39:54 -04:00
if ( GetFeatureLevel ( ) > = ERHIFeatureLevel : : SM4 )
2014-03-14 14:13:41 -04:00
{
2016-03-16 21:16:51 -04:00
// Create the texture RHI.
FBlackVolumeTextureResourceBulkDataInterface BlackTextureBulkData ;
FRHIResourceCreateInfo CreateInfo ( & BlackTextureBulkData ) ;
2019-03-13 14:52:34 -04:00
CreateInfo . DebugName = TEXT ( " BlackArrayTexture " ) ;
2016-03-16 21:16:51 -04:00
FTexture2DArrayRHIRef TextureArray = RHICreateTexture2DArray ( 1 , 1 , 1 , PF_B8G8R8A8 , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = TextureArray ;
// Create the sampler state RHI resource.
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
}
}
/** Returns the width of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
/** Returns the height of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeY ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
} ;
FTexture * GBlackArrayTexture = new TGlobalResource < FBlackArrayTexture > ;
//
// FMipColorTexture implementation
//
/**
* A texture that has a different solid color in each mip - level
*/
class FMipColorTexture : public FTexture
{
public :
enum
{
NumMips = 12
} ;
static const FColor MipColors [ NumMips ] ;
// FResource interface.
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
// Create the texture RHI.
int32 TextureSize = 1 < < ( NumMips - 1 ) ;
2014-05-20 15:09:51 -04:00
FRHIResourceCreateInfo CreateInfo ;
FTexture2DRHIRef Texture2D = RHICreateTexture2D ( TextureSize , TextureSize , PF_B8G8R8A8 , NumMips , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = Texture2D ;
// Write the contents of the texture.
uint32 DestStride ;
int32 Size = TextureSize ;
for ( int32 MipIndex = 0 ; MipIndex < NumMips ; + + MipIndex )
{
2014-06-27 11:07:13 -04:00
FColor * DestBuffer = ( FColor * ) RHILockTexture2D ( Texture2D , MipIndex , RLM_WriteOnly , DestStride , false ) ;
2014-03-14 14:13:41 -04:00
for ( int32 Y = 0 ; Y < Size ; + + Y )
{
for ( int32 X = 0 ; X < Size ; + + X )
{
DestBuffer [ X ] = MipColors [ NumMips - 1 - MipIndex ] ;
}
DestBuffer + = DestStride / sizeof ( FColor ) ;
}
2014-06-27 11:07:13 -04:00
RHIUnlockTexture2D ( Texture2D , MipIndex , false ) ;
2014-03-14 14:13:41 -04:00
Size > > = 1 ;
}
// Create the sampler state RHI resource.
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
}
/** Returns the width of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
int32 TextureSize = 1 < < ( NumMips - 1 ) ;
return TextureSize ;
}
/** Returns the height of the texture in pixels. */
2015-04-09 16:42:44 -04:00
// PVS-Studio notices that the implementation of GetSizeX is identical to this one
// and warns us. In this case, it is intentional, so we disable the warning:
virtual uint32 GetSizeY ( ) const override //-V524
2014-03-14 14:13:41 -04:00
{
int32 TextureSize = 1 < < ( NumMips - 1 ) ;
return TextureSize ;
}
} ;
const FColor FMipColorTexture : : MipColors [ NumMips ] =
{
FColor ( 80 , 80 , 80 , 0 ) , // Mip 0: 1x1 (dark grey)
FColor ( 200 , 200 , 200 , 0 ) , // Mip 1: 2x2 (light grey)
FColor ( 200 , 200 , 0 , 0 ) , // Mip 2: 4x4 (medium yellow)
FColor ( 255 , 255 , 0 , 0 ) , // Mip 3: 8x8 (yellow)
FColor ( 160 , 255 , 40 , 0 ) , // Mip 4: 16x16 (light green)
FColor ( 0 , 255 , 0 , 0 ) , // Mip 5: 32x32 (green)
FColor ( 0 , 255 , 200 , 0 ) , // Mip 6: 64x64 (cyan)
FColor ( 0 , 170 , 170 , 0 ) , // Mip 7: 128x128 (light blue)
FColor ( 60 , 60 , 255 , 0 ) , // Mip 8: 256x256 (dark blue)
FColor ( 255 , 0 , 255 , 0 ) , // Mip 9: 512x512 (pink)
FColor ( 255 , 0 , 0 , 0 ) , // Mip 10: 1024x1024 (red)
FColor ( 255 , 130 , 0 , 0 ) , // Mip 11: 2048x2048 (orange)
} ;
RENDERCORE_API FTexture * GMipColorTexture = new FMipColorTexture ;
RENDERCORE_API int32 GMipColorTextureMipLevels = FMipColorTexture : : NumMips ;
// 4: 8x8 cubemap resolution, shader needs to use the same value as preprocessing
RENDERCORE_API const uint32 GDiffuseConvolveMipLevel = 4 ;
/** A solid color cube texture. */
class FSolidColorTextureCube : public FTexture
{
public :
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
FSolidColorTextureCube ( const FColor & InColor )
: bInitToZero ( false )
, PixelFormat ( PF_B8G8R8A8 )
, ColorData ( InColor . DWColor ( ) )
{ }
FSolidColorTextureCube ( EPixelFormat InPixelFormat )
: bInitToZero ( true )
, PixelFormat ( InPixelFormat )
, ColorData ( 0 )
2014-03-14 14:13:41 -04:00
{ }
// FRenderResource interface.
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
// Create the texture RHI.
2019-03-13 14:52:34 -04:00
FRHIResourceCreateInfo CreateInfo ( TEXT ( " SolidColorCube " ) ) ;
2018-12-04 09:59:43 -05:00
FTextureCubeRHIRef TextureCube = RHICreateTextureCube ( 1 , PixelFormat , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = TextureCube ;
// Write the contents of the texture.
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
for ( uint32 FaceIndex = 0 ; FaceIndex < 6 ; FaceIndex + + )
2014-03-14 14:13:41 -04:00
{
uint32 DestStride ;
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
void * DestBuffer = RHILockTextureCubeFace ( TextureCube , FaceIndex , 0 , 0 , RLM_WriteOnly , DestStride , false ) ;
if ( bInitToZero )
{
FMemory : : Memzero ( DestBuffer , GPixelFormats [ PixelFormat ] . BlockBytes ) ;
}
else
{
FMemory : : Memcpy ( DestBuffer , & ColorData , sizeof ( ColorData ) ) ;
}
2014-06-27 11:07:13 -04:00
RHIUnlockTextureCubeFace ( TextureCube , FaceIndex , 0 , 0 , false ) ;
2014-03-14 14:13:41 -04:00
}
// Create the sampler state RHI resource.
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
2014-03-14 14:13:41 -04:00
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
}
/** Returns the width of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
/** Returns the height of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeY ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
private :
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
const bool bInitToZero ;
const EPixelFormat PixelFormat ;
const uint32 ColorData ;
2014-03-14 14:13:41 -04:00
} ;
/** A white cube texture. */
class FWhiteTextureCube : public FSolidColorTextureCube
{
public :
2014-12-05 15:03:26 -05:00
FWhiteTextureCube ( ) : FSolidColorTextureCube ( FColor : : White ) { }
2014-03-14 14:13:41 -04:00
} ;
FTexture * GWhiteTextureCube = new TGlobalResource < FWhiteTextureCube > ;
/** A black cube texture. */
class FBlackTextureCube : public FSolidColorTextureCube
{
public :
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
FBlackTextureCube ( ) : FSolidColorTextureCube ( FColor : : Black ) { }
2014-03-14 14:13:41 -04:00
} ;
FTexture * GBlackTextureCube = new TGlobalResource < FBlackTextureCube > ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3231693)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3219796 on 2016/12/02 by Rolando.Caloca
DR - vk - Increase timeout to 60ms
Change 3219884 on 2016/12/02 by Daniel.Wright
Assert to help track down rare crash locking capsule indirect shadow vertex buffer
Change 3219885 on 2016/12/02 by Daniel.Wright
Fixed saving a package that doesn't exist on disk but exists in p4 at a newer revision when the user chooses 'Mark Writable'
Change 3219886 on 2016/12/02 by Daniel.Wright
Don't create projected shadows when r.ShadowQuality is 0
* Fixes crash in the forward path trying to render shadows
* In the deferred path, the shadowmap was still being rendered and only the projection skipped, now all cost will be skipped
Change 3219887 on 2016/12/02 by Daniel.Wright
Changed ClearRenderTarget2D default alpha to 1, which is necessary for correct compositing
Change 3219893 on 2016/12/02 by Daniel.Wright
AMD AGS library with approved TPS
Disabled DFAO on AMD pre-GCN PC video cards to workaround a driver bug which won't be fixed (Radeon 6xxx and below)
Change 3219913 on 2016/12/02 by Daniel.Wright
Level unload of a lighting scenario propagates the lighting scenario change - fixes crash when precomputed lighting volume data gets unloaded
Change 3220029 on 2016/12/02 by Daniel.Wright
Async shader compiling now recreates scene proxies which are affected by the material which was compiled. This fixes crashes which were occuring as proxies cache various material properties, but applying compiled materials would not update these cached properties (bRequiresAdjacencyInformation).
* A new ensure has been added in FMeshElementCollector::AddMesh and FBatchingSPDI::DrawMesh to catch attempts to render with a material not reported in GetUsedMaterials
* Fixed UParticleSystemComponent::GetUsedMaterials and UMaterialBillboardComponent::GetUsedMaterials
* FMaterialUpdateContext should be changed to use the same pattern, but that hasn't been done yet
Change 3220108 on 2016/12/02 by Daniel.Wright
Fixed shadowmap channel assignment for stationary lights which are not in a lighting scenario level, when a lighting scenario level is present
Change 3220504 on 2016/12/03 by Mark.Satterthwaite
Metal Desktop Tessellation support from Unicorn.
- Apple: Metal tessellation support added to MetalShaderFormat, MetalRHI and incl. changes to engine runtime/shaders for Desktop renderer and enabled in ElementalDemo by default (OS X 10.11 will run SM4).
- Epic: Support for different Metal shader standards on Mac, iOS & tvOS which required moving some RHI functions around as this is a project setting and not a compile-time constant.
- Epic: Fragment shader UAV support, which is also tied to newer Metal shader standard like Tessellation.
- Epic: Significant refactor of MetalRHI's internals to clearly separate state-caching from render-pass management and command-encoding.
- Epic: Internal MetalRHI validation code is now cleanly separated out into custom implementations of the Metal @protocol's and is on by default.
- Epic: Various fixes to Layered Rendering for Metal.
- Omits Mobile Tessellation support which needs further revision.
Change 3220881 on 2016/12/04 by Mark.Satterthwaite
Compiles fixes for iOS & static analysis fixes from Windows.
Change 3221180 on 2016/12/05 by Guillaume.Abadie
Avoid compiling PreviousFrameSwitch's both Current Frame and Previous Frame inputs every time.
Change 3221217 on 2016/12/05 by Chris.Bunner
More NVAPI warning fixups.
Change 3221219 on 2016/12/05 by Chris.Bunner
When comparing overriden properties used to force instance recompilation we need to check against the base material, not assume the immediate parent.
#jira UE-37792
Change 3221220 on 2016/12/05 by Chris.Bunner
Exported GetAllStaticSwitchParamNames and GetAllStaticComponentMaskParamNames.
#jira UE-35132
Change 3221221 on 2016/12/05 by Chris.Bunner
PR #2785: Fix comment typo in RendererInterface.h (Contributed by dustin-biser)
#jira UE-35760
Change 3221223 on 2016/12/05 by Chris.Bunner
Default to include dev-code when compiling material preview stats.
#jira UE-20321
Change 3221534 on 2016/12/05 by Rolando.Caloca
DR - Added FDynamicRHI::GetName()
Change 3221833 on 2016/12/05 by Chris.Bunner
Set correct output extent on PostProcessUpscale (allows users to extend chain correctly).
#jira UE-36989
Change 3221852 on 2016/12/05 by Chris.Bunner
32-bit/ch EXR screenshot and frame dump output.
Fixed row increment bug in 128-bit/px surface format readback.
#jira UE-37962
Change 3222059 on 2016/12/05 by Rolando.Caloca
DR - vk - Fix memory type not found
Change 3222104 on 2016/12/05 by Rolando.Caloca
DR - Lambdaize
- Added quicker method to check if system textures are initialized
Change 3222290 on 2016/12/05 by Mark.Satterthwaite
Trivial fixes to reporting Metal shader pipeline errors - need to check if Hull & Domain exist.
Change 3222864 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak when exiting
Change 3222873 on 2016/12/06 by Rolando.Caloca
DR - vk - Minor info to help track down leaks
Change 3222875 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak with VisualizeTexture
#jira UE-39360
Change 3223226 on 2016/12/06 by Chris.Bunner
Static analysis warning workaround.
Change 3223235 on 2016/12/06 by Ben.Woodhouse
Integrate from NREAL: Set a custom projection matrix on a SceneCapture2D
Change 3223343 on 2016/12/06 by Chris.Bunner
Moved HLOD persistent data to viewstate to fix per-view compatability.
#jira UE-37539
Change 3223349 on 2016/12/06 by Chris.Bunner
Fixed HLOD with FreezeRendering command.
#jira UE-29839
Change 3223371 on 2016/12/06 by Michael.Trepka
Removed obsolete check() in FMetalSurface constructor
Change 3223450 on 2016/12/06 by Chris.Bunner
Added explicit ScRGB output device selection rather than Nvidia-only hardcoded checks. Allows easier support for Mac and other devices moving forward.
Change 3223638 on 2016/12/06 by Michael.Trepka
Restored part of the check() in FMetalSurface constructor removed in CL 3223371
Change 3223642 on 2016/12/06 by Mark.Satterthwaite
Experimental Metal EDR/HDR output support for Mac (iOS/tvOS need custom formats & shaders so they are not supported yet).
- Only available on macOS Sierra (10.12) for Macs with HDR displays (e.g. Retina iMacs).
- Enable with -metaledr command-line argument as it is off-by-default.
- Sets up the CAMetalLayer & the back-buffer for RGBA_FP16 output on Mac using DCI-P3 as the color gamut and ACES 1000 nit ScRGB output encoding.
Change 3223830 on 2016/12/06 by Rolando.Caloca
DR - vk - Better error when finding an invalid Vulkan driver
#jira UE-37495
Change 3223869 on 2016/12/06 by Rolando.Caloca
DR - vk - Reuse fences
Change 3223906 on 2016/12/06 by Guillaume.Abadie
Fix alpha through TempAA artifact causing a small darker edge layouts.
Change 3224199 on 2016/12/06 by Mark.Satterthwaite
Fix a dumb copy-paste error from the HDR changes to Metal.
Change 3224220 on 2016/12/06 by Mark.Satterthwaite
Fix various errors with Metal UAV & Render-Pass Restart support so that we can use the Pixel Shader culling for DistanceField effects.
- Unfortunately Metal requires that a texture be bound to start a render-pass, so reuse the dummy depth-stencil surface from the problematic editor preview tile rendering.
Change 3224236 on 2016/12/06 by Mark.Satterthwaite
IWYU CIS compile fix for iOS.
Change 3224366 on 2016/12/06 by Mark.Satterthwaite
Simplify some of the changes from CL# 3224220 so that we don't perform unnecessary clears.
- If the RenderPass is broken to issue compute or blit operations then treat the cached RenderTargetsInfo as invalid, unless the RenderPass is restarted.
- This guarantees that we don't erroneously ignore calls to SetRenderTargets if the calling code issues a dispatch between two RenderPasses that use the same RenderTargetsInfo.
Change 3224416 on 2016/12/06 by Uriel.Doyon
New default implementation for UPrimitiveComponent::GetStreamingTextureInfo using a conservative heuristic where the textures are stretched across the bounds.
Optimized UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval by not handling registered components with no proxy (essentially hidden game / collision primitives).
Added blueprint support for texture streaming built data through FStaticMeshComponentInstanceData.
Fix for material texture streaming data not being available on some cooked builds.
Enabled split requests on all texture load requests (first loading everything visible and then loaded everything not visible).
This is controlled by "r.Streaming.MinMipForSplitRequest" which defines the minimum mip for which to allow splitting.
Forced residency are now loaded in two steps (visible, then forced), improving reactiveness.
Updated "stat streaming" to include "UnkownRefMips" which represent texture with no known component referencing them,
and also "LastRenderTimeMips" which related to timed primitives.
Changed "Forced Mips" so that it only shows mips that are loaded become of forced residency.
"Texture Streaming Build" now updates the map check after execution.
Removed Orphaned texture logic as this has become irrelevant with the latest retention priority logic.
Updated "r.streaming.usenewmetrics" so that it shows behavior before and after 4.12 improvements.
Change 3224532 on 2016/12/07 by Uriel.Doyon
Integrated CL 3223965 :
Building texture streaming data for materials does not wait for pending shaders to finish compilation anymore.
Added more options to allow the user to cancel this build also.
Change 3224714 on 2016/12/07 by Ben.Woodhouse
Cherry pick CL 3223972 from //fortnite/main:
Disable Geometry shader onchip on XB1. This saves 4ms for a single shadow casting point light @ 512x512 (4.8ms to 1.8ms)
Change 3224715 on 2016/12/07 by Ben.Woodhouse
New version of d3dx12.h from Microsoft which incorporates my suggested static analysis fixes. This avoids us diverging from the official version
Change 3224975 on 2016/12/07 by Rolando.Caloca
DR - vk - Dump improvements
Change 3225012 on 2016/12/07 by Rolando.Caloca
DR - Show warning if trying to use num samples != (1,2,4,8,16)
Change 3225126 on 2016/12/07 by Chris.Bunner
Added 'force 128-bit rendering pipeline' to high-res screenshot tool.
#jira UE-39345
Change 3225449 on 2016/12/07 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3225485 on 2016/12/07 by Chris.Bunner
Moved QuantizeSceneBufferSize to RenderCore and added call for PostProcess settings. Fixes screenpercentage out-of-bounds reads in some cases.
#jira UE-19394
Change 3225486 on 2016/12/07 by Chris.Bunner
Only disable TAA during HighResScreenshots if we don't have a reasonable frame-delay enabled.
Change 3225505 on 2016/12/07 by Daniel.Wright
Fixed exponential height fog disappearing with no skybox
Change 3225655 on 2016/12/07 by Benjamin.Hyder
Updating TM-Shadermodels to include Translucent lighting, Two sided, updated cloth animation, and adjusted lighting.
Change 3225668 on 2016/12/07 by Chris.Bunner
Dirty owning packages when user manually forces regeneration of all reflection captures.
#jira UE-38759
Change 3226139 on 2016/12/07 by Rolando.Caloca
DR - Fix recompute tangents disabling skin cache
- Make some macros into lambdas
#jira UE-39143
Change 3226212 on 2016/12/07 by Daniel.Wright
Features which require a full prepass use DDM_AllOpaque instead of DDM_AllOccluders, which can be skipped if the component has bUseAsOccluder=false
Change 3226213 on 2016/12/07 by Daniel.Wright
Scene Capture 2D can specify a global clip plane, which is useful for portals
* Requires the global clip plane project setting to be enabled
Change 3226214 on 2016/12/07 by Daniel.Wright
Improved deferred shadowing with MSAA by upsampling light attenuation intelligently in the base pass
* If the current fragment's depth doesn't match what was used for deferred shadowing, the neighbor (cross pattern) with the nearest depth's shadowing is used
* Edge artifacts can still occur where the upsample fails or the shadow factor was computed per-sample due to depth / stencil testing
* Indirect Occlusion from capsule shadows also uses the nearest depth neighbor UV for no extra cost
* Base pass on 970 GTX 1.69ms -> 1.85ms (.16ms) in RoboRecall
Change 3226258 on 2016/12/07 by Rolando.Caloca
DR - Typo fix
Change 3226259 on 2016/12/07 by Rolando.Caloca
DR - compile fix
#jira UE-39143
Change 3226932 on 2016/12/08 by Chris.Bunner
Re-saved Infiltrator maps to update reflection captures.
#jira UE-38759
Change 3227063 on 2016/12/08 by Mark.Satterthwaite
For Metal platforms ONLY temporarily disable USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING to avoid UE-37436 while the Nvidia driver team investigate why this doesn't work for them but does for the others. This won't affect non-Metal platforms and the intent is to revert this prior to 4.16 provided we can work through the problem with Nvidia.
#jira UE-37436
Change 3227120 on 2016/12/08 by Gil.Gribb
Merging //UE4/Dev-Main@3226895 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3227211 on 2016/12/08 by Arne.Schober
DR - UE-38585 - Fixing crash where HierInstStaticMesh duplication fails. Also reverting the fix from UE-28189 which is redundant.
Change 3227257 on 2016/12/08 by Marc.Olano
Extension to PseudoVolumeTexture for more flexible layout
Change by ryan.brucks
Change 3227286 on 2016/12/08 by Rolando.Caloca
DR - Fix crash when using custom expressions and using reserved keywords
#jira UE-39311
Change 3227376 on 2016/12/08 by Mark.Satterthwaite
Must not include a private header inside the MenuStack public header as that causes compile errors in plugins.
Change 3227415 on 2016/12/08 by Mark.Satterthwaite
Fix shader compilation due to my disabling of USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING on Metal - InstancedCompositeTileReflectionCaptureIndices needs to be defined even though Metal doesn't support instanced-stereo rendering.
Change 3227516 on 2016/12/08 by Daniel.Wright
Implemented UWidgetComponent::GetUsedMaterials
Change 3227521 on 2016/12/08 by Guillaume.Abadie
Fixes post process volume's indirect lighting color.
#jira UE-38888
Change 3227567 on 2016/12/08 by Marc.Olano
New upscale filters: Lanczos-2 (new default), Lanczos-3 and Gaussian Unsharp Mask
Change 3227628 on 2016/12/08 by Daniel.Wright
Removed redundant ResolveSceneDepthTexture from the merge
Change 3227635 on 2016/12/08 by Daniel.Wright
Forward renderer supports shadowing from movable lights and light functions
* Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed
* Light functions only work on shadow casting lights since they need a shadowmap channel to be assigned
Change 3227660 on 2016/12/08 by Rolando.Caloca
DR - vk - Fix r.MobileMSAA on Vulkan
- r.MobileMSAA is now read-only (to be fixed on 4.16)
- Show time for PSO creation hitches
#jira UE-39184
Change 3227704 on 2016/12/08 by Mark.Satterthwaite
Fix Mac HDR causing incorrect output color encoding being used, HDR support is now entirely off unless you pass -metaledr which will enable it regardless of whether the current display supports HDR (as we haven't written the detection code yet). Fixed the LUT/UI compositing along the way - Mac Metal wasn't using volume LUT as it should have been, RHISupportsVertexShaderLayer now correctly returns false for non-Mac Metal platforms.
Change 3227705 on 2016/12/08 by Daniel.Wright
Replaced built-in samplers in the nearest depth translucency upsample because the built-in samplers are no longer bound on PC (cl 2852426)
Change 3227787 on 2016/12/08 by Chris.Bunner
Added extent clear to motion blur pass to catch misized buffers bringing in errors.
Added early out to clear call when excluded region matches RT region.
#jira UE-39437
Change 3228177 on 2016/12/08 by Marc.Olano
Fix DCC sqrt(int) error
Change 3228285 on 2016/12/08 by Chris.Bunner
Back out changelist 3225449.
#jira UE-39528
Change 3228680 on 2016/12/09 by Gil.Gribb
Merging //UE4/Dev-Main@3228528 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3228940 on 2016/12/09 by Mark.Satterthwaite
Editor fixes for 4.15:
- PostProcessTonemap can't fail to bind a texture to the ColorLUT or the subsequent rendering will be garbage: the changes for optimising stereo rendering forgot to account for the Editor's use of Views without States for the asset preview thumbnails. Amended the CombineLUT post-processing to allocate a local output texture when there's no ViewState and read from this when this situation arises which makes everything function again.
- Don't start render-passes without a valid render-target-array in MetalRHI.
Change 3228950 on 2016/12/09 by Mark.Satterthwaite
Make GPUSkinCache run on Mac Metal - it wasn't working because it was forcibly disabled on all platforms but for Windows D3D 11.
- Fixed the Skeleton editor tree trying to access a widget before it has been constructed.
- Enable GPUSkinCache for Metal SM5: doesn't render correctly, even on AMD, so needs Radar's filing and investigation.
#jira UE-39256
Change 3229013 on 2016/12/09 by Mark.Satterthwaite
Further tidy up in SSkeletonTreeView as suggested by Nick.A.
Change 3229101 on 2016/12/09 by Chris.Bunner
Log compile error fix and updated cvar comments.
Change 3229236 on 2016/12/09 by Ben.Woodhouse
XB1 D3D11 and D3D12: Use the DXGI frame statistics to get accurate GPU time unaffected by bubbles
Change 3229430 on 2016/12/09 by Ben.Woodhouse
PR #2680: Optimized histogram generation. (Contributed by PjotrSvetachov)
Profiled on nvidia 980GTX (2x faster), and on XB1 (marginally faster)
Change 3229580 on 2016/12/09 by Marcus.Wassmer
DepthBoundsTest for AMD.
Change 3229701 on 2016/12/09 by Michael.Trepka
Changed "OS X" to "macOS" in few places where we display it and updated the code that asks users to update to latest version to check for 10.12.2
Change 3229706 on 2016/12/09 by Chris.Bunner
Added GameUserSettings controls for HDR display output.
Removed Metal commandline as this should replace the need for it.
Change 3229774 on 2016/12/09 by Michael.Trepka
Disabled OpenGL on Mac. -opengl is now ignored, we always use Metal. On old Macs that do not support Metal we show a message saying that the app requires Metal and exit.
Change 3229819 on 2016/12/09 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3229948 on 2016/12/09 by Rolando.Caloca
DR - Fix d3d debug error
#jira UE-39589
Change 3230341 on 2016/12/11 by Mark.Satterthwaite
Don't fatally assert that the game-thread stalled waiting for the rendering thread in the Editor executable, even when running -game as the rendering thread can take a while to respond if shaders need to be compiled.
#jira UE-39613
Change 3230860 on 2016/12/12 by Marcus.Wassmer
Experimental Nvidia AFR support.
Change 3230930 on 2016/12/12 by Mark.Satterthwaite
Disable RHICmdList state-caching on Mac - Metal already does this internally and depends on receiving all state changes in order to function.
Change 3231252 on 2016/12/12 by Marcus.Wassmer
Fix NumGPU detection. (SLI only crash)
Change 3231486 on 2016/12/12 by Mark.Satterthwaite
Fix a stupid mistake in MetalStateCache::CommitResourceTable that would unnecessarily rebind samplers.
Change 3231661 on 2016/12/12 by Mark.Satterthwaite
Retain the RHI samplers in MetalRHI to guarantee lifetime.
[CL 3231696 by Gil Gribb in Main branch]
2016-12-12 17:47:42 -05:00
/** A black cube texture. */
class FBlackTextureDepthCube : public FSolidColorTextureCube
{
public :
Copying //UE4/Dev-Console to //UE4/Dev-Main (Source: //UE4/Dev-Console [at] 4362408)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 4125165 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4124306 to //UE4/Dev-Console/...
Change 4136060 by Marcin.Undak
Editor: fixed device unclaiming
#jira UE-58464
Change 4190321 by Marcin.Undak
Linux: fixes for automation and RecordPerformance
#jira UE-61053
Change 4199010 by Marcin.Undak
Linux: remove unnecessary -g option
Change 4201876 by Marcin.Undak
First implementation of WebM media player for Windows and Linux
Change 4201922 by Marcin.Undak
Whitelisted WebMem plugin only for Windows and Linux
Change 4202203 by Marcin.Undak
WebM build fixes
Change 4223102 by Marcin.Undak
Vulkan: console commands for testing device lost
#jira UE-61789
Change 4225028 by Marcin.Undak
WebMMedia: disabled on Linux until fixed compilation issues
Change 4231444 by David.Harvey
UI - Fixing where the virtual cursor renders. It doesn't correctly take into account DPI scale, which isn't apparent except on the Xbox One.
Integrate as edit from FN CL 4166648.
#jira UE-62115
Change 4233057 by Marcin.Undak
TestPAL: added new test for string allocation size
Change 4234649 by Marcin.Undak
Linux: switched linux plaform to 16bit wide strings
Change 4235253 by Marcin.Undak
TestPAL: compilation fix for platforms that don't use DirectoryWatcher
Change 4235477 by Marcin.Undak
Linux: re-enabled WebMMedia plugin
Change 4242242 by Marcin.Undak
WebMMediaPlayer: implemented proper format retrieving. MediaFrameworkTest now works.
Change 4243321 by Marcin.Undak
WebMPlayer: static code analisys fix
Change 4243505 by Marcin.Undak
MediaFrameworkTest: added WebM video for testing
Change 4244646 by Marcin.Undak
WebMMedia: improved concurrency
Change 4244735 by Arciel.Rekman
Vulkan: skip unnecessary transitions properly (UE-62348, merge).
(Edigrating CL 4244274 from Release-4.20)
Change 4246685 by Arciel.Rekman
PhysX: remove Cygwin from %PATH% on Windows as it confuses CMake (UE-62326).
Change 4247808 by Marcin.Undak
WebMMediaPlayer: added support for seeking
Change 4254841 by Marcin.Undak
WebM: module dependencies fix
Change 4255124 by laz.matech
Updated UMG_AllPaletterWidgets' combo box to include options so that when selected, the dropdown presents 2 options instead of it appearing like it is broken
#jira none
Change 4256415 by Marcin.Undak
WebM: added missing editor module
Change 4256716 by Arciel.Rekman
Make SetReuseAddr() also set SO_REUSEPORT where available (UE-57076).
- Pull request #4617 by malavon.
#jira UE-57076
Change 4266049 by Marcin.Undak
Linux: UnrealLightmass and CrashReportClient compilation fixes
#jira UE-62521
#jira UE-62522
Change 4266678 by Arciel.Rekman
Merge speculative commit to get aligned pointer on mmap().
(Edigrating CL 4225330 from //Fortnite/Main)
Change 4267998 by Anthony.Bills
Fix DBufferC clear color due to bad merge.
#jira UE-62649
Change 4269441 by Marcin.Undak
GenericPlatformStrings::VarArgs() implemented %-*s, %lu, %z, %h formatting
#jira UE-62582
Change 4269712 by Marcin.Undak
WebMMediaPlayer: removed LibSimpleWebM
Change 4272849 by Marcin.Undak
WebMMediaPlayer: fixed re-initialisation
Change 4277931 by Arciel.Rekman
Linux: switch to Vulkan by default (UE-62807).
- Default behavior: attempt Vulkan first, but in case of failure instead of quitting silently fall back to GL, unless -vulkan is passed.
- Forcing GL is still possible.
Change 4277965 by Arciel.Rekman
Fix standalone applications after the Vulkan switch.
Change 4277968 by Arciel.Rekman
Linux: make CrashReportClient headful (UE-14089).
- The -unattended flags keep even a headful CRC usable on the servers.
- ldd did not change. Need to check Localization stuff to see if there are any deployment concerns.
#jira UE-14089
Change 4279402 by Arciel.Rekman
Merge from 4.20.1: Vulkan: log validation errors. Also fix handling of some message types (UE-62628).
(Edigrating 4273516 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4279992 by Marcin.Undak
Linux: fix SlateViewer compilation
#jira UE-62831
Change 4285613 by Arciel.Rekman
Vulkan: fix mismatched layout.
- I tested with RecordPerformance on InfiltratorDemo and haven't found any impact.
Change 4285622 by Arciel.Rekman
Merged from 4.20.2: Linux: do not refuse to start if system limits cannot be raised (UE-62515).
- Too aggressive behavior, which can break cooking for no valid reason.
- If a commandline argument is used, the engine will still treat inability to raise the limits as an error.
(Edigrating 4273547 from //UE4/Release-4.20/... to //UE4/Dev-Console/...)
Change 4293083 by Arciel.Rekman
Merging //UE4/Main[at]4291654 to //UE4/Dev-Console
Change 4295297 by Marcin.Undak
Vulkan: temporary disable generic pipeline cache saving to prevent crashes
#jira UE-62848
Change 4300191 by Arciel.Rekman
Delete files added under lowercase directories.
Change 4300211 by Arciel.Rekman
Re-add files deleted in previous commit under camel-cased paths.
Change 4300895 by Arciel.Rekman
Linux: fix editor build
Change 4303543 by Ben.Marsh
Fix compile error for FortGPUTestBed.
Change 4305659 by Marcin.Undak
[Vulkan][Engine] Update the Vulkan RHI to obey r.VSync (and the vsync and novsync command-line arguments).
Change 4222769 by Jason.Stewart[at]Jason.Stewart_AMD_Dev_Rendering_threadripper-win10 on 2018/07/19 10:55:48
The original implementation ran into a latent thread hazard between the RHI thread and the rendering thread, where the rendering thread would try to use the backbuffer of the swap chain while the swap chain was being recreated (specifically after the swap chain recreation code had released and nulled out the back buffer, but before swap chain creation had actually happened to get a new back buffer). This implementation addresses that issue.
This is Tim's code. I'm just submitting it as Tim is currently out of office.
Change 4305661 by Marcin.Undak
Moved libwebm and libvpx inside WebMMediaPlayer directory
Change 4308659 by Marcin.Undak
Linux: fixed LLDB visualizers
#jira UE-52619
Change 4313650 by Marcin.Undak
WebMMediaPlayer: implemented looping
Change 4321713 by David.Harvey
removed hard-coded platform labels from device output log window in favour of ITargetPlatform::SupportsFeature + updated editor tooltip with correct platform list.
https://ec-01.epicgames.net/commander/link/jobDetails/jobs/8641984?
Change 4321942 by Brandon.Schaefer
Linux: Use the Target RHI list as the default ordering for which RHI is prefered
Also update the RHI list in the project settings for our default list
#jira UE-59487
[at]Arciel.Rekman
Change 4322230 by Brandon.Schaefer
Treat %lf as %f in GenericWidePlatformString
#jira UE-62582
Change 4322392 by Brandon.Schaefer
Make sure our fmt size is large enough to check indexes
#jira none
Change 4322895 by Brandon.Schaefer
Actually get the current size of Src as it could have been moved down
#jira none
Change 4327866 by Brandon.Schaefer
Linux: Tell the platform misc what RHI we are using
#jira none
Change 4328926 by Brandon.Schaefer
Linux: Add haptic support for controllers
Github PR #4167 (thanks maiself!)
#jira UE-51681
Change 4328963 by Arciel.Rekman
TestPAL: improve the test by randomizing allocation size.
- The range will no longer be constrained to <=128KB at once, allocations can be as big as 16MB but they will unevenly distributed, with smaller sizes being more frequent.
Change 4329208 by Arciel.Rekman
hlslcc: suppressed benign compiler warning during the Linux build (UE-43988).
Change 4329283 by Arciel.Rekman
Linux: replace CachedOSPageAllocator with PooledVirtualMemoryAllocator for Linux.
For the explanation of FPooledVirtualMemoryAllocator, see PooledVirtualMemoryAllocator.h
For the details, test data and comparisons, message Arciel Rekman.
Relevant command line args added:
-vmapoolscale=<float> (defaults to 1.4)
-vmapoolevict
-novmapoolevict
By default, freed memory will not be evicted from RAM (unless running on a server)
Also changed:
- Removed the fixed-size pool previously used by Linux (and supporting machinery like scaling it on start)
- Replaced the way we manage free blocks from pointers to a bitmap to reduce memory footprint.
Change 4331946 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4162064) Implement new thread heart beat clock to solve the suspend/resume problem across all platforms.
- The hang and hitch detectors now maintain their own clocks which are ticked by their respective threads.
- If the title is suspended, the ticking thread will stop and the clock will stop advancing. On resume, the maximum delta in the clock is clamped to a small value, so we ignore all the time the thread was not ticking for (i.e. the duration of the title being suspended).
- As such, we don't need any logic for handling PLM suspend/resume in the hang and hitch detectors, so this change removes that too.
#jira FORT-96886
Change 4331973 by Luke.Thatcher
[CONSOLE] [^] (merging CL 4183499) Add frame-present-based hang detection.
- RHIs call FThreadHeartBeat::PresentFrame() whenever they present a frame to the swap chain.
- These calls form a separate heartbeat from the thread-based ones, allowing the hang detector to fire if, for example, the game thread is stuck in an async loading loop and is ticking the game thread heartbeat, but making no progress.
- Also refactored ThreadHeartBeat.cpp to move hang detection logging into a FORCENOINLINE function. This will put OnHang and OnPresentHang at the top of the callstack in retail crash dumps, making the bucketing easier to recognise.
Change 4332200 by Luke.Thatcher
[CONSOLE] [+] (merging CL 4227517) Add PlatformDebugData to FShaderResource.
- We can use this to store platform specific shader symbols etc. The data gets serialized to the DDC and can be retrieved during a cook.
- Data is entirely discarded in cooked builds, and is a no-op on platforms which don't implement support for shader debug data.
- Bumped shader version to invalidate DDC keys.
Change 4332407 by Luke.Thatcher
[CONSOLE] [CORE] [!] (merging CL 4279686) Fixed unaligned integer load macro inconsistencies.
- Renamed PLATFORM_SUPPORTS_UNALIGNED_INT_LOADS to PLATFORM_SUPPORTS_UNALIGNED_LOADS
- Merged it with REQUIRES_ALIGNED_ACCESS and REQUIRES_ALIGNED_INT_ACCESS
- Fixed Linux platform which had both the old macros defined to 1, which is wrong because they are mutually exclusive.
Change 4333386 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4317367) Fix compile error in AnimationCompression.h
Change 4334395 by Arciel.Rekman
Corrected PLATFORM_DESKTOP definition.
Change 4336190 by Anthony.Bills
(Original CL4314280) Use the debug file writer when using framepro. This buffers more data which should reduce stalls when writing out on certain platforms.
#jira none
Change 4336291 by Anthony.Bills
Use a clamped local clock when timing out the renderthread.
- This prevents suspend and resume issues on platforms where suspend events may not occur or the system clock is not set to the process time.
#jira none
Change 4336292 by Anthony.Bills
(Orignal CL 4195778) Fix printing of the hang detector multiplier and other logging.
"f" is the correct format specifier for a double.
#jira none
Change 4336307 by Anthony.Bills
(Orignal CL 4257875) Use the correct clock when printing the scoped hitch stat.
- Needs to be the internal FGameThreadHitchHeartBeat clock incase FPlatformTime::Seconds becomes out of sync with FrameStartTime.
#jira none
Change 4336321 by Anthony.Bills
(Original CL 4258186) Add GetNoInit function to FGameThreadHitchHeartBeat.
#jira none
Change 4336397 by Anthony.Bills
Fix redefinition of macro.
#jira none
Change 4336738 by Brandon.Schaefer
Linux: Add options for ASan, TSan, and UBSan
#jira UE-62784 UE-62803 UE-62804
Change 4336791 by Brandon.Schaefer
Linux: Add missing xml comments
#jira none
Change 4336957 by Joe.Barnes
Integrate as edit CL#4218145:
Convert some of our Vector macros to inline functions as thier names class with 3rd party functions.
#jira ue-61733
Change 4338228 by Arciel.Rekman
Switch to v12 Linux cross-toolchain (UE-63589).
#jira UE-63589
Change 4339195 by Ben.Woodhouse
Integrate-as-edit latest CSV profiler changes up to CL 4292187
Change 4339237 by Ben.Woodhouse
Integrate-as-edit CL 4226269 from Fortnite/Main
Add support for extern GPU stats, so we can use one stat across multiple CPPs
Fix the Forward rendering GPUProjection stat
Change 4339239 by Ben.Woodhouse
Integrate-as-edit CL 4292520 from Fortnite/Main
Support different sized buffers for FArchiveFileWriterGeneric per-platform so we can tune per-platform as needed.
No changes to existing defaults values of 1KB for read, 4KB for write:
#define PLATFORM_FILE_READER_BUFFER_SIZE 1024
#define PLATFORM_FILE_WRITER_BUFFER_SIZE 4096
#define PLATFORM_DEBUG_FILE_WRITER_BUFFER_SIZE 4096
Change 4339241 by Ben.Woodhouse
Integrate-as-edit CL 4210462 from Fortnite/Main
Comment out an assert while I investigate properly (doesn't appear to be fatal)
Change 4339265 by Anthony.Bills
[Linux] Fix ContainerBuildThirdParty.sh to pick the first default interface.
#jira none
Change 4339274 by Anthony.Bills
[Linux] Cache the bundled toolchain when using git builds.
- Also will not attempt to download the toolchain if AutoSDK or Multiarch root are specified.
#jira UE-63394
Change 4339623 by Anthony.Bills
[Linux] Update native toolchain buildscript to support clang 6.0.1
- Main issue was due to libxml2 as an extra dependency of some test libraries, so needs to be disabled via DLLVM_ENABLE_LIBXML2.
#jira UE-63588
Change 4339685 by Anthony.Bills
[Linux] Update toolchain setup script to download v12 when it is available.
#jira UE-63588
Change 4339833 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4339548 to //UE4/Dev-Console/...
Change 4339843 by Ben.Woodhouse
Attempt to fix a weird possible bad merge issue
Change 4339890 by Ben.Woodhouse
Fix a build issue with FN server
#jira nojira
Change 4340314 by Anthony.Bills
Fix mesh decal rendering when write mask is enabled and no deferred decals are in the scene.
#jira UE-55159
Change 4341099 by Marcin.Undak
Mediashader fix
#jira UE-63650
Change 4341106 by Marcin.Undak
QAGame: added MediaPlayer for Linux test
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341107 by Marcin.Undak
WebMMediaPlayer: blacklist all not supported platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341110 by Marcin.Undak
WebMMediaPlayer: enable for Unix platforms
#jira UE-59667
#jira UE-62775
#jira UE-62780
Change 4341804 by Luke.Thatcher
[CONSOLE] [!] Fix memory scribble in black depth texture cube on platforms with 16-bit depth.
- Original code was writing a FColor into the locked texture data, which causes a 2 byte scribble if the PF_ShadowDepth format is 16-bits.
[!] Also fixed GWhiteTextureCube being black. FColor::White is not a compile-time constant, so an initialization order problem meant the value of FColor::White is actually black when the GWhiteTextureCube constructor runs.
#jira none
Change 4342244 by Anthony.Bills
[Linux] Allow restarting the crashed application from the crash report client
#jira UE-62903
Change 4342636 by Brandon.Schaefer
Linux: Update LLVM libc++.a libc++abi.a with version 6.0.1
#jira UE-63587
Change 4343420 by Marcin.Undak
Fixed assert in console
#jira UE-63643
Change 4345166 by Luke.Thatcher
[CONSOLE] [!] (merging CL 4345072) Fix initialization order bug with FColor and FLinearColor constants.
- The original constants were dynamically initialized during startup. Using these constants from other global constructors may result in getting the wrong value (transparent black) if a given constructor runs before FColor/FLinearColor's constructor.
- Adding constexpr to the FColor/FLinearColor constructor makes these constants known at compile-time, and included in the readonly data section, so they don't require dynamic initialization.
[~] Also restores the original constant color values in RenderUtils.cpp
#jira none
Change 4345860 by Arciel.Rekman
Make StompMalloc return 16-byte aligned memory on 64 bit platforms (UE-63743).
#jira UE-63743
(Edigrating 4345734 from Release-4.20)
Change 4345950 by Brandon.Schaefer
Linux: Remove libelf/libdwarf fallback for symbolicating symbols during a crash
#jira UE-63103
Change 4350249 by David.Harvey
helper function to retrieve an LLM tag's name, including platform tags.
Change 4351184 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4348973 to //UE4/Dev-Console/...
Change 4351593 by Ben.Woodhouse
Clean up aggressive batching (remove xbox specific #if and //TODO)
#jira UE-46780
Change 4351734 by James.Cobbett
Setting TM-ShaderModels_Niagara to always load
Change 4351984 by Marcin.Undak
QAGame: restored platform media source in TM-ShaderModels map
Change 4353508 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4353110 to //UE4/Dev-Console/...
Change 4354237 by Anthony.Bills
[Linux] Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4354334 by Anthony.Bills
[Linux] (Missing file from CL 4354237) Fix FortniteServer Linux compilation issues due to change over to TCHAR being char16_t.
#jira UE-63544
Change 4355994 by Brandon.Schaefer
Linux: Agree not Agreed
#jira UE-63937
Change 4356068 by Joe.Barnes
Replace a duplicate DEFINE_EXPRESSION_NODE_TYPE(bool,...) causing errors with iOS unity build compiles. Remove version in ExpressionParser.cpp and include TextFilterExpressionEvaluator.h.
#jira ue-63877
Change 4357726 by David.Harvey
[iOS] add clean support for device output log, after catchup.
#jira none
Change 4357724 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4357176 to //UE4/Dev-Console/...
Change 4359634 by Ben.Woodhouse
[INTEGRATE] Integrate from //UE4/Main/...[at]4359072 to //UE4/Dev-Console/...
Change 4359958 by Ben.Woodhouse
Fix FortGPUTestbed merge issues via p4 copy (content files didn't get moved before for some reason)
Change 4361108 by Anthony.Bills
Fix webm deprecation issues with DrawPrimitiveUp.
#jira UE-64012
Change 4361896 by James.Cobbett
Re-saving materials so that they render correctly outside of the editor.
Change 4362262 by Anthony.Bills
Fix for WebM video decoder crash.
#jira UE-64025
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4362700 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
#CodeReview: jason.bestimt,nick.whiting,mike.beach,ryan.vance
[CL 4365049 by jason bestimt in Dev-VR branch]
2018-09-13 14:35:54 -04:00
FBlackTextureDepthCube ( ) : FSolidColorTextureCube ( PF_ShadowDepth ) { }
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3231693)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3219796 on 2016/12/02 by Rolando.Caloca
DR - vk - Increase timeout to 60ms
Change 3219884 on 2016/12/02 by Daniel.Wright
Assert to help track down rare crash locking capsule indirect shadow vertex buffer
Change 3219885 on 2016/12/02 by Daniel.Wright
Fixed saving a package that doesn't exist on disk but exists in p4 at a newer revision when the user chooses 'Mark Writable'
Change 3219886 on 2016/12/02 by Daniel.Wright
Don't create projected shadows when r.ShadowQuality is 0
* Fixes crash in the forward path trying to render shadows
* In the deferred path, the shadowmap was still being rendered and only the projection skipped, now all cost will be skipped
Change 3219887 on 2016/12/02 by Daniel.Wright
Changed ClearRenderTarget2D default alpha to 1, which is necessary for correct compositing
Change 3219893 on 2016/12/02 by Daniel.Wright
AMD AGS library with approved TPS
Disabled DFAO on AMD pre-GCN PC video cards to workaround a driver bug which won't be fixed (Radeon 6xxx and below)
Change 3219913 on 2016/12/02 by Daniel.Wright
Level unload of a lighting scenario propagates the lighting scenario change - fixes crash when precomputed lighting volume data gets unloaded
Change 3220029 on 2016/12/02 by Daniel.Wright
Async shader compiling now recreates scene proxies which are affected by the material which was compiled. This fixes crashes which were occuring as proxies cache various material properties, but applying compiled materials would not update these cached properties (bRequiresAdjacencyInformation).
* A new ensure has been added in FMeshElementCollector::AddMesh and FBatchingSPDI::DrawMesh to catch attempts to render with a material not reported in GetUsedMaterials
* Fixed UParticleSystemComponent::GetUsedMaterials and UMaterialBillboardComponent::GetUsedMaterials
* FMaterialUpdateContext should be changed to use the same pattern, but that hasn't been done yet
Change 3220108 on 2016/12/02 by Daniel.Wright
Fixed shadowmap channel assignment for stationary lights which are not in a lighting scenario level, when a lighting scenario level is present
Change 3220504 on 2016/12/03 by Mark.Satterthwaite
Metal Desktop Tessellation support from Unicorn.
- Apple: Metal tessellation support added to MetalShaderFormat, MetalRHI and incl. changes to engine runtime/shaders for Desktop renderer and enabled in ElementalDemo by default (OS X 10.11 will run SM4).
- Epic: Support for different Metal shader standards on Mac, iOS & tvOS which required moving some RHI functions around as this is a project setting and not a compile-time constant.
- Epic: Fragment shader UAV support, which is also tied to newer Metal shader standard like Tessellation.
- Epic: Significant refactor of MetalRHI's internals to clearly separate state-caching from render-pass management and command-encoding.
- Epic: Internal MetalRHI validation code is now cleanly separated out into custom implementations of the Metal @protocol's and is on by default.
- Epic: Various fixes to Layered Rendering for Metal.
- Omits Mobile Tessellation support which needs further revision.
Change 3220881 on 2016/12/04 by Mark.Satterthwaite
Compiles fixes for iOS & static analysis fixes from Windows.
Change 3221180 on 2016/12/05 by Guillaume.Abadie
Avoid compiling PreviousFrameSwitch's both Current Frame and Previous Frame inputs every time.
Change 3221217 on 2016/12/05 by Chris.Bunner
More NVAPI warning fixups.
Change 3221219 on 2016/12/05 by Chris.Bunner
When comparing overriden properties used to force instance recompilation we need to check against the base material, not assume the immediate parent.
#jira UE-37792
Change 3221220 on 2016/12/05 by Chris.Bunner
Exported GetAllStaticSwitchParamNames and GetAllStaticComponentMaskParamNames.
#jira UE-35132
Change 3221221 on 2016/12/05 by Chris.Bunner
PR #2785: Fix comment typo in RendererInterface.h (Contributed by dustin-biser)
#jira UE-35760
Change 3221223 on 2016/12/05 by Chris.Bunner
Default to include dev-code when compiling material preview stats.
#jira UE-20321
Change 3221534 on 2016/12/05 by Rolando.Caloca
DR - Added FDynamicRHI::GetName()
Change 3221833 on 2016/12/05 by Chris.Bunner
Set correct output extent on PostProcessUpscale (allows users to extend chain correctly).
#jira UE-36989
Change 3221852 on 2016/12/05 by Chris.Bunner
32-bit/ch EXR screenshot and frame dump output.
Fixed row increment bug in 128-bit/px surface format readback.
#jira UE-37962
Change 3222059 on 2016/12/05 by Rolando.Caloca
DR - vk - Fix memory type not found
Change 3222104 on 2016/12/05 by Rolando.Caloca
DR - Lambdaize
- Added quicker method to check if system textures are initialized
Change 3222290 on 2016/12/05 by Mark.Satterthwaite
Trivial fixes to reporting Metal shader pipeline errors - need to check if Hull & Domain exist.
Change 3222864 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak when exiting
Change 3222873 on 2016/12/06 by Rolando.Caloca
DR - vk - Minor info to help track down leaks
Change 3222875 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak with VisualizeTexture
#jira UE-39360
Change 3223226 on 2016/12/06 by Chris.Bunner
Static analysis warning workaround.
Change 3223235 on 2016/12/06 by Ben.Woodhouse
Integrate from NREAL: Set a custom projection matrix on a SceneCapture2D
Change 3223343 on 2016/12/06 by Chris.Bunner
Moved HLOD persistent data to viewstate to fix per-view compatability.
#jira UE-37539
Change 3223349 on 2016/12/06 by Chris.Bunner
Fixed HLOD with FreezeRendering command.
#jira UE-29839
Change 3223371 on 2016/12/06 by Michael.Trepka
Removed obsolete check() in FMetalSurface constructor
Change 3223450 on 2016/12/06 by Chris.Bunner
Added explicit ScRGB output device selection rather than Nvidia-only hardcoded checks. Allows easier support for Mac and other devices moving forward.
Change 3223638 on 2016/12/06 by Michael.Trepka
Restored part of the check() in FMetalSurface constructor removed in CL 3223371
Change 3223642 on 2016/12/06 by Mark.Satterthwaite
Experimental Metal EDR/HDR output support for Mac (iOS/tvOS need custom formats & shaders so they are not supported yet).
- Only available on macOS Sierra (10.12) for Macs with HDR displays (e.g. Retina iMacs).
- Enable with -metaledr command-line argument as it is off-by-default.
- Sets up the CAMetalLayer & the back-buffer for RGBA_FP16 output on Mac using DCI-P3 as the color gamut and ACES 1000 nit ScRGB output encoding.
Change 3223830 on 2016/12/06 by Rolando.Caloca
DR - vk - Better error when finding an invalid Vulkan driver
#jira UE-37495
Change 3223869 on 2016/12/06 by Rolando.Caloca
DR - vk - Reuse fences
Change 3223906 on 2016/12/06 by Guillaume.Abadie
Fix alpha through TempAA artifact causing a small darker edge layouts.
Change 3224199 on 2016/12/06 by Mark.Satterthwaite
Fix a dumb copy-paste error from the HDR changes to Metal.
Change 3224220 on 2016/12/06 by Mark.Satterthwaite
Fix various errors with Metal UAV & Render-Pass Restart support so that we can use the Pixel Shader culling for DistanceField effects.
- Unfortunately Metal requires that a texture be bound to start a render-pass, so reuse the dummy depth-stencil surface from the problematic editor preview tile rendering.
Change 3224236 on 2016/12/06 by Mark.Satterthwaite
IWYU CIS compile fix for iOS.
Change 3224366 on 2016/12/06 by Mark.Satterthwaite
Simplify some of the changes from CL# 3224220 so that we don't perform unnecessary clears.
- If the RenderPass is broken to issue compute or blit operations then treat the cached RenderTargetsInfo as invalid, unless the RenderPass is restarted.
- This guarantees that we don't erroneously ignore calls to SetRenderTargets if the calling code issues a dispatch between two RenderPasses that use the same RenderTargetsInfo.
Change 3224416 on 2016/12/06 by Uriel.Doyon
New default implementation for UPrimitiveComponent::GetStreamingTextureInfo using a conservative heuristic where the textures are stretched across the bounds.
Optimized UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval by not handling registered components with no proxy (essentially hidden game / collision primitives).
Added blueprint support for texture streaming built data through FStaticMeshComponentInstanceData.
Fix for material texture streaming data not being available on some cooked builds.
Enabled split requests on all texture load requests (first loading everything visible and then loaded everything not visible).
This is controlled by "r.Streaming.MinMipForSplitRequest" which defines the minimum mip for which to allow splitting.
Forced residency are now loaded in two steps (visible, then forced), improving reactiveness.
Updated "stat streaming" to include "UnkownRefMips" which represent texture with no known component referencing them,
and also "LastRenderTimeMips" which related to timed primitives.
Changed "Forced Mips" so that it only shows mips that are loaded become of forced residency.
"Texture Streaming Build" now updates the map check after execution.
Removed Orphaned texture logic as this has become irrelevant with the latest retention priority logic.
Updated "r.streaming.usenewmetrics" so that it shows behavior before and after 4.12 improvements.
Change 3224532 on 2016/12/07 by Uriel.Doyon
Integrated CL 3223965 :
Building texture streaming data for materials does not wait for pending shaders to finish compilation anymore.
Added more options to allow the user to cancel this build also.
Change 3224714 on 2016/12/07 by Ben.Woodhouse
Cherry pick CL 3223972 from //fortnite/main:
Disable Geometry shader onchip on XB1. This saves 4ms for a single shadow casting point light @ 512x512 (4.8ms to 1.8ms)
Change 3224715 on 2016/12/07 by Ben.Woodhouse
New version of d3dx12.h from Microsoft which incorporates my suggested static analysis fixes. This avoids us diverging from the official version
Change 3224975 on 2016/12/07 by Rolando.Caloca
DR - vk - Dump improvements
Change 3225012 on 2016/12/07 by Rolando.Caloca
DR - Show warning if trying to use num samples != (1,2,4,8,16)
Change 3225126 on 2016/12/07 by Chris.Bunner
Added 'force 128-bit rendering pipeline' to high-res screenshot tool.
#jira UE-39345
Change 3225449 on 2016/12/07 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3225485 on 2016/12/07 by Chris.Bunner
Moved QuantizeSceneBufferSize to RenderCore and added call for PostProcess settings. Fixes screenpercentage out-of-bounds reads in some cases.
#jira UE-19394
Change 3225486 on 2016/12/07 by Chris.Bunner
Only disable TAA during HighResScreenshots if we don't have a reasonable frame-delay enabled.
Change 3225505 on 2016/12/07 by Daniel.Wright
Fixed exponential height fog disappearing with no skybox
Change 3225655 on 2016/12/07 by Benjamin.Hyder
Updating TM-Shadermodels to include Translucent lighting, Two sided, updated cloth animation, and adjusted lighting.
Change 3225668 on 2016/12/07 by Chris.Bunner
Dirty owning packages when user manually forces regeneration of all reflection captures.
#jira UE-38759
Change 3226139 on 2016/12/07 by Rolando.Caloca
DR - Fix recompute tangents disabling skin cache
- Make some macros into lambdas
#jira UE-39143
Change 3226212 on 2016/12/07 by Daniel.Wright
Features which require a full prepass use DDM_AllOpaque instead of DDM_AllOccluders, which can be skipped if the component has bUseAsOccluder=false
Change 3226213 on 2016/12/07 by Daniel.Wright
Scene Capture 2D can specify a global clip plane, which is useful for portals
* Requires the global clip plane project setting to be enabled
Change 3226214 on 2016/12/07 by Daniel.Wright
Improved deferred shadowing with MSAA by upsampling light attenuation intelligently in the base pass
* If the current fragment's depth doesn't match what was used for deferred shadowing, the neighbor (cross pattern) with the nearest depth's shadowing is used
* Edge artifacts can still occur where the upsample fails or the shadow factor was computed per-sample due to depth / stencil testing
* Indirect Occlusion from capsule shadows also uses the nearest depth neighbor UV for no extra cost
* Base pass on 970 GTX 1.69ms -> 1.85ms (.16ms) in RoboRecall
Change 3226258 on 2016/12/07 by Rolando.Caloca
DR - Typo fix
Change 3226259 on 2016/12/07 by Rolando.Caloca
DR - compile fix
#jira UE-39143
Change 3226932 on 2016/12/08 by Chris.Bunner
Re-saved Infiltrator maps to update reflection captures.
#jira UE-38759
Change 3227063 on 2016/12/08 by Mark.Satterthwaite
For Metal platforms ONLY temporarily disable USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING to avoid UE-37436 while the Nvidia driver team investigate why this doesn't work for them but does for the others. This won't affect non-Metal platforms and the intent is to revert this prior to 4.16 provided we can work through the problem with Nvidia.
#jira UE-37436
Change 3227120 on 2016/12/08 by Gil.Gribb
Merging //UE4/Dev-Main@3226895 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3227211 on 2016/12/08 by Arne.Schober
DR - UE-38585 - Fixing crash where HierInstStaticMesh duplication fails. Also reverting the fix from UE-28189 which is redundant.
Change 3227257 on 2016/12/08 by Marc.Olano
Extension to PseudoVolumeTexture for more flexible layout
Change by ryan.brucks
Change 3227286 on 2016/12/08 by Rolando.Caloca
DR - Fix crash when using custom expressions and using reserved keywords
#jira UE-39311
Change 3227376 on 2016/12/08 by Mark.Satterthwaite
Must not include a private header inside the MenuStack public header as that causes compile errors in plugins.
Change 3227415 on 2016/12/08 by Mark.Satterthwaite
Fix shader compilation due to my disabling of USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING on Metal - InstancedCompositeTileReflectionCaptureIndices needs to be defined even though Metal doesn't support instanced-stereo rendering.
Change 3227516 on 2016/12/08 by Daniel.Wright
Implemented UWidgetComponent::GetUsedMaterials
Change 3227521 on 2016/12/08 by Guillaume.Abadie
Fixes post process volume's indirect lighting color.
#jira UE-38888
Change 3227567 on 2016/12/08 by Marc.Olano
New upscale filters: Lanczos-2 (new default), Lanczos-3 and Gaussian Unsharp Mask
Change 3227628 on 2016/12/08 by Daniel.Wright
Removed redundant ResolveSceneDepthTexture from the merge
Change 3227635 on 2016/12/08 by Daniel.Wright
Forward renderer supports shadowing from movable lights and light functions
* Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed
* Light functions only work on shadow casting lights since they need a shadowmap channel to be assigned
Change 3227660 on 2016/12/08 by Rolando.Caloca
DR - vk - Fix r.MobileMSAA on Vulkan
- r.MobileMSAA is now read-only (to be fixed on 4.16)
- Show time for PSO creation hitches
#jira UE-39184
Change 3227704 on 2016/12/08 by Mark.Satterthwaite
Fix Mac HDR causing incorrect output color encoding being used, HDR support is now entirely off unless you pass -metaledr which will enable it regardless of whether the current display supports HDR (as we haven't written the detection code yet). Fixed the LUT/UI compositing along the way - Mac Metal wasn't using volume LUT as it should have been, RHISupportsVertexShaderLayer now correctly returns false for non-Mac Metal platforms.
Change 3227705 on 2016/12/08 by Daniel.Wright
Replaced built-in samplers in the nearest depth translucency upsample because the built-in samplers are no longer bound on PC (cl 2852426)
Change 3227787 on 2016/12/08 by Chris.Bunner
Added extent clear to motion blur pass to catch misized buffers bringing in errors.
Added early out to clear call when excluded region matches RT region.
#jira UE-39437
Change 3228177 on 2016/12/08 by Marc.Olano
Fix DCC sqrt(int) error
Change 3228285 on 2016/12/08 by Chris.Bunner
Back out changelist 3225449.
#jira UE-39528
Change 3228680 on 2016/12/09 by Gil.Gribb
Merging //UE4/Dev-Main@3228528 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3228940 on 2016/12/09 by Mark.Satterthwaite
Editor fixes for 4.15:
- PostProcessTonemap can't fail to bind a texture to the ColorLUT or the subsequent rendering will be garbage: the changes for optimising stereo rendering forgot to account for the Editor's use of Views without States for the asset preview thumbnails. Amended the CombineLUT post-processing to allocate a local output texture when there's no ViewState and read from this when this situation arises which makes everything function again.
- Don't start render-passes without a valid render-target-array in MetalRHI.
Change 3228950 on 2016/12/09 by Mark.Satterthwaite
Make GPUSkinCache run on Mac Metal - it wasn't working because it was forcibly disabled on all platforms but for Windows D3D 11.
- Fixed the Skeleton editor tree trying to access a widget before it has been constructed.
- Enable GPUSkinCache for Metal SM5: doesn't render correctly, even on AMD, so needs Radar's filing and investigation.
#jira UE-39256
Change 3229013 on 2016/12/09 by Mark.Satterthwaite
Further tidy up in SSkeletonTreeView as suggested by Nick.A.
Change 3229101 on 2016/12/09 by Chris.Bunner
Log compile error fix and updated cvar comments.
Change 3229236 on 2016/12/09 by Ben.Woodhouse
XB1 D3D11 and D3D12: Use the DXGI frame statistics to get accurate GPU time unaffected by bubbles
Change 3229430 on 2016/12/09 by Ben.Woodhouse
PR #2680: Optimized histogram generation. (Contributed by PjotrSvetachov)
Profiled on nvidia 980GTX (2x faster), and on XB1 (marginally faster)
Change 3229580 on 2016/12/09 by Marcus.Wassmer
DepthBoundsTest for AMD.
Change 3229701 on 2016/12/09 by Michael.Trepka
Changed "OS X" to "macOS" in few places where we display it and updated the code that asks users to update to latest version to check for 10.12.2
Change 3229706 on 2016/12/09 by Chris.Bunner
Added GameUserSettings controls for HDR display output.
Removed Metal commandline as this should replace the need for it.
Change 3229774 on 2016/12/09 by Michael.Trepka
Disabled OpenGL on Mac. -opengl is now ignored, we always use Metal. On old Macs that do not support Metal we show a message saying that the app requires Metal and exit.
Change 3229819 on 2016/12/09 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3229948 on 2016/12/09 by Rolando.Caloca
DR - Fix d3d debug error
#jira UE-39589
Change 3230341 on 2016/12/11 by Mark.Satterthwaite
Don't fatally assert that the game-thread stalled waiting for the rendering thread in the Editor executable, even when running -game as the rendering thread can take a while to respond if shaders need to be compiled.
#jira UE-39613
Change 3230860 on 2016/12/12 by Marcus.Wassmer
Experimental Nvidia AFR support.
Change 3230930 on 2016/12/12 by Mark.Satterthwaite
Disable RHICmdList state-caching on Mac - Metal already does this internally and depends on receiving all state changes in order to function.
Change 3231252 on 2016/12/12 by Marcus.Wassmer
Fix NumGPU detection. (SLI only crash)
Change 3231486 on 2016/12/12 by Mark.Satterthwaite
Fix a stupid mistake in MetalStateCache::CommitResourceTable that would unnecessarily rebind samplers.
Change 3231661 on 2016/12/12 by Mark.Satterthwaite
Retain the RHI samplers in MetalRHI to guarantee lifetime.
[CL 3231696 by Gil Gribb in Main branch]
2016-12-12 17:47:42 -05:00
} ;
FTexture * GBlackTextureDepthCube = new TGlobalResource < FBlackTextureDepthCube > ;
2014-03-14 14:13:41 -04:00
class FBlackCubeArrayTexture : public FTexture
{
public :
// FResource interface.
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
2014-07-10 10:39:54 -04:00
if ( GetFeatureLevel ( ) > = ERHIFeatureLevel : : SM5 )
2014-03-14 14:13:41 -04:00
{
// Create the texture RHI.
2019-03-13 14:52:34 -04:00
FRHIResourceCreateInfo CreateInfo ( TEXT ( " BlackCubeArray " ) ) ;
2014-05-20 15:09:51 -04:00
FTextureCubeRHIRef TextureCubeArray = RHICreateTextureCubeArray ( 1 , 1 , PF_B8G8R8A8 , 1 , TexCreate_ShaderResource , CreateInfo ) ;
2014-03-14 14:13:41 -04:00
TextureRHI = TextureCubeArray ;
for ( uint32 FaceIndex = 0 ; FaceIndex < 6 ; FaceIndex + + )
{
uint32 DestStride ;
2014-06-27 11:07:13 -04:00
FColor * DestBuffer = ( FColor * ) RHILockTextureCubeFace ( TextureCubeArray , FaceIndex , 0 , 0 , RLM_WriteOnly , DestStride , false ) ;
2014-04-02 18:09:23 -04:00
// Note: alpha is used by reflection environment to say how much of the foreground texture is visible, so 0 says it is completely invisible
* DestBuffer = FColor ( 0 , 0 , 0 , 0 ) ;
2014-06-27 11:07:13 -04:00
RHIUnlockTextureCubeFace ( TextureCubeArray , FaceIndex , 0 , 0 , false ) ;
2014-03-14 14:13:41 -04:00
}
// Create the sampler state RHI resource.
FSamplerStateInitializerRHI SamplerStateInitializer ( SF_Point , AM_Wrap , AM_Wrap , AM_Wrap ) ;
SamplerStateRHI = RHICreateSamplerState ( SamplerStateInitializer ) ;
}
}
/** Returns the width of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeX ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
/** Returns the height of the texture in pixels. */
2015-04-01 07:20:55 -04:00
virtual uint32 GetSizeY ( ) const override
2014-03-14 14:13:41 -04:00
{
return 1 ;
}
} ;
FTexture * GBlackCubeArrayTexture = new TGlobalResource < FBlackCubeArrayTexture > ;
/*
2014-11-10 16:34:56 -05:00
3 XYZ packed in 4 bytes . ( 11 : 11 : 10 for X : Y : Z )
2014-03-14 14:13:41 -04:00
*/
/**
* operator FVector - unpacked to - 1 to 1
*/
FPackedPosition : : operator FVector ( ) const
{
return FVector ( Vector . X / 1023.f , Vector . Y / 1023.f , Vector . Z / 511.f ) ;
}
/**
* operator VectorRegister
*/
VectorRegister FPackedPosition : : GetVectorRegister ( ) const
{
FVector UnpackedVect = * this ;
VectorRegister VectorToUnpack = VectorLoadFloat3_W0 ( & UnpackedVect ) ;
return VectorToUnpack ;
}
/**
* Pack this vector ( - 1 to 1 for XYZ ) to 4 bytes XYZ ( 11 : 11 : 10 )
*/
void FPackedPosition : : Set ( const FVector & InVector )
{
check ( FMath : : Abs < float > ( InVector . X ) < = 1.f & & FMath : : Abs < float > ( InVector . Y ) < = 1.f & & FMath : : Abs < float > ( InVector . Z ) < = 1.f ) ;
# if !WITH_EDITORONLY_DATA
// This should not happen in Console - this should happen during Cooking in PC
check ( false ) ;
# else
// Too confusing to use .5f - wanted to use the last bit!
// Change to int for easier read
2014-05-06 06:26:25 -04:00
Vector . X = FMath : : Clamp < int32 > ( FMath : : TruncToInt ( InVector . X * 1023.0f ) , - 1023 , 1023 ) ;
Vector . Y = FMath : : Clamp < int32 > ( FMath : : TruncToInt ( InVector . Y * 1023.0f ) , - 1023 , 1023 ) ;
Vector . Z = FMath : : Clamp < int32 > ( FMath : : TruncToInt ( InVector . Z * 511.0f ) , - 511 , 511 ) ;
2014-03-14 14:13:41 -04:00
# endif
}
/**
* operator < < serialize
*/
FArchive & operator < < ( FArchive & Ar , FPackedPosition & N )
{
// Save N.Packed
return Ar < < N . Packed ;
}
void CalcMipMapExtent3D ( uint32 TextureSizeX , uint32 TextureSizeY , uint32 TextureSizeZ , EPixelFormat Format , uint32 MipIndex , uint32 & OutXExtent , uint32 & OutYExtent , uint32 & OutZExtent )
{
OutXExtent = FMath : : Max < uint32 > ( TextureSizeX > > MipIndex , GPixelFormats [ Format ] . BlockSizeX ) ;
OutYExtent = FMath : : Max < uint32 > ( TextureSizeY > > MipIndex , GPixelFormats [ Format ] . BlockSizeY ) ;
OutZExtent = FMath : : Max < uint32 > ( TextureSizeZ > > MipIndex , GPixelFormats [ Format ] . BlockSizeZ ) ;
}
SIZE_T CalcTextureMipMapSize3D ( uint32 TextureSizeX , uint32 TextureSizeY , uint32 TextureSizeZ , EPixelFormat Format , uint32 MipIndex )
{
uint32 XExtent ;
uint32 YExtent ;
uint32 ZExtent ;
CalcMipMapExtent3D ( TextureSizeX , TextureSizeY , TextureSizeZ , Format , MipIndex , XExtent , YExtent , ZExtent ) ;
2015-09-25 18:33:00 -04:00
// Offset MipExtent to round up result
XExtent + = GPixelFormats [ Format ] . BlockSizeX - 1 ;
YExtent + = GPixelFormats [ Format ] . BlockSizeY - 1 ;
ZExtent + = GPixelFormats [ Format ] . BlockSizeZ - 1 ;
2014-03-14 14:13:41 -04:00
const uint32 XPitch = ( XExtent / GPixelFormats [ Format ] . BlockSizeX ) * GPixelFormats [ Format ] . BlockBytes ;
const uint32 NumRows = YExtent / GPixelFormats [ Format ] . BlockSizeY ;
const uint32 NumLayers = ZExtent / GPixelFormats [ Format ] . BlockSizeZ ;
return NumLayers * NumRows * XPitch ;
}
SIZE_T CalcTextureSize3D ( uint32 SizeX , uint32 SizeY , uint32 SizeZ , EPixelFormat Format , uint32 MipCount )
{
SIZE_T Size = 0 ;
for ( uint32 MipIndex = 0 ; MipIndex < MipCount ; + + MipIndex )
{
Size + = CalcTextureMipMapSize3D ( SizeX , SizeY , SizeZ , Format , MipIndex ) ;
}
return Size ;
}
FIntPoint CalcMipMapExtent ( uint32 TextureSizeX , uint32 TextureSizeY , EPixelFormat Format , uint32 MipIndex )
{
return FIntPoint ( FMath : : Max < uint32 > ( TextureSizeX > > MipIndex , GPixelFormats [ Format ] . BlockSizeX ) , FMath : : Max < uint32 > ( TextureSizeY > > MipIndex , GPixelFormats [ Format ] . BlockSizeY ) ) ;
}
2016-03-16 21:16:51 -04:00
SIZE_T CalcTextureMipWidthInBlocks ( uint32 TextureSizeX , EPixelFormat Format , uint32 MipIndex )
{
const uint32 BlockSizeX = GPixelFormats [ Format ] . BlockSizeX ;
const uint32 WidthInTexels = FMath : : Max < uint32 > ( TextureSizeX > > MipIndex , 1 ) ;
const uint32 WidthInBlocks = ( WidthInTexels + BlockSizeX - 1 ) / BlockSizeX ;
return WidthInBlocks ;
}
SIZE_T CalcTextureMipHeightInBlocks ( uint32 TextureSizeY , EPixelFormat Format , uint32 MipIndex )
{
const uint32 BlockSizeY = GPixelFormats [ Format ] . BlockSizeY ;
const uint32 HeightInTexels = FMath : : Max < uint32 > ( TextureSizeY > > MipIndex , 1 ) ;
const uint32 HeightInBlocks = ( HeightInTexels + BlockSizeY - 1 ) / BlockSizeY ;
return HeightInBlocks ;
}
2014-03-14 14:13:41 -04:00
SIZE_T CalcTextureMipMapSize ( uint32 TextureSizeX , uint32 TextureSizeY , EPixelFormat Format , uint32 MipIndex )
{
2016-03-16 21:16:51 -04:00
const uint32 WidthInBlocks = CalcTextureMipWidthInBlocks ( TextureSizeX , Format , MipIndex ) ;
const uint32 HeightInBlocks = CalcTextureMipHeightInBlocks ( TextureSizeY , Format , MipIndex ) ;
return WidthInBlocks * HeightInBlocks * GPixelFormats [ Format ] . BlockBytes ;
2014-03-14 14:13:41 -04:00
}
SIZE_T CalcTextureSize ( uint32 SizeX , uint32 SizeY , EPixelFormat Format , uint32 MipCount )
{
SIZE_T Size = 0 ;
for ( uint32 MipIndex = 0 ; MipIndex < MipCount ; + + MipIndex )
{
Size + = CalcTextureMipMapSize ( SizeX , SizeY , Format , MipIndex ) ;
}
return Size ;
}
void CopyTextureData2D ( const void * Source , void * Dest , uint32 SizeY , EPixelFormat Format , uint32 SourceStride , uint32 DestStride )
{
const uint32 BlockSizeY = GPixelFormats [ Format ] . BlockSizeY ;
const uint32 NumBlocksY = ( SizeY + BlockSizeY - 1 ) / BlockSizeY ;
// a DestStride of 0 means to use the SourceStride
if ( SourceStride = = DestStride | | DestStride = = 0 )
{
// If the source and destination have the same stride, copy the data in one block.
FMemory : : Memcpy ( Dest , Source , NumBlocksY * SourceStride ) ;
}
else
{
// If the source and destination have different strides, copy each row of blocks separately.
const uint32 NumBytesPerRow = FMath : : Min < uint32 > ( SourceStride , DestStride ) ;
for ( uint32 BlockY = 0 ; BlockY < NumBlocksY ; + + BlockY )
{
FMemory : : Memcpy (
( uint8 * ) Dest + DestStride * BlockY ,
( uint8 * ) Source + SourceStride * BlockY ,
NumBytesPerRow
) ;
}
}
}
/** Helper functions for text output of texture properties... */
# ifndef CASE_ENUM_TO_TEXT
# define CASE_ENUM_TO_TEXT(txt) case txt: return TEXT(#txt);
# endif
# ifndef TEXT_TO_ENUM
# define TEXT_TO_ENUM(eVal, txt) if (FCString::Stricmp(TEXT(#eVal), txt) == 0) return eVal;
# endif
const TCHAR * GetPixelFormatString ( EPixelFormat InPixelFormat )
{
switch ( InPixelFormat )
{
FOREACH_ENUM_EPIXELFORMAT ( CASE_ENUM_TO_TEXT )
default :
return TEXT ( " PF_Unknown " ) ;
}
}
EPixelFormat GetPixelFormatFromString ( const TCHAR * InPixelFormatStr )
{
# define TEXT_TO_PIXELFORMAT(f) TEXT_TO_ENUM(f, InPixelFormatStr);
FOREACH_ENUM_EPIXELFORMAT ( TEXT_TO_PIXELFORMAT )
# undef TEXT_TO_PIXELFORMAT
return PF_Unknown ;
}
const TCHAR * GetCubeFaceName ( ECubeFace Face )
{
switch ( Face )
{
case CubeFace_PosX :
return TEXT ( " PosX " ) ;
case CubeFace_NegX :
return TEXT ( " NegX " ) ;
case CubeFace_PosY :
return TEXT ( " PosY " ) ;
case CubeFace_NegY :
return TEXT ( " NegY " ) ;
case CubeFace_PosZ :
return TEXT ( " PosZ " ) ;
case CubeFace_NegZ :
return TEXT ( " NegZ " ) ;
default :
return TEXT ( " " ) ;
}
}
ECubeFace GetCubeFaceFromName ( const FString & Name )
{
// not fast but doesn't have to be
if ( Name . EndsWith ( TEXT ( " PosX " ) ) )
{
return CubeFace_PosX ;
}
else if ( Name . EndsWith ( TEXT ( " NegX " ) ) )
{
return CubeFace_NegX ;
}
else if ( Name . EndsWith ( TEXT ( " PosY " ) ) )
{
return CubeFace_PosY ;
}
else if ( Name . EndsWith ( TEXT ( " NegY " ) ) )
{
return CubeFace_NegY ;
}
else if ( Name . EndsWith ( TEXT ( " PosZ " ) ) )
{
return CubeFace_PosZ ;
}
else if ( Name . EndsWith ( TEXT ( " NegZ " ) ) )
{
return CubeFace_NegZ ;
}
return CubeFace_MAX ;
}
class FVector4VertexDeclaration : public FRenderResource
{
public :
FVertexDeclarationRHIRef VertexDeclarationRHI ;
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
FVertexDeclarationElementList Elements ;
2014-06-17 18:27:26 -04:00
Elements . Add ( FVertexElement ( 0 , 0 , VET_Float4 , 0 , sizeof ( FVector4 ) ) ) ;
2019-02-19 19:25:23 -05:00
VertexDeclarationRHI = PipelineStateCache : : GetOrCreateVertexDeclaration ( Elements ) ;
2014-03-14 14:13:41 -04:00
}
2014-06-27 11:07:13 -04:00
virtual void ReleaseRHI ( ) override
2014-03-14 14:13:41 -04:00
{
VertexDeclarationRHI . SafeRelease ( ) ;
}
} ;
TGlobalResource < FVector4VertexDeclaration > GVector4VertexDeclaration ;
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector4 ( )
{
return GVector4VertexDeclaration . VertexDeclarationRHI ;
}
class FVector3VertexDeclaration : public FRenderResource
{
public :
FVertexDeclarationRHIRef VertexDeclarationRHI ;
2014-06-27 11:07:13 -04:00
virtual void InitRHI ( ) override
2014-03-14 14:13:41 -04:00
{
FVertexDeclarationElementList Elements ;
2014-06-17 18:27:26 -04:00
Elements . Add ( FVertexElement ( 0 , 0 , VET_Float3 , 0 , sizeof ( FVector ) ) ) ;
2019-02-19 19:25:23 -05:00
VertexDeclarationRHI = PipelineStateCache : : GetOrCreateVertexDeclaration ( Elements ) ;
2014-03-14 14:13:41 -04:00
}
2014-06-27 11:07:13 -04:00
virtual void ReleaseRHI ( ) override
2014-03-14 14:13:41 -04:00
{
VertexDeclarationRHI . SafeRelease ( ) ;
}
} ;
TGlobalResource < FVector3VertexDeclaration > GVector3VertexDeclaration ;
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector3 ( )
{
return GVector3VertexDeclaration . VertexDeclarationRHI ;
}
#CodeReview: jason.bestimt,nick.whiting,mike.beach
--------------------------------------
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering [at] 4358666)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4073167 by Krzysztof.Narkowicz
Added subsurface profile for eye shading model.
#jira none
Change 4073422 by Krzysztof.Narkowicz
Added dual specular for subsurface profile shading model.
#jira none
Change 4075278 by Krzysztof.Narkowicz
Fixed forward reflection/refraction rendering issues, which caused ShaderModels.Material.Refraction to fail.
#jira none
Change 4084231 by Krzysztof.Narkowicz
Dual specular - replace lobe spread with two separate roughness multipliers. Default material roughness is now replaced by an average lobe roughness in order to support non dual specular features.
#jira none
Change 4092798 by Matt.Collins
Some HDR refactoring.
Previously the DisplayOutput and ColorGamut were only set in GameUserSettings.
I added a Sink that checks the HDR enable. If it's toggled we apply the correct DisplayOutput and ColorGamut for the current platform (this way we get good settings even if you toggle via the console). These settings are still exposed via the console and can be set independently if the user wants.
Change 4096954 by Chris.Bunner
Added ShaderModelID as scene texture option and renamed existing value to ShaderModelColor to better reflect the internal code.
Change 4111285 by Brian.Karis
Eye shading update.
Added Iris normal (disabled). Removed wrap. Fixed contact shadows.
Change 4155261 by Krzysztof.Narkowicz
Planar reflection prefilter - use scene viewport size instead of reflection target size in order to keep filter size constant in screen space. This makes planar reflection filter more stable in case of dynamic resolution.
#jira none
Change 4167644 by Krzysztof.Narkowicz
Global shader map is now stored in multiple DDC entries (one per shader filename) instead of keeping everything in a single one. This allows to skip recompilation of unchanged shader files.
Change 4183727 by Yuriy.ODonnell
Implemented auto-conversion from deferred to DBuffer decals in forward shading mode (when GBuffer is not available).
Added support for specular and metallic channels for DBuffer decals, based on work by Chris Bunner.
This requires DBufferC to be expanded from 2 to 4 channels, leading to slight increase in DBuffer bandwidth and memory requirements.
Appearance of DBuffer decals is affected by this change, as specular and metallic channel values previously hard-coded in DBufferDecalShared.ush.
Decals were forced to be non-metallic and have specular of 4% (0.5 numeric value). Now the authored decal material values will be used, which matches GBuffer decals.
Added support for DBuffer decals with emissive component.
Most decal types can now be automatically converted, with the exception of stain decals. Those are currently approximated as regular translucent decals.
Change 4197684 by laz.matech
Added a PostProcess Volume test to the map to test that Cinematic Depth of View can be achieved through PPVs as well. Changed the BP_DepthOfFeildPOV asset - I exposed Focus Method so that it can be disabled for the PPV test. Added a second Hair Model head to the InFocusHair test so that it tests in and out of focus hair models (changed the name of the test to FocusHair).
#jira none
Change 4225614 by Rolando.Caloca
DR - Enable depth collision particles on Vulkan mobile
Change 4235489 by Uriel.Doyon
Removed r.DefaultFeature.PointLightUnits and r.DefaultFeature.SpotLightUnits and replaced them by a single r.DefaultFeature.LightUnits which also controls the units of newly placed rect lights.
#jira UE-59525
Change 4260154 by Mark.Satterthwaite
Parallelize the creation of Metal archives and libraries when they are broken up into smaller sub-libraries, this should reduce apparent cook time by going wide across threads on the host of the cooker.
Change 4270594 by Brian.Karis
Fix for textured rect light L pointing away from plane due to approximate diffuse integration.
Change 4273361 by Daniel.Wright
Particle Cutouts with 8 verts now always use stochastic approach. Circle textures with > 234 edges in the convex hull were overflowing the uint64 calculation of the total number of combinations, causing an infinite loop.
Change 4309174 by Mark.Satterthwaite
Graph device utilization from the driver monitor stats - really helps see how well the GPU is being used.
Change 4310121 by Matt.Collins
Optmizing RemoveUniformBuffersFromSource. Brings it from ~20% to ~1.5% in my testing.
#jira none
Change 4312960 by Daniel.Wright
Fix from Stephen Hill for incorrect light grid culling near the near plane
Change 4314169 by Richard.Wallis
FShaderCache and associated public structures are now marked as deprecated. All FShaderCache code hooks removed from MetalRHI, OpenGLDrv and engine Launch/Shutdown logic.
#jira none
Change 4320760 by Arne.Schober
DR - Remove SV_Coverage from basepass interpolants when running with Masked in early Depth with ForwardShading as otherwise earlyZ will be disabled (as the PS has to run).
#jira UE-60992
Change 4334607 by Uriel.Doyon
Added custom overrides to reset ULightComponent::Intensity to default (in FLightComponentDetails).
Now settings a light Intesity to default resets the brightness to the archetype brightness.
This handles correctly cases where the intensity units differs between the two objects.
Also changed FLocalLightComponentDetails so that changing intensity units kepts the same brightness
(by recomputing the Intensity).
#jira UE-61401
Change 4336188 by Rolando.Caloca
DR - Added -ReduceThreadUsage so programs can use less threads (for SCW )
Change 4337967 by Rolando.Caloca
DR - Remove unused RHISupportsShaderCompression function
#rb none
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4358751 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
[CL 4358828 by jason bestimt in Dev-VR branch]
2018-09-11 15:00:12 -04:00
class FVector2VertexDeclaration : public FRenderResource
{
public :
FVertexDeclarationRHIRef VertexDeclarationRHI ;
virtual void InitRHI ( ) override
{
FVertexDeclarationElementList Elements ;
Elements . Add ( FVertexElement ( 0 , 0 , VET_Float2 , 0 , sizeof ( FVector2D ) ) ) ;
2019-02-19 19:25:23 -05:00
VertexDeclarationRHI = PipelineStateCache : : GetOrCreateVertexDeclaration ( Elements ) ;
#CodeReview: jason.bestimt,nick.whiting,mike.beach
--------------------------------------
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering [at] 4358666)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4073167 by Krzysztof.Narkowicz
Added subsurface profile for eye shading model.
#jira none
Change 4073422 by Krzysztof.Narkowicz
Added dual specular for subsurface profile shading model.
#jira none
Change 4075278 by Krzysztof.Narkowicz
Fixed forward reflection/refraction rendering issues, which caused ShaderModels.Material.Refraction to fail.
#jira none
Change 4084231 by Krzysztof.Narkowicz
Dual specular - replace lobe spread with two separate roughness multipliers. Default material roughness is now replaced by an average lobe roughness in order to support non dual specular features.
#jira none
Change 4092798 by Matt.Collins
Some HDR refactoring.
Previously the DisplayOutput and ColorGamut were only set in GameUserSettings.
I added a Sink that checks the HDR enable. If it's toggled we apply the correct DisplayOutput and ColorGamut for the current platform (this way we get good settings even if you toggle via the console). These settings are still exposed via the console and can be set independently if the user wants.
Change 4096954 by Chris.Bunner
Added ShaderModelID as scene texture option and renamed existing value to ShaderModelColor to better reflect the internal code.
Change 4111285 by Brian.Karis
Eye shading update.
Added Iris normal (disabled). Removed wrap. Fixed contact shadows.
Change 4155261 by Krzysztof.Narkowicz
Planar reflection prefilter - use scene viewport size instead of reflection target size in order to keep filter size constant in screen space. This makes planar reflection filter more stable in case of dynamic resolution.
#jira none
Change 4167644 by Krzysztof.Narkowicz
Global shader map is now stored in multiple DDC entries (one per shader filename) instead of keeping everything in a single one. This allows to skip recompilation of unchanged shader files.
Change 4183727 by Yuriy.ODonnell
Implemented auto-conversion from deferred to DBuffer decals in forward shading mode (when GBuffer is not available).
Added support for specular and metallic channels for DBuffer decals, based on work by Chris Bunner.
This requires DBufferC to be expanded from 2 to 4 channels, leading to slight increase in DBuffer bandwidth and memory requirements.
Appearance of DBuffer decals is affected by this change, as specular and metallic channel values previously hard-coded in DBufferDecalShared.ush.
Decals were forced to be non-metallic and have specular of 4% (0.5 numeric value). Now the authored decal material values will be used, which matches GBuffer decals.
Added support for DBuffer decals with emissive component.
Most decal types can now be automatically converted, with the exception of stain decals. Those are currently approximated as regular translucent decals.
Change 4197684 by laz.matech
Added a PostProcess Volume test to the map to test that Cinematic Depth of View can be achieved through PPVs as well. Changed the BP_DepthOfFeildPOV asset - I exposed Focus Method so that it can be disabled for the PPV test. Added a second Hair Model head to the InFocusHair test so that it tests in and out of focus hair models (changed the name of the test to FocusHair).
#jira none
Change 4225614 by Rolando.Caloca
DR - Enable depth collision particles on Vulkan mobile
Change 4235489 by Uriel.Doyon
Removed r.DefaultFeature.PointLightUnits and r.DefaultFeature.SpotLightUnits and replaced them by a single r.DefaultFeature.LightUnits which also controls the units of newly placed rect lights.
#jira UE-59525
Change 4260154 by Mark.Satterthwaite
Parallelize the creation of Metal archives and libraries when they are broken up into smaller sub-libraries, this should reduce apparent cook time by going wide across threads on the host of the cooker.
Change 4270594 by Brian.Karis
Fix for textured rect light L pointing away from plane due to approximate diffuse integration.
Change 4273361 by Daniel.Wright
Particle Cutouts with 8 verts now always use stochastic approach. Circle textures with > 234 edges in the convex hull were overflowing the uint64 calculation of the total number of combinations, causing an infinite loop.
Change 4309174 by Mark.Satterthwaite
Graph device utilization from the driver monitor stats - really helps see how well the GPU is being used.
Change 4310121 by Matt.Collins
Optmizing RemoveUniformBuffersFromSource. Brings it from ~20% to ~1.5% in my testing.
#jira none
Change 4312960 by Daniel.Wright
Fix from Stephen Hill for incorrect light grid culling near the near plane
Change 4314169 by Richard.Wallis
FShaderCache and associated public structures are now marked as deprecated. All FShaderCache code hooks removed from MetalRHI, OpenGLDrv and engine Launch/Shutdown logic.
#jira none
Change 4320760 by Arne.Schober
DR - Remove SV_Coverage from basepass interpolants when running with Masked in early Depth with ForwardShading as otherwise earlyZ will be disabled (as the PS has to run).
#jira UE-60992
Change 4334607 by Uriel.Doyon
Added custom overrides to reset ULightComponent::Intensity to default (in FLightComponentDetails).
Now settings a light Intesity to default resets the brightness to the archetype brightness.
This handles correctly cases where the intensity units differs between the two objects.
Also changed FLocalLightComponentDetails so that changing intensity units kepts the same brightness
(by recomputing the Intensity).
#jira UE-61401
Change 4336188 by Rolando.Caloca
DR - Added -ReduceThreadUsage so programs can use less threads (for SCW )
Change 4337967 by Rolando.Caloca
DR - Remove unused RHISupportsShaderCompression function
#rb none
#ROBOMERGE-OWNER: jason.bestimt
#ROBOMERGE-SOURCE: CL 4358751 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)
[CL 4358828 by jason bestimt in Dev-VR branch]
2018-09-11 15:00:12 -04:00
}
virtual void ReleaseRHI ( ) override
{
VertexDeclarationRHI . SafeRelease ( ) ;
}
} ;
TGlobalResource < FVector2VertexDeclaration > GVector2VertexDeclaration ;
RENDERCORE_API FVertexDeclarationRHIRef & GetVertexDeclarationFVector2 ( )
{
return GVector2VertexDeclaration . VertexDeclarationRHI ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2981742)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2967522 on 2016/05/05 by Martin.Mittring
fixed UE-30208 Ensure taking high resolution screenshot
renamed cvar from r.SaveUncompressedEXRFrame to r.SaveEXR.CompressionQuality and change meaning
Change 2967541 on 2016/05/05 by Martin.Mittring
added cvar help entry to the editor menu
Change 2967544 on 2016/05/05 by Martin.Mittring
* added ensures to track down UE-22073 [CrashReport] Crash when changing Editor Window Size - FDeferredShadingSceneRenderer::ClearTranslucentVolumeLighting()
* fixed typo
* improved r.DisplayInternals
Change 2967685 on 2016/05/05 by Rolando.Caloca
DR - Fix 2013 compile
#jira UE-30369
Change 2967883 on 2016/05/05 by Olaf.Piesche
Making inherit rotation work for mesh particles
#jira UE-30153
Change 2967948 on 2016/05/05 by Daniel.Wright
MaterialParameterCollections now create default resources (uniform buffers) which are used when no valid FScene is present (eg DrawTile while exporting materials to lightmass)
Change 2967954 on 2016/05/05 by Daniel.Wright
New refraction mode 'Pixel Normal Offset', which uses the difference between the per-pixel normal and the per-vertex normal to compute the refraction offset. This is useful for refraction from large water surfaces without reading outside of screen bounds as much.
Change 2967970 on 2016/05/05 by Olaf.Piesche
Improvement for depth buffer collision; reduce tunneling by sampling midpoint instead of predicted position.
#jira UE-27297
Change 2968125 on 2016/05/05 by Daniel.Wright
Hopeful fix for mac compile error with enum
Change 2968126 on 2016/05/05 by Daniel.Wright
Forward declare to fix compile error
Change 2969070 on 2016/05/06 by Martin.Mittring
fixed Clang Compile error
Change 2969224 on 2016/05/06 by Martin.Mittring
fixed Clang
Change 2969275 on 2016/05/06 by Rolando.Caloca
DR - Fix for simulation time from BP not matching material editor expression time
#jira UE-26431
Change 2969413 on 2016/05/06 by Daniel.Wright
Simple forward shading path
* Support for a directional light in the base pass, which can be shadowed either by distance field shadowmaps or a single shadow factor from the Indirect Lighting Cache
* Binding and outputting to GBuffers is disabled when using simple forward shading, along with dependencies of the GBuffers
* Specular, normal maps and the 3rd SH band of skylighting are all hardcoded off. Materials are forced fully rough.
* Enabled with 'r.SimpleForwardShading 1', which can be changed at runtime
* Added r.SupportSimpleForwardShading, which determines if the necessary shaders are compiled
* Removed r.SimpleDynamicLighting, whose functionality (unshadowed directional light in the base pass) is a subset of simple forward shading, and was unused
Change 2969414 on 2016/05/06 by Daniel.Wright
Added cvar 'r.Fog' for scalability
Change 2969415 on 2016/05/06 by Daniel.Wright
Low end scalability setup for Paragon
Change 2969583 on 2016/05/06 by Daniel.Wright
Effectively disabled the WRITES_PRECSHADOWFACTOR_TO_GBUFFER optimization, as all combinations use the GBuffer target
* This fixes bSingleSampleShadowFromStationaryLights which was broken in cl 2863775 when selective GBuffer outputs was enabled
Change 2969597 on 2016/05/06 by Olaf.Piesche
Adding emitter tick times to Cascade viewport overlays
#jira UE-25172
Change 2969599 on 2016/05/06 by Daniel.Wright
Added r.Shadow.ForceSingleSampleShadowingFromStationary for scalability
Change 2969795 on 2016/05/06 by Daniel.Wright
Made r.SimpleForwardShading a scalability cvar
Change 2969796 on 2016/05/06 by Daniel.Wright
Enabled simple forward shading for the lowest shadow quality in Paragon
* Moved Orion.Character.NonLocalHeroPreshadows to be under shadow quality
* Enabling r.Shadow.ForceSingleSampleShadowingFromStationary when shadows are disabled through r.ShadowQuality
Change 2972338 on 2016/05/10 by Martin.Mittring
Added ImageValidator V0.11 to Perforce (for automated screenshot comparison)
Change 2972450 on 2016/05/10 by Martin.Mittring
fixed sorting issues, added column sort
Change 2972564 on 2016/05/10 by Martin.Mittring
fixed PixelCountToFail
Change 2972572 on 2016/05/10 by Martin.Mittring
added color
Change 2972667 on 2016/05/10 by Daniel.Wright
Capsule shadows support an off-center projection - fixes stereo rendering
Indirect lighting cache is updated for primitives with a visible indirect capsule shadow - fixes indirect shadows disappearing when the caster is off-screen in the Static skylight case
Change 2972687 on 2016/05/10 by Martin.Mittring
split data from view
Change 2972713 on 2016/05/10 by Martin.Mittring
background validation
Change 2972742 on 2016/05/10 by Martin.Mittring
do not lock files in folder
Change 2972837 on 2016/05/10 by Daniel.Wright
Comment for tiled reflection culling edge failure case
Change 2972891 on 2016/05/10 by Daniel.Wright
Simple forward shading only supported on PC now
Change 2972927 on 2016/05/10 by Martin.Mittring
fixed comparison, added directory watcher
Change 2972952 on 2016/05/10 by Martin.Mittring
tooltips
Change 2972965 on 2016/05/10 by Martin.Mittring
readme
Change 2972986 on 2016/05/10 by Martin.Mittring
polish
Change 2973015 on 2016/05/10 by Zabir.Hoque
Clamp max cubemap resolutions for reflection capture component.
Change 2973067 on 2016/05/10 by Uriel.Doyon
Removed temporary streaming data from ULevel. Now the data goes directly in FStreamingManagerTexture.
Removed deprecated classes and structures associated with old data.
Uniformized dynamic primitives and static primitives streaming logic.
Static primitive instances are now bound to level component and have visibility information.
MeshTexCoordSize Debug now shows live update when tweaking "StreamingDistanceMultiplier"
Change 2973129 on 2016/05/10 by Martin.Mittring
fixed crash (uninit var)
Change 2973167 on 2016/05/10 by Olaf.Piesche
Fixing mac compiler warnings; removed beam tangent from particle source and target, as it's treated separately anyway.
Change 2973654 on 2016/05/11 by Gil.Gribb
FIxed bad resolve from main merge
Change 2973787 on 2016/05/11 by Simon.Tovey
PR #2080: Added 7 additional blueprint nodes and assoicated functions to Particle System Compoenent (Contributed by alwintom)
#2080
Change 2973794 on 2016/05/11 by Simon.Tovey
GitHub 1646 : Increase Wireframe Linear Color Value for Particles in Cascade Preview viewport
#1646
Change 2973814 on 2016/05/11 by Chris.Bunner
Fixed D3D warning.
Change 2973868 on 2016/05/11 by Martin.Mittring
fixed compiler warning
Change 2974104 on 2016/05/11 by Uriel.Doyon
Optimized TextureStreaming ASync task by improving cache efficency.
Removed ForcedFullyLoad texture sets and merged them with the other entries (to prevent checking in two data structures).
Change 2974163 on 2016/05/11 by Uriel.Doyon
Fixed Editor Build
Change 2974263 on 2016/05/11 by Olaf.Piesche
Fix for particle beam source/target selection
Change 2974313 on 2016/05/11 by Martin.Mittring
nicer icon
Change 2974632 on 2016/05/11 by Martin.Mittring
zoom (mouse wheel) and pan support
Change 2974651 on 2016/05/11 by Martin.Mittring
UE-30565 Blend Radius does not override Priority for blendable post process material array
#test:PC
Change 2974994 on 2016/05/12 by Uriel.Doyon
Fixed uninitialized members in texture streaming when updating dynamic primitives.
#jira UE-30632
Change 2975514 on 2016/05/12 by Olaf.Piesche
Getting mesh particle transform down to pixel shader, making available in TransformVector/TransformPosition nodes
#udn 288158, and requests from several artists
Change 2975970 on 2016/05/12 by Zabir.Hoque
Enable setting high precision normals/tangets as a part of static mesh import.
Change 2976134 on 2016/05/12 by Daniel.Wright
Moved RHI prefix out of command list macros so you can find callers in a Find in Files for RHIBlendState, etc
Change 2976135 on 2016/05/12 by Daniel.Wright
Added material property bAllowNegativeEmissiveColor which is useful when rendering to an offscreen render target
Change 2976139 on 2016/05/12 by Daniel.Wright
Blueprint can now be used to draw to a TextureRenderTarget2D with DrawMaterialToRenderTarget
Canvas can now draw to a TextureRenderTarget2D in a Blueprint with BeginDrawCanvasToRenderTarget / EndDrawCanvasToRenderTarget
Change 2976199 on 2016/05/12 by Brian.Karis
Improved screen space ray cast intersection heuristic.
Change 2976203 on 2016/05/12 by Brian.Karis
Fixed hair NaNs
Change 2976214 on 2016/05/12 by Zabir.Hoque
Fix compiler error on Clang
Change 2976239 on 2016/05/12 by Brian.Karis
Improved hair shadows
Change 2976240 on 2016/05/12 by Brian.Karis
Made recompileshaders specific file work again. Kind of hacky but better than nothing
Change 2976290 on 2016/05/12 by Zabir.Hoque
Few more clang compiler fixes.
#jira UE-30713
Change 2976517 on 2016/05/13 by Zabir.Hoque
Final set of fixes for compile breaks.
Change 2976535 on 2016/05/13 by Zabir.Hoque
Fix mono builds
Change 2977270 on 2016/05/13 by Zabir.Hoque
Incorrectly used 7 as max texcoords. Corrected to #define MAX_TEX_COORDS
#lockdown gil.gribb
Change 2980140 on 2016/05/17 by Gil.Gribb
Merging //UE4/Dev-Main@2980127 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
Change 2980211 on 2016/05/17 by Ben.Marsh
EC: Build DDC in Dev-Rendering every 3 hours.
#lockdown Gil.Gribb
Change 2980876 on 2016/05/17 by Michael.Trepka
Metal shader compile fix
#lockdown gil.gribb
[CL 2981788 by Gil Gribb in Main branch]
2016-05-18 09:31:59 -04:00
RENDERCORE_API bool PlatformSupportsSimpleForwardShading ( EShaderPlatform Platform )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 2981742)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2967522 on 2016/05/05 by Martin.Mittring
fixed UE-30208 Ensure taking high resolution screenshot
renamed cvar from r.SaveUncompressedEXRFrame to r.SaveEXR.CompressionQuality and change meaning
Change 2967541 on 2016/05/05 by Martin.Mittring
added cvar help entry to the editor menu
Change 2967544 on 2016/05/05 by Martin.Mittring
* added ensures to track down UE-22073 [CrashReport] Crash when changing Editor Window Size - FDeferredShadingSceneRenderer::ClearTranslucentVolumeLighting()
* fixed typo
* improved r.DisplayInternals
Change 2967685 on 2016/05/05 by Rolando.Caloca
DR - Fix 2013 compile
#jira UE-30369
Change 2967883 on 2016/05/05 by Olaf.Piesche
Making inherit rotation work for mesh particles
#jira UE-30153
Change 2967948 on 2016/05/05 by Daniel.Wright
MaterialParameterCollections now create default resources (uniform buffers) which are used when no valid FScene is present (eg DrawTile while exporting materials to lightmass)
Change 2967954 on 2016/05/05 by Daniel.Wright
New refraction mode 'Pixel Normal Offset', which uses the difference between the per-pixel normal and the per-vertex normal to compute the refraction offset. This is useful for refraction from large water surfaces without reading outside of screen bounds as much.
Change 2967970 on 2016/05/05 by Olaf.Piesche
Improvement for depth buffer collision; reduce tunneling by sampling midpoint instead of predicted position.
#jira UE-27297
Change 2968125 on 2016/05/05 by Daniel.Wright
Hopeful fix for mac compile error with enum
Change 2968126 on 2016/05/05 by Daniel.Wright
Forward declare to fix compile error
Change 2969070 on 2016/05/06 by Martin.Mittring
fixed Clang Compile error
Change 2969224 on 2016/05/06 by Martin.Mittring
fixed Clang
Change 2969275 on 2016/05/06 by Rolando.Caloca
DR - Fix for simulation time from BP not matching material editor expression time
#jira UE-26431
Change 2969413 on 2016/05/06 by Daniel.Wright
Simple forward shading path
* Support for a directional light in the base pass, which can be shadowed either by distance field shadowmaps or a single shadow factor from the Indirect Lighting Cache
* Binding and outputting to GBuffers is disabled when using simple forward shading, along with dependencies of the GBuffers
* Specular, normal maps and the 3rd SH band of skylighting are all hardcoded off. Materials are forced fully rough.
* Enabled with 'r.SimpleForwardShading 1', which can be changed at runtime
* Added r.SupportSimpleForwardShading, which determines if the necessary shaders are compiled
* Removed r.SimpleDynamicLighting, whose functionality (unshadowed directional light in the base pass) is a subset of simple forward shading, and was unused
Change 2969414 on 2016/05/06 by Daniel.Wright
Added cvar 'r.Fog' for scalability
Change 2969415 on 2016/05/06 by Daniel.Wright
Low end scalability setup for Paragon
Change 2969583 on 2016/05/06 by Daniel.Wright
Effectively disabled the WRITES_PRECSHADOWFACTOR_TO_GBUFFER optimization, as all combinations use the GBuffer target
* This fixes bSingleSampleShadowFromStationaryLights which was broken in cl 2863775 when selective GBuffer outputs was enabled
Change 2969597 on 2016/05/06 by Olaf.Piesche
Adding emitter tick times to Cascade viewport overlays
#jira UE-25172
Change 2969599 on 2016/05/06 by Daniel.Wright
Added r.Shadow.ForceSingleSampleShadowingFromStationary for scalability
Change 2969795 on 2016/05/06 by Daniel.Wright
Made r.SimpleForwardShading a scalability cvar
Change 2969796 on 2016/05/06 by Daniel.Wright
Enabled simple forward shading for the lowest shadow quality in Paragon
* Moved Orion.Character.NonLocalHeroPreshadows to be under shadow quality
* Enabling r.Shadow.ForceSingleSampleShadowingFromStationary when shadows are disabled through r.ShadowQuality
Change 2972338 on 2016/05/10 by Martin.Mittring
Added ImageValidator V0.11 to Perforce (for automated screenshot comparison)
Change 2972450 on 2016/05/10 by Martin.Mittring
fixed sorting issues, added column sort
Change 2972564 on 2016/05/10 by Martin.Mittring
fixed PixelCountToFail
Change 2972572 on 2016/05/10 by Martin.Mittring
added color
Change 2972667 on 2016/05/10 by Daniel.Wright
Capsule shadows support an off-center projection - fixes stereo rendering
Indirect lighting cache is updated for primitives with a visible indirect capsule shadow - fixes indirect shadows disappearing when the caster is off-screen in the Static skylight case
Change 2972687 on 2016/05/10 by Martin.Mittring
split data from view
Change 2972713 on 2016/05/10 by Martin.Mittring
background validation
Change 2972742 on 2016/05/10 by Martin.Mittring
do not lock files in folder
Change 2972837 on 2016/05/10 by Daniel.Wright
Comment for tiled reflection culling edge failure case
Change 2972891 on 2016/05/10 by Daniel.Wright
Simple forward shading only supported on PC now
Change 2972927 on 2016/05/10 by Martin.Mittring
fixed comparison, added directory watcher
Change 2972952 on 2016/05/10 by Martin.Mittring
tooltips
Change 2972965 on 2016/05/10 by Martin.Mittring
readme
Change 2972986 on 2016/05/10 by Martin.Mittring
polish
Change 2973015 on 2016/05/10 by Zabir.Hoque
Clamp max cubemap resolutions for reflection capture component.
Change 2973067 on 2016/05/10 by Uriel.Doyon
Removed temporary streaming data from ULevel. Now the data goes directly in FStreamingManagerTexture.
Removed deprecated classes and structures associated with old data.
Uniformized dynamic primitives and static primitives streaming logic.
Static primitive instances are now bound to level component and have visibility information.
MeshTexCoordSize Debug now shows live update when tweaking "StreamingDistanceMultiplier"
Change 2973129 on 2016/05/10 by Martin.Mittring
fixed crash (uninit var)
Change 2973167 on 2016/05/10 by Olaf.Piesche
Fixing mac compiler warnings; removed beam tangent from particle source and target, as it's treated separately anyway.
Change 2973654 on 2016/05/11 by Gil.Gribb
FIxed bad resolve from main merge
Change 2973787 on 2016/05/11 by Simon.Tovey
PR #2080: Added 7 additional blueprint nodes and assoicated functions to Particle System Compoenent (Contributed by alwintom)
#2080
Change 2973794 on 2016/05/11 by Simon.Tovey
GitHub 1646 : Increase Wireframe Linear Color Value for Particles in Cascade Preview viewport
#1646
Change 2973814 on 2016/05/11 by Chris.Bunner
Fixed D3D warning.
Change 2973868 on 2016/05/11 by Martin.Mittring
fixed compiler warning
Change 2974104 on 2016/05/11 by Uriel.Doyon
Optimized TextureStreaming ASync task by improving cache efficency.
Removed ForcedFullyLoad texture sets and merged them with the other entries (to prevent checking in two data structures).
Change 2974163 on 2016/05/11 by Uriel.Doyon
Fixed Editor Build
Change 2974263 on 2016/05/11 by Olaf.Piesche
Fix for particle beam source/target selection
Change 2974313 on 2016/05/11 by Martin.Mittring
nicer icon
Change 2974632 on 2016/05/11 by Martin.Mittring
zoom (mouse wheel) and pan support
Change 2974651 on 2016/05/11 by Martin.Mittring
UE-30565 Blend Radius does not override Priority for blendable post process material array
#test:PC
Change 2974994 on 2016/05/12 by Uriel.Doyon
Fixed uninitialized members in texture streaming when updating dynamic primitives.
#jira UE-30632
Change 2975514 on 2016/05/12 by Olaf.Piesche
Getting mesh particle transform down to pixel shader, making available in TransformVector/TransformPosition nodes
#udn 288158, and requests from several artists
Change 2975970 on 2016/05/12 by Zabir.Hoque
Enable setting high precision normals/tangets as a part of static mesh import.
Change 2976134 on 2016/05/12 by Daniel.Wright
Moved RHI prefix out of command list macros so you can find callers in a Find in Files for RHIBlendState, etc
Change 2976135 on 2016/05/12 by Daniel.Wright
Added material property bAllowNegativeEmissiveColor which is useful when rendering to an offscreen render target
Change 2976139 on 2016/05/12 by Daniel.Wright
Blueprint can now be used to draw to a TextureRenderTarget2D with DrawMaterialToRenderTarget
Canvas can now draw to a TextureRenderTarget2D in a Blueprint with BeginDrawCanvasToRenderTarget / EndDrawCanvasToRenderTarget
Change 2976199 on 2016/05/12 by Brian.Karis
Improved screen space ray cast intersection heuristic.
Change 2976203 on 2016/05/12 by Brian.Karis
Fixed hair NaNs
Change 2976214 on 2016/05/12 by Zabir.Hoque
Fix compiler error on Clang
Change 2976239 on 2016/05/12 by Brian.Karis
Improved hair shadows
Change 2976240 on 2016/05/12 by Brian.Karis
Made recompileshaders specific file work again. Kind of hacky but better than nothing
Change 2976290 on 2016/05/12 by Zabir.Hoque
Few more clang compiler fixes.
#jira UE-30713
Change 2976517 on 2016/05/13 by Zabir.Hoque
Final set of fixes for compile breaks.
Change 2976535 on 2016/05/13 by Zabir.Hoque
Fix mono builds
Change 2977270 on 2016/05/13 by Zabir.Hoque
Incorrectly used 7 as max texcoords. Corrected to #define MAX_TEX_COORDS
#lockdown gil.gribb
Change 2980140 on 2016/05/17 by Gil.Gribb
Merging //UE4/Dev-Main@2980127 to Dev-Rendering (//UE4/Dev-Rendering)
#lockdown nick.penwarden
Change 2980211 on 2016/05/17 by Ben.Marsh
EC: Build DDC in Dev-Rendering every 3 hours.
#lockdown Gil.Gribb
Change 2980876 on 2016/05/17 by Michael.Trepka
Metal shader compile fix
#lockdown gil.gribb
[CL 2981788 by Gil Gribb in Main branch]
2016-05-18 09:31:59 -04:00
static const auto SupportSimpleForwardShadingCVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.SupportSimpleForwardShading " ) ) ;
// Scalability feature only needed / used on PC
return IsPCPlatform ( Platform ) & & SupportSimpleForwardShadingCVar - > GetValueOnAnyThread ( ) ! = 0 ;
}
RENDERCORE_API bool IsSimpleForwardShadingEnabled ( EShaderPlatform Platform )
{
static const auto CVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.SimpleForwardShading " ) ) ;
return CVar - > GetValueOnAnyThread ( ) ! = 0 & & PlatformSupportsSimpleForwardShading ( Platform ) ;
2014-06-03 15:53:13 -04:00
}
2015-06-25 02:07:29 -04:00
2019-05-02 13:02:07 -04:00
RENDERCORE_API bool AllowPixelDepthOffset ( EShaderPlatform Platform )
{
if ( IsMobilePlatform ( Platform ) )
{
static const auto CVar = IConsoleManager : : Get ( ) . FindTConsoleVariableDataInt ( TEXT ( " r.Mobile.AllowPixelDepthOffset " ) ) ;
return CVar - > GetValueOnAnyThread ( ) ! = 0 ;
}
return true ;
}
2018-09-26 10:08:47 -04:00
RENDERCORE_API int32 GUseForwardShading = 0 ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3461187)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3388286 on 2017/04/11 by Chris.Bunner
Fix mips in texture GnmUAV creation.
Change 3388287 on 2017/04/11 by Chris.Bunner
Improved PS/CS code sharing for TemporalAA.
Change 3388291 on 2017/04/11 by Chris.Bunner
HLODs now correctly hide their children in shadow maps.
Propagate bCastFarShadow flag on HLOD generation.
#jira UE-42254
Change 3388448 on 2017/04/11 by Brian.Karis
Better handle divide by zero
Change 3388449 on 2017/04/11 by Brian.Karis
Optimizations to shading model math.
PR #3340: Bug fixes related to shader TODOs (Contributed by vgfx)
Change 3388455 on 2017/04/11 by Uriel.Doyon
Changed Remove for RemoveSwap when clearing dynamic component references
Change 3388612 on 2017/04/11 by Simon.Tourangeau
Support shaders in projects and in plugins
When searching for a shader it will
- First look in Engine/Shaders as usual
- Then in project's Shader folder
- Then in all enabled plugin Shader folders
Project or plugin must be loaded in PostConfigInit phase
Tested in PIE, engine (cooked, packaged)
Change 3388819 on 2017/04/11 by Arne.Schober
DR - Faster MorpthTarget implementation. Changed the previous Gather aproach to a scatter based one. Reaching about 110GB/s on PS4 which is up to 4x faster than the previous implementation. On PC DX11 the impact is lower due to unecessary UAV barriers but still 2x faster on AMD and up to 6x faster on Nvidia Hardware.
#RB Lina.Halper, Rolando.Caloca
Change 3388862 on 2017/04/11 by Guillaume.Abadie
Allows Motion Blur and TAA in scene capture 2d.
Change 3388953 on 2017/04/11 by Uriel.Doyon
Fixed issue where lights from hidden levels where affecting the lighting build, by checking if the light is registered before adding it.
#UE-43220
Change 3389138 on 2017/04/11 by Arne.Schober
DR - Fix crash when opening a Level without Contentbrowser open.
#RB Matt.Kuhlenschmidt
Change 3389400 on 2017/04/11 by Uriel.Doyon
- Renamed FMaterialResource::IsSeparateTranslucencyEnabled() to FMaterialResource::IsTranslucencyAfterDOFEnabled()
- Removed different logic to determine if translucency after DOF was enabled, and centralized it into a single function: FSceneViewFamily::AllowTranslucencyAfterDOF()
- FSceneRenderTargets::FinishRenderingSeparateTranslucency() now only resolves a single view, allowing better Begin/Finish scopes.
- Renamed FSceneRenderTargets::SeparateTranslucencyDepthRT into FSceneRenderTargets::DownsampledTranslucencyDepthRT since this one is only allocated when rendering in downsampled mode.
- Standard translucency is now rendered in the same resolution than translucency after DOF. (downsampled or full resolution)
- Removed RenderTranslucencyParallel and merged it's logic into RenderTranslucency. Renamed DrawAllTranslucencyPasses to RenderViewTranslucency and added a parallel version RenderViewTranslucencyParallel.
- Moved all debug draw logic (VisualizeLPV, ViewMeshElements and SimpleElementCollector) to a common place.
- New option "r.AllowDownsampledStandardTranslucency" to control the downsampling of standard translucency. Affect blend module materials
#jira UE-39505
Change 3389860 on 2017/04/12 by Richard.Wallis
UE-41407 Cable actor does not render correctly in viewport on Mac.
Build the mesh at creation time - call into exisiting mesh create function.
Change 3390933 on 2017/04/12 by Arne.Schober
DR - potential fix for UE-43125 where the this pointer might get invalidated in the middle of the function
#RB Marcus.Wassmer
Change 3391010 on 2017/04/12 by Ben.Marsh
Compile UE4Game non-unity for Mac as part of nightly builds in //UE4/Dev-Rendering.
Change 3391412 on 2017/04/12 by Uriel.Doyon
Mesh Decals are now sorted according to the component TranslucencySortPriority.
#jira UE-43053
Change 3392117 on 2017/04/13 by Guillaume.Abadie
Integrates Raven's experimental PCSS for cascaded shadow map hidden behind a CVar.
Change 3392179 on 2017/04/13 by Guillaume.Abadie
Attempts to fix linux compilation by removing mistakenly submitted dead code.
Change 3392231 on 2017/04/13 by Guillaume.Abadie
Fixes a wrong enum value real quick in FRenderingObjectVersion I introduced after main integration... Oups...
Change 3393879 on 2017/04/14 by Guillaume.Abadie
Attempts to fix linux compilation warning.
Change 3393881 on 2017/04/14 by Guillaume.Abadie
Back out changelist 3393879
Change 3393882 on 2017/04/14 by Guillaume.Abadie
Attempts #2 to fix linux compilation error.
Change 3394100 on 2017/04/14 by Chris.Bunner
Corrected material shared sampler usage with mip-biasing.
Change 3394174 on 2017/04/14 by Rolando.Caloca
DR - Change ensure to warning
Change 3394221 on 2017/04/14 by Marcus.Wassmer
Fix poseable mesh bounds calculation.
Change 3396238 on 2017/04/17 by David.Hill
Fix Bloom with LensFlare
Duplicating fix - will also fix directly in 4.16
#jira 44050
Change 3397055 on 2017/04/17 by Joe.Graf
Fixed Windows specific assumptions in Slate File Dialog Window's file filtering that lead to crashes
#CodeReview: matt.kuhlenschmidt
#rb: n/a
Change 3397921 on 2017/04/18 by Joe.Graf
Rewrote SlateFileDlgWindow's file filtering to allow for extensionless file selection and to remove the O(n^2) file filtering
#CodeReview: arciel.rekman, matt.kuhlenschmidt
#rb: n/a
Change 3398406 on 2017/04/18 by Rolando.Caloca
DR - Fix shaders in plugins on Mac
Change 3399546 on 2017/04/19 by Benjamin.Hyder
Updating content for test levels (HDR, Bloom_FFT, DistanceFields_IndirectShadows)
Change 3399725 on 2017/04/19 by Guillaume.Abadie
Avoids compiling PCSS shaders for SM4.
Change 3400295 on 2017/04/19 by Michael.Trepka
Fixed metal shader compile errors in MorphTargets.usf
Change 3400457 on 2017/04/19 by Michael.Trepka
Merged Rolando's shader fixes
Change 3400473 on 2017/04/19 by Arne.Schober
DR - provide Aftermath Reason when init failed.
#RB none
Change 3400699 on 2017/04/19 by Arne.Schober
DR - Fixed Text macro
#RB none
Change 3402280 on 2017/04/20 by Simon.Tovey
Minor cascade fix
#tests no crash
#jira UE-41560
Change 3402517 on 2017/04/20 by Arne.Schober
DR - Fix static analysis warning
#RB none
Change 3403897 on 2017/04/21 by Arne.Schober
DR - [UE-43898] - Someone missed a shaderversion bump which poisoned the DCC
#RB None
#jira UE-43898
Change 3404591 on 2017/04/21 by Olaf.Piesche
#jira UE-41979
Should never be crashing there, unless the mesh is changed after Init of the effect instance; this change safeguards against the number of mesh sections (and hence materials) changing after creation of the dynamic data to avoid the crash.
Change 3407451 on 2017/04/25 by Daniel.Wright
Fixed Indirect Lighting Cache updates caused by capsule indirect shadows forcing point samples, breaking primitives using ILCQ_Volume
Change 3407452 on 2017/04/25 by Daniel.Wright
Added r.AOJitterConeDirections, although disabled by default because it requires the temporal filter to be much stronger
Change 3408397 on 2017/04/25 by Daniel.Wright
ViewFamily.bRealtimeUpdate is set to false if Slate is throttling (like when toggling show flags). Volumetric fog discards the temporal history when not realtime, so you can see changes immediately.
Change 3408428 on 2017/04/25 by Daniel.Wright
Changed 'r.AOMaxObjectsPerCullTile' default back to 512 as 256 causes artifacts with RTDF shadows
Change 3409764 on 2017/04/26 by Daniel.Wright
Force dumping shader debug info for Global shaders when r.ShaderDevelopmentMode is enabled. Most of the shaders you want to look at in a GPU capture are global shaders, and global shaders create few debug files. 'recompileshaders global' time 35s -> 38s for SM5.
Change 3411659 on 2017/04/27 by Daniel.Wright
[Copy] Set Xbox One engine default screen percentage to 83.33 (1600x900), as ESRAM choices are dependent on this
Change 3411660 on 2017/04/27 by Daniel.Wright
[Copy] Global distance field composite shader has a version for each flattened axis, which improves efficiency when updating a slab which is what camera movement typically causes
Change 3411667 on 2017/04/27 by Daniel.Wright
[Copy] Discard distance field AO history buffer if it doesn't match the new buffer size. This prevents reading uinitialized data after a scene render target resize.
Change 3411668 on 2017/04/27 by Daniel.Wright
[Copy] Better indirect capsule shadow draw event info
Change 3411669 on 2017/04/27 by Daniel.Wright
[Copy] Pass down FeatureLevel to AddSubjectPrimitive and GatherShadowsForPrimitiveInner instead of calling the scene's virtual function. Showed up prominently in a sampling profile.
Change 3411755 on 2017/04/27 by Daniel.Wright
[Copy] Occlusion queries are now always done before the base pass if a nearly full prepass is being used(DDM_AllOccluders or DDM_AllOpaque)
* Removed r.OcclusionQueryLocation
Change 3411827 on 2017/04/27 by Daniel.Wright
[Copy] Much cheaper implementation of IsForwardShadingEnabled which showed up prominently in sampling profiles - inlined function and no more unnecessary thread safety overhead
Change 3411829 on 2017/04/27 by Daniel.Wright
Added an ensure to console manager when doing FindTConsoleVariableData* on a FAutoConsoleVariableRef
Change 3411837 on 2017/04/27 by Daniel.Wright
[Copy] Worked around slow memcpy's being used to sort FSortedLightSceneInfo
Change 3411838 on 2017/04/27 by Daniel.Wright
[Copy] Skip tracking MaterialRenderProxyMap on cooked platforms
Change 3411843 on 2017/04/27 by Daniel.Wright
[Copy] Fixed r.ParallelShadows on PS4 and enabled by default engine-wide (saves 5ms RT with CSM)
* Gnm was not tracking DepthClearValue when a depth target was set but not cleared
* Gnm has a bug where TargetsNeedingEliminateFastClear does not persist across commandlist breaks. Moved FinishRenderingGBuffer before RenderShadowDepthMaps to workaround (accidentally not in this changelist)
* Shadow depth rendering was not using BindClearMRTValues to populate GNM parallel commandlist TargetsNeedingEliminateFastClear values
Change 3411873 on 2017/04/27 by Daniel.Wright
[Copy] Deferred uniform expression caching. Setting multiple parameters on a material only causes its uniform expressions to be recached once.
* 280 calls to CacheUniformExpressions -> 120 during Fortnite combat (6.5ms -> 3.4ms)
Change 3411891 on 2017/04/27 by Daniel.Wright
[Copy] GatherShadowPrimitives optimizations
* Total GatherShadowPrimivies went from 2.3ms -> 1.3ms on PS4 with these changes in GPUPerfTest (duplicated 3x)
* Much flatter primitive octree (16 -> 256 max primitives)
* Primitives are culled against the shadow frustum before FPrimitiveSceneInfo or FPrimitiveSceneProxy are dereferenced in FilterPrimitiveForShadows
* FilterPrimitiveForShadows work is done in a ParallelFor. Primitive octree nodes are processed in different jobs.
* StaticMeshWholeSceneShadowBatchVisibility now only stores entries for meshes with bRequiresPerElementVisibility (landscape). Previously it was allocating and zeroing 500Kb 3x per frame (main view + 2 cascades) which cost ~.8ms on PS4.
Change 3412192 on 2017/04/27 by Michael.Trepka
Fixed Clang compile errors in FortniteGame, partial copy of CL 3313426
Change 3412547 on 2017/04/27 by Daniel.Wright
Fixed leak of FShadowMapAllocation and FLightMapAllocation's found by licensee
Change 3414239 on 2017/04/28 by Arne.Schober
DR - UE-44500 - Removed use of Structured Buffer from MorphTargets due to HLSLCC not supporting it.
#RB none
#jira UE-44500
Change 3414754 on 2017/04/28 by Daniel.Wright
Added VolumetricFogEmissive to ExponentialHeightFogComponent
* Volumetric fog does not yet support precomputed lighting, so this is the only way to get an ambient lighting term
Change 3416859 on 2017/05/01 by Arne.Schober
DR - Remove FeatureLevel from the Clear Functions to reduce area of error
#RB Rolando.Caloca
Change 3420750 on 2017/05/03 by Arne.Schober
DR - [UE-44497] - Fix several PS4 validation layer issues
#RB Marcus.Wassmer
Change 3422869 on 2017/05/04 by Benjamin.Hyder
Fix compile error from merge.
Change 3423938 on 2017/05/04 by Marc.Olano
[UE-44453] Fix bloom problems by moving saturate after vector math
Change 3424494 on 2017/05/04 by Olaf.Piesche
#jira UE-44589
When using FindTCosoleVariableData, the CVar can not be an FAutoConsoleVariable.
#tests as described in jira ticket
Change 3424754 on 2017/05/04 by Uriel.Doyon
Fixed call to get texture compressor module outside the main thread.
#jira UE-42168
Change 3425447 on 2017/05/05 by Uriel.Doyon
#buildfix
Change 3427042 on 2017/05/05 by Arne.Schober
DR - Fix one of my typos
#RB none
Change 3428119 on 2017/05/08 by Marcus.Wassmer
Fix UE-44733
static analysis warning.
Change 3428222 on 2017/05/08 by Uriel.Doyon
Fixed bad condition in translucency rendering
#jira UE-44452
Change 3429794 on 2017/05/08 by Uriel.Doyon
Fixed issues with lightshafts and low res translucency.
#jira UE-44452
Change 3430921 on 2017/05/09 by Rolando.Caloca
DR - Get additional function pointers for D3DReflect, Compile and Disassemble instructions from the same DLL when compiling D3D11 shaders.
- Also fixes using the correct fxc.exe path to match the DLL we distribute.
Change 3431156 on 2017/05/09 by Rolando.Caloca
DR - Remove unused code
Change 3431396 on 2017/05/09 by David.Hill
Copy of changes made directly in 4.16 ( CL 341037 )
to be submitted to dev-rendering
#jira UE-44641
Change 3431400 on 2017/05/09 by Rolando.Caloca
DR - Fix typo
Change 3431527 on 2017/05/09 by David.Hill
#rb: none
Oops.
comment out r.ShaderDevelopmentMode =1
Change 3431590 on 2017/05/09 by Daniel.Wright
Removed early return landmine in USceneCaptureComponent2D::Serialize
Change 3431591 on 2017/05/09 by Daniel.Wright
Disallow map building while in PIE, or PIE while buildling lighting
Change 3431594 on 2017/05/09 by Daniel.Wright
Added RenderTargetFormat to UTextureRenderTarget2D, with choices of 8 bit, 16fp, 32fp and 1, 2 or 4 channels.
Change 3431667 on 2017/05/09 by Daniel.Wright
Volumetric fog now supersamples lighting when the history is not available, reducing noise on areas that just came on-screen or after a camera cut.
* The number of samples is controlled by r.VolumetricFog.HistoryMissSupersampleCount, defaults to 4, cinematic scalability uses 16
* Under fast camera movement, volumetric fog cost went from 1.79ms -> 1.97ms with 4 samples, on a 970GTX
Change 3432366 on 2017/05/10 by Richard.Wallis
Fix for MetalRHI Asserts When Using "Profile GPU" With RHI-Thread/Parallel-Execution. Don't insert events when not in RHIThread or the actual single-threaded-render thread.
#jira UE-36006
Change 3432367 on 2017/05/10 by Richard.Wallis
Fix for Metal ReStartRenderPass assert with profiling. macOS metal asserts when using "profileGPU" even with -norhithread argument set.
Added no action to the allowed render pass restart store actions for the depth buffer avoiding the assert. Interested to know the details if this is not a valid assumption to make - throwing away the depth buffer after a render pass I think would be a common case.
#jira UE-44322
Change 3432409 on 2017/05/10 by Richard.Wallis
Merged across CL 3415890 from Release-4.16 fix for (jira UE-43895)
Fix for deferred store actions getting cleared when we don't have a valid render target.
Change 3432833 on 2017/05/10 by Daniel.Wright
Fixed Ocean compile error
Change 3432874 on 2017/05/10 by Marc.Olano
Improved captions for Noise and VectorNoise material nodes
Change 3432947 on 2017/05/10 by Richard.Wallis
Fix for shared Material Native Shader Libraries Don't Function With Iterative Cooking. Keep latest versions of shader byte code in native shared material packaged build in an intermediate directory than can be reused on a later iterative cook.
- Doesn't handle deletion of the intermediate directory contents. Assumed to be a higher level requirement on non iterative cook flag.
#jira UE-44657
Change 3433484 on 2017/05/10 by Arne.Schober
DR - UE-44393 - Move ShaderPlatform into TShaderMap for extra debuginformation when it fails to find a proper shader. Also log when Gobalshaders are verified and recompiled.
#jira UE-44393
#RB Daniel.Wright
Change 3433515 on 2017/05/10 by Arne.Schober
DR - Fix a bug where recompileshaders changed while compiling causes a crash where the chached local vertex factories are mutated while been used.
#RB Daniel.Wright
Change 3433606 on 2017/05/10 by Daniel.Wright
Fixed static shadowing of volumetric fog and translucency causing shadowing past the lightmass importance volume.
Change 3433619 on 2017/05/10 by Daniel.Wright
Skip recapturing reflection captures when PropagateLightingScenarioChange is being called for a level unload. This leaves stale results in reflection captures around when hiding a level in the editor, but avoids the double recapture that happens when swapping lighting scenarios in game, and the unnecessary reflection capture update when exiting PIE.
Change 3433795 on 2017/05/10 by Arne.Schober
DR - add cmdline to select a GPU vendor when multiple GPUs from differnt Vendors are installed into the same Machine
#RB marcus.Wassmer
Change 3433941 on 2017/05/10 by Daniel.Wright
Cone vs tile bounding sphere intersection tests for Light Grid culling of spotlights, which provides much tighter culling than just View space tile AABB vs light bounding sphere.
* Forward shading BasePass 3.7ms -> 2.4ms in a scene with 24 spotlights on 970GTX
* Volumetric fog 2.87ms -> 2.09ms in the same scene
Change 3435139 on 2017/05/11 by Daniel.Wright
Restored GTextureRenderTarget2DMaxSizeX which is used by Ocean
Change 3435297 on 2017/05/11 by Arne.Schober
DR - Remove manual AlignOf and use C++11 keyword instead
#RB Steve.Robb
Change 3435367 on 2017/05/11 by Daniel.Wright
Circle vertex buffer for slightly tighter voxelization of volumetric fog shadowed lights
* 1.5ms -> 1.38ms on 970 GTX with 24 spotlights
Change 3435522 on 2017/05/11 by Brian.Karis
Dither opacity mask now stacks properly for non parallel polys. Dither is randomized by triangle normal.
Change 3436063 on 2017/05/11 by Daniel.Wright
Disabled CLB_AggressiveBatching for PC d3d12 as it causes flickering artifacts in lighting
Change 3436269 on 2017/05/11 by Uriel.Doyon
Fixed UVChannel data possibly not up-to-date depending on user manips.
Change 3436611 on 2017/05/12 by Simon.Tovey
Improved name and tooltip for static mesh property controlling generation of alias tables for uniform sampling.
Change 3436676 on 2017/05/12 by Simon.Tovey
Fix for fixed bounds being "invalid" unless set via the toolbar option.
Change 3436700 on 2017/05/12 by Simon.Tovey
Crash fix.
Issue found in https://udn.unrealengine.com/questions/355944/crash-in-fdynamicspriteemitterdatagetdynamicmeshel.html
Particle proxies would have stale material resource pointers if the material is changed while the system was invisible.
If the old material is freed during this time, the next time the system renders it will crash.
Change 3437367 on 2017/05/12 by Brian.Karis
Fixed bug with small UV charts not packing.
Change 3437860 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI alignment is 4 for int64
#RB none
Change 3437972 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI function calls cannot take alingned structures. In all of the cases the copy was completely unnecessary.
#RB none
Change 3437975 on 2017/05/12 by Chris.Bunner
Added calculation for MaterialParamsEx to MeshDecals.usf.
#jira UE-43052
Change 3438109 on 2017/05/12 by Rolando.Caloca
DR - Support for -nomcpp on SCW
Change 3438889 on 2017/05/15 by Chris.Bunner
Nullptr check in a few material uniform expressions.
Change 3439351 on 2017/05/15 by Chris.Bunner
Added tooltip to Power material expression.
Change 3439763 on 2017/05/15 by Daniel.Wright
Apply passed in DistanceBiasSqr to line lights - allows volumetric fog to reduce aliasing on line lights
Change 3439764 on 2017/05/15 by Daniel.Wright
Fixed order of operations with bTreatMaxDepthUnshadowed - manifested as unfiltered static shadow depth lookups
Change 3440722 on 2017/05/16 by Guillaume.Abadie
Exposes Scene capture's FOV to blueprints
Change 3441680 on 2017/05/16 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3441884 on 2017/05/16 by Uriel.Doyon
Fixed StreamingDistanceMultiplier not being applied to the texture streaming data.
Change 3442800 on 2017/05/17 by Gil.Gribb
Fixed botched merge.
Change 3442896 on 2017/05/17 by Gil.Gribb
UE4 - Allowed the possibility of running the RHI "thread" on task threads instead and cleaned up and unified the conditionals involved. By default we still have a dedicated RHI thread because it tested slightly faster.
Change 3443951 on 2017/05/17 by Richard.Wallis
Added Apple override allocator macro - each command encoder type needs it's own allocator queue.
Change 3444787 on 2017/05/17 by Daniel.Wright
Fixed DBuffer decal default normal (used when DBuffer decals enabled, but not decals rendered) not reconstructing zero properly, adding -.008 to WorldNormal which then caused artifacts with forward lighting specular on materials with roughness near 0.
Change 3444882 on 2017/05/17 by Daniel.Wright
Added comment to FClearValueBinding::DefaultNormal8Bit to make the dependency on shader decode clear
Change 3444883 on 2017/05/17 by Brian.Karis
Improved contact shadows
Change 3445048 on 2017/05/17 by Daniel.Wright
Fixed particle lights in forward shading, they were not setting the lighting channel mask properly
Change 3445107 on 2017/05/17 by Michael.Trepka
Changed the order of operations in FMetalStateCache::SetRenderState to work around an issue with some Intel drivers where they would not recalculate the raster state in some edge cases.
#jira UE-43725
Change 3445212 on 2017/05/17 by Uriel.Doyon
Added a -CSV option to ListTextures command
Change 3445947 on 2017/05/18 by Richard.Wallis
Clone of Release-4.16 Stream CL 3437181 and CL 3442450 - fix(s) for black rendering on macOS El Cap with Nvidia GPU. Move sampling of EyeAdaption texture to pixel shader for Mac Metal using shader language version <= 1 only.
Change 3446545 on 2017/05/18 by Chris.Bunner
Removed hardcoded (and unused) MRT write from Decal shaders.
#jira UE-45095
Change 3446568 on 2017/05/18 by Marc.Olano
Sobol and image-based importance sampling C++ functions and blueprint nodes
Change 3446988 on 2017/05/18 by Marc.Olano
Fix build error: missing include
Change 3446990 on 2017/05/18 by Marc.Olano
Cell-indexed Sobol sampling for shaders (in MonteCarlo.usf) and materials (Sobol and TemporalSobol nodes)
Change 3447142 on 2017/05/18 by Rolando.Caloca
DR - RWLock instead of mutex for PSO cache
Change 3447144 on 2017/05/18 by Uriel.Doyon
Moved shading model code to SetGBufferFromShadingModel(). This allows the code to be reused in other shader files.
Change 3447794 on 2017/05/18 by Brian.Karis
Virtual texturing foundation code
Change 3448944 on 2017/05/19 by Arciel.Rekman
Fix non-unity Linux (and Mac, etc) builds.
- Mac fix is tentative, did not try.
Change 3449183 on 2017/05/19 by Marcus.Wassmer
Duplicate fix for reflection captures to happen after sequencer updates.
Change 3449196 on 2017/05/19 by Uriel.Doyon
Handling RCM_MinMax when reading FloatRGBA textures.
This fixes pixel inspector always reading 1 for scene color values greater than one.
Change 3451652 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45245
Change 3451660 on 2017/05/22 by Chris.Bunner
Additional compile fix.
#jira UE-45245
Change 3451897 on 2017/05/22 by Daniel.Wright
Moved RTDF shadow project back after the base pass, since it samples the GBuffer for subsurface shadowing. Removed r.DFShadowAsyncCompute which was relying on the previous ordering.
Change 3452055 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
#jira UE-45265
Change 3452089 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452108 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452179 on 2017/05/22 by Brian.Karis
Exposed dimensions. Fixed static analysis.
Change 3452734 on 2017/05/22 by Daniel.Wright
When post processing is disabled, TPT_TranslucencyAfterDOF translucency gets forced into the standard translucency pass.
Change 3452770 on 2017/05/22 by Daniel.Wright
Static light source shapes drawn into reflection captures handle SourceLength via scaled sphere
Change 3452861 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
Change 3452952 on 2017/05/22 by Brian.Karis
Small VT fixes
Change 3453647 on 2017/05/23 by Richard.Wallis
Fix for tessellation shaders on Mac (Metal v1.2) failing to compile.
#jira UE-45227
Change 3454844 on 2017/05/23 by Uriel.Doyon
Fixed extra X16 on some point lights
#jira UE-45250
Change 3454934 on 2017/05/23 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3457131 on 2017/05/24 by Arne.Schober
DR - [UE-45317] - Fix Depthbuffer not available for resolve in Forward mode
#jira UE-45317
#RB Chris.Bunner
Change 3457141 on 2017/05/24 by Marc.Olano
Sobol bug fixes
Change 3457953 on 2017/05/24 by Brian.Karis
Fix static analysis
#jira UE-45315
#jira UE-45314
#jira UE-45313
Change 3459064 on 2017/05/25 by Chris.Bunner
Fix for out of bounds material translation crash.
#jira UE-45406
Change 3459700 on 2017/05/25 by Brian.Karis
Revert using sprite index buffer because the vert order is different.
Change 3459847 on 2017/05/25 by Chris.Bunner
Fixing ensure in RenderTestMap.
[CL 3461201 by Chris Bunner in Main branch]
2017-05-26 08:22:50 -04:00
static FAutoConsoleVariableRef CVarForwardShading (
TEXT ( " r.ForwardShading " ) ,
2018-09-26 10:08:47 -04:00
GUseForwardShading ,
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3461187)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3388286 on 2017/04/11 by Chris.Bunner
Fix mips in texture GnmUAV creation.
Change 3388287 on 2017/04/11 by Chris.Bunner
Improved PS/CS code sharing for TemporalAA.
Change 3388291 on 2017/04/11 by Chris.Bunner
HLODs now correctly hide their children in shadow maps.
Propagate bCastFarShadow flag on HLOD generation.
#jira UE-42254
Change 3388448 on 2017/04/11 by Brian.Karis
Better handle divide by zero
Change 3388449 on 2017/04/11 by Brian.Karis
Optimizations to shading model math.
PR #3340: Bug fixes related to shader TODOs (Contributed by vgfx)
Change 3388455 on 2017/04/11 by Uriel.Doyon
Changed Remove for RemoveSwap when clearing dynamic component references
Change 3388612 on 2017/04/11 by Simon.Tourangeau
Support shaders in projects and in plugins
When searching for a shader it will
- First look in Engine/Shaders as usual
- Then in project's Shader folder
- Then in all enabled plugin Shader folders
Project or plugin must be loaded in PostConfigInit phase
Tested in PIE, engine (cooked, packaged)
Change 3388819 on 2017/04/11 by Arne.Schober
DR - Faster MorpthTarget implementation. Changed the previous Gather aproach to a scatter based one. Reaching about 110GB/s on PS4 which is up to 4x faster than the previous implementation. On PC DX11 the impact is lower due to unecessary UAV barriers but still 2x faster on AMD and up to 6x faster on Nvidia Hardware.
#RB Lina.Halper, Rolando.Caloca
Change 3388862 on 2017/04/11 by Guillaume.Abadie
Allows Motion Blur and TAA in scene capture 2d.
Change 3388953 on 2017/04/11 by Uriel.Doyon
Fixed issue where lights from hidden levels where affecting the lighting build, by checking if the light is registered before adding it.
#UE-43220
Change 3389138 on 2017/04/11 by Arne.Schober
DR - Fix crash when opening a Level without Contentbrowser open.
#RB Matt.Kuhlenschmidt
Change 3389400 on 2017/04/11 by Uriel.Doyon
- Renamed FMaterialResource::IsSeparateTranslucencyEnabled() to FMaterialResource::IsTranslucencyAfterDOFEnabled()
- Removed different logic to determine if translucency after DOF was enabled, and centralized it into a single function: FSceneViewFamily::AllowTranslucencyAfterDOF()
- FSceneRenderTargets::FinishRenderingSeparateTranslucency() now only resolves a single view, allowing better Begin/Finish scopes.
- Renamed FSceneRenderTargets::SeparateTranslucencyDepthRT into FSceneRenderTargets::DownsampledTranslucencyDepthRT since this one is only allocated when rendering in downsampled mode.
- Standard translucency is now rendered in the same resolution than translucency after DOF. (downsampled or full resolution)
- Removed RenderTranslucencyParallel and merged it's logic into RenderTranslucency. Renamed DrawAllTranslucencyPasses to RenderViewTranslucency and added a parallel version RenderViewTranslucencyParallel.
- Moved all debug draw logic (VisualizeLPV, ViewMeshElements and SimpleElementCollector) to a common place.
- New option "r.AllowDownsampledStandardTranslucency" to control the downsampling of standard translucency. Affect blend module materials
#jira UE-39505
Change 3389860 on 2017/04/12 by Richard.Wallis
UE-41407 Cable actor does not render correctly in viewport on Mac.
Build the mesh at creation time - call into exisiting mesh create function.
Change 3390933 on 2017/04/12 by Arne.Schober
DR - potential fix for UE-43125 where the this pointer might get invalidated in the middle of the function
#RB Marcus.Wassmer
Change 3391010 on 2017/04/12 by Ben.Marsh
Compile UE4Game non-unity for Mac as part of nightly builds in //UE4/Dev-Rendering.
Change 3391412 on 2017/04/12 by Uriel.Doyon
Mesh Decals are now sorted according to the component TranslucencySortPriority.
#jira UE-43053
Change 3392117 on 2017/04/13 by Guillaume.Abadie
Integrates Raven's experimental PCSS for cascaded shadow map hidden behind a CVar.
Change 3392179 on 2017/04/13 by Guillaume.Abadie
Attempts to fix linux compilation by removing mistakenly submitted dead code.
Change 3392231 on 2017/04/13 by Guillaume.Abadie
Fixes a wrong enum value real quick in FRenderingObjectVersion I introduced after main integration... Oups...
Change 3393879 on 2017/04/14 by Guillaume.Abadie
Attempts to fix linux compilation warning.
Change 3393881 on 2017/04/14 by Guillaume.Abadie
Back out changelist 3393879
Change 3393882 on 2017/04/14 by Guillaume.Abadie
Attempts #2 to fix linux compilation error.
Change 3394100 on 2017/04/14 by Chris.Bunner
Corrected material shared sampler usage with mip-biasing.
Change 3394174 on 2017/04/14 by Rolando.Caloca
DR - Change ensure to warning
Change 3394221 on 2017/04/14 by Marcus.Wassmer
Fix poseable mesh bounds calculation.
Change 3396238 on 2017/04/17 by David.Hill
Fix Bloom with LensFlare
Duplicating fix - will also fix directly in 4.16
#jira 44050
Change 3397055 on 2017/04/17 by Joe.Graf
Fixed Windows specific assumptions in Slate File Dialog Window's file filtering that lead to crashes
#CodeReview: matt.kuhlenschmidt
#rb: n/a
Change 3397921 on 2017/04/18 by Joe.Graf
Rewrote SlateFileDlgWindow's file filtering to allow for extensionless file selection and to remove the O(n^2) file filtering
#CodeReview: arciel.rekman, matt.kuhlenschmidt
#rb: n/a
Change 3398406 on 2017/04/18 by Rolando.Caloca
DR - Fix shaders in plugins on Mac
Change 3399546 on 2017/04/19 by Benjamin.Hyder
Updating content for test levels (HDR, Bloom_FFT, DistanceFields_IndirectShadows)
Change 3399725 on 2017/04/19 by Guillaume.Abadie
Avoids compiling PCSS shaders for SM4.
Change 3400295 on 2017/04/19 by Michael.Trepka
Fixed metal shader compile errors in MorphTargets.usf
Change 3400457 on 2017/04/19 by Michael.Trepka
Merged Rolando's shader fixes
Change 3400473 on 2017/04/19 by Arne.Schober
DR - provide Aftermath Reason when init failed.
#RB none
Change 3400699 on 2017/04/19 by Arne.Schober
DR - Fixed Text macro
#RB none
Change 3402280 on 2017/04/20 by Simon.Tovey
Minor cascade fix
#tests no crash
#jira UE-41560
Change 3402517 on 2017/04/20 by Arne.Schober
DR - Fix static analysis warning
#RB none
Change 3403897 on 2017/04/21 by Arne.Schober
DR - [UE-43898] - Someone missed a shaderversion bump which poisoned the DCC
#RB None
#jira UE-43898
Change 3404591 on 2017/04/21 by Olaf.Piesche
#jira UE-41979
Should never be crashing there, unless the mesh is changed after Init of the effect instance; this change safeguards against the number of mesh sections (and hence materials) changing after creation of the dynamic data to avoid the crash.
Change 3407451 on 2017/04/25 by Daniel.Wright
Fixed Indirect Lighting Cache updates caused by capsule indirect shadows forcing point samples, breaking primitives using ILCQ_Volume
Change 3407452 on 2017/04/25 by Daniel.Wright
Added r.AOJitterConeDirections, although disabled by default because it requires the temporal filter to be much stronger
Change 3408397 on 2017/04/25 by Daniel.Wright
ViewFamily.bRealtimeUpdate is set to false if Slate is throttling (like when toggling show flags). Volumetric fog discards the temporal history when not realtime, so you can see changes immediately.
Change 3408428 on 2017/04/25 by Daniel.Wright
Changed 'r.AOMaxObjectsPerCullTile' default back to 512 as 256 causes artifacts with RTDF shadows
Change 3409764 on 2017/04/26 by Daniel.Wright
Force dumping shader debug info for Global shaders when r.ShaderDevelopmentMode is enabled. Most of the shaders you want to look at in a GPU capture are global shaders, and global shaders create few debug files. 'recompileshaders global' time 35s -> 38s for SM5.
Change 3411659 on 2017/04/27 by Daniel.Wright
[Copy] Set Xbox One engine default screen percentage to 83.33 (1600x900), as ESRAM choices are dependent on this
Change 3411660 on 2017/04/27 by Daniel.Wright
[Copy] Global distance field composite shader has a version for each flattened axis, which improves efficiency when updating a slab which is what camera movement typically causes
Change 3411667 on 2017/04/27 by Daniel.Wright
[Copy] Discard distance field AO history buffer if it doesn't match the new buffer size. This prevents reading uinitialized data after a scene render target resize.
Change 3411668 on 2017/04/27 by Daniel.Wright
[Copy] Better indirect capsule shadow draw event info
Change 3411669 on 2017/04/27 by Daniel.Wright
[Copy] Pass down FeatureLevel to AddSubjectPrimitive and GatherShadowsForPrimitiveInner instead of calling the scene's virtual function. Showed up prominently in a sampling profile.
Change 3411755 on 2017/04/27 by Daniel.Wright
[Copy] Occlusion queries are now always done before the base pass if a nearly full prepass is being used(DDM_AllOccluders or DDM_AllOpaque)
* Removed r.OcclusionQueryLocation
Change 3411827 on 2017/04/27 by Daniel.Wright
[Copy] Much cheaper implementation of IsForwardShadingEnabled which showed up prominently in sampling profiles - inlined function and no more unnecessary thread safety overhead
Change 3411829 on 2017/04/27 by Daniel.Wright
Added an ensure to console manager when doing FindTConsoleVariableData* on a FAutoConsoleVariableRef
Change 3411837 on 2017/04/27 by Daniel.Wright
[Copy] Worked around slow memcpy's being used to sort FSortedLightSceneInfo
Change 3411838 on 2017/04/27 by Daniel.Wright
[Copy] Skip tracking MaterialRenderProxyMap on cooked platforms
Change 3411843 on 2017/04/27 by Daniel.Wright
[Copy] Fixed r.ParallelShadows on PS4 and enabled by default engine-wide (saves 5ms RT with CSM)
* Gnm was not tracking DepthClearValue when a depth target was set but not cleared
* Gnm has a bug where TargetsNeedingEliminateFastClear does not persist across commandlist breaks. Moved FinishRenderingGBuffer before RenderShadowDepthMaps to workaround (accidentally not in this changelist)
* Shadow depth rendering was not using BindClearMRTValues to populate GNM parallel commandlist TargetsNeedingEliminateFastClear values
Change 3411873 on 2017/04/27 by Daniel.Wright
[Copy] Deferred uniform expression caching. Setting multiple parameters on a material only causes its uniform expressions to be recached once.
* 280 calls to CacheUniformExpressions -> 120 during Fortnite combat (6.5ms -> 3.4ms)
Change 3411891 on 2017/04/27 by Daniel.Wright
[Copy] GatherShadowPrimitives optimizations
* Total GatherShadowPrimivies went from 2.3ms -> 1.3ms on PS4 with these changes in GPUPerfTest (duplicated 3x)
* Much flatter primitive octree (16 -> 256 max primitives)
* Primitives are culled against the shadow frustum before FPrimitiveSceneInfo or FPrimitiveSceneProxy are dereferenced in FilterPrimitiveForShadows
* FilterPrimitiveForShadows work is done in a ParallelFor. Primitive octree nodes are processed in different jobs.
* StaticMeshWholeSceneShadowBatchVisibility now only stores entries for meshes with bRequiresPerElementVisibility (landscape). Previously it was allocating and zeroing 500Kb 3x per frame (main view + 2 cascades) which cost ~.8ms on PS4.
Change 3412192 on 2017/04/27 by Michael.Trepka
Fixed Clang compile errors in FortniteGame, partial copy of CL 3313426
Change 3412547 on 2017/04/27 by Daniel.Wright
Fixed leak of FShadowMapAllocation and FLightMapAllocation's found by licensee
Change 3414239 on 2017/04/28 by Arne.Schober
DR - UE-44500 - Removed use of Structured Buffer from MorphTargets due to HLSLCC not supporting it.
#RB none
#jira UE-44500
Change 3414754 on 2017/04/28 by Daniel.Wright
Added VolumetricFogEmissive to ExponentialHeightFogComponent
* Volumetric fog does not yet support precomputed lighting, so this is the only way to get an ambient lighting term
Change 3416859 on 2017/05/01 by Arne.Schober
DR - Remove FeatureLevel from the Clear Functions to reduce area of error
#RB Rolando.Caloca
Change 3420750 on 2017/05/03 by Arne.Schober
DR - [UE-44497] - Fix several PS4 validation layer issues
#RB Marcus.Wassmer
Change 3422869 on 2017/05/04 by Benjamin.Hyder
Fix compile error from merge.
Change 3423938 on 2017/05/04 by Marc.Olano
[UE-44453] Fix bloom problems by moving saturate after vector math
Change 3424494 on 2017/05/04 by Olaf.Piesche
#jira UE-44589
When using FindTCosoleVariableData, the CVar can not be an FAutoConsoleVariable.
#tests as described in jira ticket
Change 3424754 on 2017/05/04 by Uriel.Doyon
Fixed call to get texture compressor module outside the main thread.
#jira UE-42168
Change 3425447 on 2017/05/05 by Uriel.Doyon
#buildfix
Change 3427042 on 2017/05/05 by Arne.Schober
DR - Fix one of my typos
#RB none
Change 3428119 on 2017/05/08 by Marcus.Wassmer
Fix UE-44733
static analysis warning.
Change 3428222 on 2017/05/08 by Uriel.Doyon
Fixed bad condition in translucency rendering
#jira UE-44452
Change 3429794 on 2017/05/08 by Uriel.Doyon
Fixed issues with lightshafts and low res translucency.
#jira UE-44452
Change 3430921 on 2017/05/09 by Rolando.Caloca
DR - Get additional function pointers for D3DReflect, Compile and Disassemble instructions from the same DLL when compiling D3D11 shaders.
- Also fixes using the correct fxc.exe path to match the DLL we distribute.
Change 3431156 on 2017/05/09 by Rolando.Caloca
DR - Remove unused code
Change 3431396 on 2017/05/09 by David.Hill
Copy of changes made directly in 4.16 ( CL 341037 )
to be submitted to dev-rendering
#jira UE-44641
Change 3431400 on 2017/05/09 by Rolando.Caloca
DR - Fix typo
Change 3431527 on 2017/05/09 by David.Hill
#rb: none
Oops.
comment out r.ShaderDevelopmentMode =1
Change 3431590 on 2017/05/09 by Daniel.Wright
Removed early return landmine in USceneCaptureComponent2D::Serialize
Change 3431591 on 2017/05/09 by Daniel.Wright
Disallow map building while in PIE, or PIE while buildling lighting
Change 3431594 on 2017/05/09 by Daniel.Wright
Added RenderTargetFormat to UTextureRenderTarget2D, with choices of 8 bit, 16fp, 32fp and 1, 2 or 4 channels.
Change 3431667 on 2017/05/09 by Daniel.Wright
Volumetric fog now supersamples lighting when the history is not available, reducing noise on areas that just came on-screen or after a camera cut.
* The number of samples is controlled by r.VolumetricFog.HistoryMissSupersampleCount, defaults to 4, cinematic scalability uses 16
* Under fast camera movement, volumetric fog cost went from 1.79ms -> 1.97ms with 4 samples, on a 970GTX
Change 3432366 on 2017/05/10 by Richard.Wallis
Fix for MetalRHI Asserts When Using "Profile GPU" With RHI-Thread/Parallel-Execution. Don't insert events when not in RHIThread or the actual single-threaded-render thread.
#jira UE-36006
Change 3432367 on 2017/05/10 by Richard.Wallis
Fix for Metal ReStartRenderPass assert with profiling. macOS metal asserts when using "profileGPU" even with -norhithread argument set.
Added no action to the allowed render pass restart store actions for the depth buffer avoiding the assert. Interested to know the details if this is not a valid assumption to make - throwing away the depth buffer after a render pass I think would be a common case.
#jira UE-44322
Change 3432409 on 2017/05/10 by Richard.Wallis
Merged across CL 3415890 from Release-4.16 fix for (jira UE-43895)
Fix for deferred store actions getting cleared when we don't have a valid render target.
Change 3432833 on 2017/05/10 by Daniel.Wright
Fixed Ocean compile error
Change 3432874 on 2017/05/10 by Marc.Olano
Improved captions for Noise and VectorNoise material nodes
Change 3432947 on 2017/05/10 by Richard.Wallis
Fix for shared Material Native Shader Libraries Don't Function With Iterative Cooking. Keep latest versions of shader byte code in native shared material packaged build in an intermediate directory than can be reused on a later iterative cook.
- Doesn't handle deletion of the intermediate directory contents. Assumed to be a higher level requirement on non iterative cook flag.
#jira UE-44657
Change 3433484 on 2017/05/10 by Arne.Schober
DR - UE-44393 - Move ShaderPlatform into TShaderMap for extra debuginformation when it fails to find a proper shader. Also log when Gobalshaders are verified and recompiled.
#jira UE-44393
#RB Daniel.Wright
Change 3433515 on 2017/05/10 by Arne.Schober
DR - Fix a bug where recompileshaders changed while compiling causes a crash where the chached local vertex factories are mutated while been used.
#RB Daniel.Wright
Change 3433606 on 2017/05/10 by Daniel.Wright
Fixed static shadowing of volumetric fog and translucency causing shadowing past the lightmass importance volume.
Change 3433619 on 2017/05/10 by Daniel.Wright
Skip recapturing reflection captures when PropagateLightingScenarioChange is being called for a level unload. This leaves stale results in reflection captures around when hiding a level in the editor, but avoids the double recapture that happens when swapping lighting scenarios in game, and the unnecessary reflection capture update when exiting PIE.
Change 3433795 on 2017/05/10 by Arne.Schober
DR - add cmdline to select a GPU vendor when multiple GPUs from differnt Vendors are installed into the same Machine
#RB marcus.Wassmer
Change 3433941 on 2017/05/10 by Daniel.Wright
Cone vs tile bounding sphere intersection tests for Light Grid culling of spotlights, which provides much tighter culling than just View space tile AABB vs light bounding sphere.
* Forward shading BasePass 3.7ms -> 2.4ms in a scene with 24 spotlights on 970GTX
* Volumetric fog 2.87ms -> 2.09ms in the same scene
Change 3435139 on 2017/05/11 by Daniel.Wright
Restored GTextureRenderTarget2DMaxSizeX which is used by Ocean
Change 3435297 on 2017/05/11 by Arne.Schober
DR - Remove manual AlignOf and use C++11 keyword instead
#RB Steve.Robb
Change 3435367 on 2017/05/11 by Daniel.Wright
Circle vertex buffer for slightly tighter voxelization of volumetric fog shadowed lights
* 1.5ms -> 1.38ms on 970 GTX with 24 spotlights
Change 3435522 on 2017/05/11 by Brian.Karis
Dither opacity mask now stacks properly for non parallel polys. Dither is randomized by triangle normal.
Change 3436063 on 2017/05/11 by Daniel.Wright
Disabled CLB_AggressiveBatching for PC d3d12 as it causes flickering artifacts in lighting
Change 3436269 on 2017/05/11 by Uriel.Doyon
Fixed UVChannel data possibly not up-to-date depending on user manips.
Change 3436611 on 2017/05/12 by Simon.Tovey
Improved name and tooltip for static mesh property controlling generation of alias tables for uniform sampling.
Change 3436676 on 2017/05/12 by Simon.Tovey
Fix for fixed bounds being "invalid" unless set via the toolbar option.
Change 3436700 on 2017/05/12 by Simon.Tovey
Crash fix.
Issue found in https://udn.unrealengine.com/questions/355944/crash-in-fdynamicspriteemitterdatagetdynamicmeshel.html
Particle proxies would have stale material resource pointers if the material is changed while the system was invisible.
If the old material is freed during this time, the next time the system renders it will crash.
Change 3437367 on 2017/05/12 by Brian.Karis
Fixed bug with small UV charts not packing.
Change 3437860 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI alignment is 4 for int64
#RB none
Change 3437972 on 2017/05/12 by Arne.Schober
DR - Fix alignment compile error in win32 where according to ABI function calls cannot take alingned structures. In all of the cases the copy was completely unnecessary.
#RB none
Change 3437975 on 2017/05/12 by Chris.Bunner
Added calculation for MaterialParamsEx to MeshDecals.usf.
#jira UE-43052
Change 3438109 on 2017/05/12 by Rolando.Caloca
DR - Support for -nomcpp on SCW
Change 3438889 on 2017/05/15 by Chris.Bunner
Nullptr check in a few material uniform expressions.
Change 3439351 on 2017/05/15 by Chris.Bunner
Added tooltip to Power material expression.
Change 3439763 on 2017/05/15 by Daniel.Wright
Apply passed in DistanceBiasSqr to line lights - allows volumetric fog to reduce aliasing on line lights
Change 3439764 on 2017/05/15 by Daniel.Wright
Fixed order of operations with bTreatMaxDepthUnshadowed - manifested as unfiltered static shadow depth lookups
Change 3440722 on 2017/05/16 by Guillaume.Abadie
Exposes Scene capture's FOV to blueprints
Change 3441680 on 2017/05/16 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3441884 on 2017/05/16 by Uriel.Doyon
Fixed StreamingDistanceMultiplier not being applied to the texture streaming data.
Change 3442800 on 2017/05/17 by Gil.Gribb
Fixed botched merge.
Change 3442896 on 2017/05/17 by Gil.Gribb
UE4 - Allowed the possibility of running the RHI "thread" on task threads instead and cleaned up and unified the conditionals involved. By default we still have a dedicated RHI thread because it tested slightly faster.
Change 3443951 on 2017/05/17 by Richard.Wallis
Added Apple override allocator macro - each command encoder type needs it's own allocator queue.
Change 3444787 on 2017/05/17 by Daniel.Wright
Fixed DBuffer decal default normal (used when DBuffer decals enabled, but not decals rendered) not reconstructing zero properly, adding -.008 to WorldNormal which then caused artifacts with forward lighting specular on materials with roughness near 0.
Change 3444882 on 2017/05/17 by Daniel.Wright
Added comment to FClearValueBinding::DefaultNormal8Bit to make the dependency on shader decode clear
Change 3444883 on 2017/05/17 by Brian.Karis
Improved contact shadows
Change 3445048 on 2017/05/17 by Daniel.Wright
Fixed particle lights in forward shading, they were not setting the lighting channel mask properly
Change 3445107 on 2017/05/17 by Michael.Trepka
Changed the order of operations in FMetalStateCache::SetRenderState to work around an issue with some Intel drivers where they would not recalculate the raster state in some edge cases.
#jira UE-43725
Change 3445212 on 2017/05/17 by Uriel.Doyon
Added a -CSV option to ListTextures command
Change 3445947 on 2017/05/18 by Richard.Wallis
Clone of Release-4.16 Stream CL 3437181 and CL 3442450 - fix(s) for black rendering on macOS El Cap with Nvidia GPU. Move sampling of EyeAdaption texture to pixel shader for Mac Metal using shader language version <= 1 only.
Change 3446545 on 2017/05/18 by Chris.Bunner
Removed hardcoded (and unused) MRT write from Decal shaders.
#jira UE-45095
Change 3446568 on 2017/05/18 by Marc.Olano
Sobol and image-based importance sampling C++ functions and blueprint nodes
Change 3446988 on 2017/05/18 by Marc.Olano
Fix build error: missing include
Change 3446990 on 2017/05/18 by Marc.Olano
Cell-indexed Sobol sampling for shaders (in MonteCarlo.usf) and materials (Sobol and TemporalSobol nodes)
Change 3447142 on 2017/05/18 by Rolando.Caloca
DR - RWLock instead of mutex for PSO cache
Change 3447144 on 2017/05/18 by Uriel.Doyon
Moved shading model code to SetGBufferFromShadingModel(). This allows the code to be reused in other shader files.
Change 3447794 on 2017/05/18 by Brian.Karis
Virtual texturing foundation code
Change 3448944 on 2017/05/19 by Arciel.Rekman
Fix non-unity Linux (and Mac, etc) builds.
- Mac fix is tentative, did not try.
Change 3449183 on 2017/05/19 by Marcus.Wassmer
Duplicate fix for reflection captures to happen after sequencer updates.
Change 3449196 on 2017/05/19 by Uriel.Doyon
Handling RCM_MinMax when reading FloatRGBA textures.
This fixes pixel inspector always reading 1 for scene color values greater than one.
Change 3451652 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45245
Change 3451660 on 2017/05/22 by Chris.Bunner
Additional compile fix.
#jira UE-45245
Change 3451897 on 2017/05/22 by Daniel.Wright
Moved RTDF shadow project back after the base pass, since it samples the GBuffer for subsurface shadowing. Removed r.DFShadowAsyncCompute which was relying on the previous ordering.
Change 3452055 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
#jira UE-45265
Change 3452089 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452108 on 2017/05/22 by Rolando.Caloca
DR - Compile fix
#jira UE-45246
Change 3452179 on 2017/05/22 by Brian.Karis
Exposed dimensions. Fixed static analysis.
Change 3452734 on 2017/05/22 by Daniel.Wright
When post processing is disabled, TPT_TranslucencyAfterDOF translucency gets forced into the standard translucency pass.
Change 3452770 on 2017/05/22 by Daniel.Wright
Static light source shapes drawn into reflection captures handle SourceLength via scaled sphere
Change 3452861 on 2017/05/22 by Rolando.Caloca
DR - Switch compile fix
Change 3452952 on 2017/05/22 by Brian.Karis
Small VT fixes
Change 3453647 on 2017/05/23 by Richard.Wallis
Fix for tessellation shaders on Mac (Metal v1.2) failing to compile.
#jira UE-45227
Change 3454844 on 2017/05/23 by Uriel.Doyon
Fixed extra X16 on some point lights
#jira UE-45250
Change 3454934 on 2017/05/23 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3457131 on 2017/05/24 by Arne.Schober
DR - [UE-45317] - Fix Depthbuffer not available for resolve in Forward mode
#jira UE-45317
#RB Chris.Bunner
Change 3457141 on 2017/05/24 by Marc.Olano
Sobol bug fixes
Change 3457953 on 2017/05/24 by Brian.Karis
Fix static analysis
#jira UE-45315
#jira UE-45314
#jira UE-45313
Change 3459064 on 2017/05/25 by Chris.Bunner
Fix for out of bounds material translation crash.
#jira UE-45406
Change 3459700 on 2017/05/25 by Brian.Karis
Revert using sprite index buffer because the vert order is different.
Change 3459847 on 2017/05/25 by Chris.Bunner
Fixing ensure in RenderTestMap.
[CL 3461201 by Chris Bunner in Main branch]
2017-05-26 08:22:50 -04:00
TEXT ( " Whether to use forward shading on desktop platforms - requires Shader Model 5 hardware. \n " )
TEXT ( " Forward shading has lower constant cost, but fewer features supported. 0:off, 1:on \n " )
TEXT ( " This rendering path is a work in progress with many unimplemented features, notably only a single reflection capture is applied per object and no translucency dynamic shadow receiving. " ) ,
ECVF_RenderThreadSafe | ECVF_ReadOnly
) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3045398)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3028958 on 2016/06/27 by Ben.Woodhouse
Fix for perf issue with GetSingleFinalDataConst
This was caused by the LPV integration/switch to blendables. Now we cache the flag for the directionalocclusion in the LPV class. This reduces calls to GetSingleFinalDataConst on the blendable data (potentially slow), and makes things a bit cleaner and consistent.
Tested in QAGame editor (with LPV enabled in ConsoleSettings.ini)
#jira UE-26179
Change 3029401 on 2016/06/27 by Rolando.Caloca
DR - More vk logging
Change 3029549 on 2016/06/27 by Uriel.Doyon
Refactored "r.OnlyStreamInTextures" into "r.Streaming.FullyLoadUsedTextures", making it fully load every used textures, as an alternative to disabling texture streaming.
New options "r.Streaming.UsePerTextureBias" that assign a bias between 0 and MipBias to each texture in order to fit in budget.
Fixed crash when disabling texture streaming.
Fixed issue when disabling texture streaming that would make current loaded texture low res.
New logic to prevent retrying to cancel a streaming request more than once.
Pending load request of one extra mip will not be cancelled anymore.
Changed UTexture2D from float to double. Also using FApp::GetCurrentTime() instead of FPlatformTime::Seconds().
#jira UE-32197
#jira UE-31102
Change 3029837 on 2016/06/27 by David.Hill
Fixed Shutter SM4 not working when using compute shader eye-adaptation
#jira UE-32443
The default eye adaptation value was missing.
Change 3030039 on 2016/06/27 by Uriel.Doyon
Fix for crash when landscape materials are used in the Texture Streaming Build.
#jira UE-32196
Change 3030081 on 2016/06/27 by Uriel.Doyon
Updated MaterialTexCoordScalesPixelShader to use PackedEyeIndex, preventing crash when building the map with stereo rendering enabled.
Change 3030401 on 2016/06/28 by Ben.Woodhouse
Perf Monitor: Fix for perf warning due to cvar FindConsoleVariable being called too frequently. Tested in QAGame editor (DX11)
#jira UE-31238
Change 3030607 on 2016/06/28 by Marc.Olano
Random Number generators: fixed bug in TEA, added integer and float Blum-Blum-Shub. BBS is way cheaper for similar quality, suggest it for future use.
Change 3030627 on 2016/06/28 by Ben.Woodhouse
Fix for warning. CVar naming scope clash (doesn't appear to happen in vs2015).
Change 3030809 on 2016/06/28 by Marc.Olano
Noise shader function rename & perf improvement.
Due to incorrect terminology in internet soruces, previous "Perlin" noise was not, in fact, Perlin noise. Now more accurately called "Value" noise. 6x perf improvement for value noise by changing random number function to BBS. Also updated instruction counts in UI tooltips.
Change 3030850 on 2016/06/28 by Marc.Olano
Rename & redirect noise material enums. At some point these got switched around and no longer accurately described the noise options the selected. Redirect, so all existing content will continue to work as-is. Updated UDN docs to match.
Change 3030981 on 2016/06/28 by Rolando.Caloca
DR - vk - More logging
Change 3031056 on 2016/06/28 by Marc.Olano
Introduce new pure-ALU gradient shader noise. Add noise samples to RenderTest map
Change 3031398 on 2016/06/28 by Benjamin.Hyder
updating TM-Shadermodels (correcting Mt Rushmore)
Change 3031441 on 2016/06/28 by Marc.Olano
Use only float version of BBS shader rand function for ES2
Change 3031463 on 2016/06/28 by John.Billon
Fixed F4 changing the viewmode in Fortnite editor. The detailed lighting viewmode (detaillighting) named in DefaultInput.ini differed from the one in BaseInput.ini(lit_detaillighting).
#Jira UE-32020
Change 3031512 on 2016/06/28 by Zabir.Hoque
Relax clear flags for DX12 RHIs.
Properly flush pending commands before residency is updated.
Change 3031517 on 2016/06/28 by Rolando.Caloca
DR - vk logging using r.Vulkan.DumpLayer
Change 3032359 on 2016/06/29 by Allan.Bentham
Fix mobile shadows crash.
Change 3032431 on 2016/06/29 by Gil.Gribb
Merging //UE4/Dev-Main@3032394 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3032757 on 2016/06/29 by Uriel.Doyon
Fixed global mip bias being applied twice following integration with main.
Change 3033121 on 2016/06/29 by Rolando.Caloca
DR - vk - Logging
Change 3033529 on 2016/06/29 by Daniel.Wright
Null world guard on UReflectionCaptureComponent::ReadbackFromGPU
Change 3033668 on 2016/06/29 by Uriel.Doyon
Grouped texture streaming settings to simplify logic.
New options "r.Streaming.UseAllMips" to ignores the different lod and cinematic bias
#jira UE-32118
Change 3034403 on 2016/06/30 by Rolando.Caloca
DR - Shorten dumped shader debug strings
Change 3034475 on 2016/06/30 by Rolando.Caloca
DR - Missing logging
Change 3034722 on 2016/06/30 by Uriel.Doyon
Improved StreamingAccuracy viewmodes with alpha test and translucent materials
#jira UE-32656
Change 3034797 on 2016/06/30 by Rolando.Caloca
DR - vk - 'fix' RHIClear but causes a CPU hang on AMD, so disabled again
Change 3034799 on 2016/06/30 by Rolando.Caloca
DR - vk - missed file
Change 3034905 on 2016/06/30 by Rolando.Caloca
DR - vk - Fix for render passes being reused with wrong dimensions
Change 3035503 on 2016/07/01 by Simon.Tovey
Async compute version of translucency lighting volume clear.
Change 3035577 on 2016/07/01 by Marc.Olano
Tiling noise. Adds tiling option for gradient, gradient texture, and value noise in the noise material node. Tiling is more expensive, but allows noise functions to be baked into a seamless repeating texture.
Change 3035587 on 2016/07/01 by Ben.Woodhouse
Fix for async SSAO bug (SSAO Async Compute results are used before the async job wait)
#jira UE-32709
Change 3035618 on 2016/07/01 by Olaf.Piesche
Asset fixes
Change 3035692 on 2016/07/01 by Rolando.Caloca
DR - vk - Deferred deletion queue
Change 3035808 on 2016/07/01 by Rolando.Caloca
DR - vk - Stat for deletion time, fixed some logging
Change 3036012 on 2016/07/01 by John.Billon
Alpha Coverage Preservation
-Textures have a Alpha Preservation Vec4 property which dictates about much of that channel to preserve down the mip chain during mip generation.
#Jira UE-31986
Change 3036041 on 2016/07/01 by Rolando.Caloca
DR - vk - Fix for 32bit
Change 3036433 on 2016/07/01 by Rolando.Caloca
DR - More vk logging
Change 3036935 on 2016/07/04 by Simon.Tovey
Removing Data Objects
Change 3036942 on 2016/07/04 by Ben.Woodhouse
Fix for decal rendering resource leak
The cause was that FD3D11BoundRenderTargets doesn't support setting RTs sparsely. So if one element is NULL, it won't release the ones after it.
The sparse RT layout happened as a result of a change back in October, which meant that GBuffers for decals could be set sparsely, dependent on whether the decal wrote to the normalbuffer
This change adds support for sparsely bound rendertargets in FD3D11BoundRenderTargets.
#jira UE-32602
Change 3037563 on 2016/07/05 by Chris.Bunner
HLOD self-shadowing in baked lighting fix.
Change 3037640 on 2016/07/05 by Marcus.Wassmer
Fix bug in USE_GPU_OVERWRITE_CHECKING
Change 3037927 on 2016/07/05 by Rolando.Caloca
DR - Fix touch pads not showing on Vulkan
#jira UE-32062
Change 3038085 on 2016/07/05 by Chris.Bunner
HLOD dynamic shadowing support.
#jira UE-22627
Change 3038209 on 2016/07/05 by Rolando.Caloca
DR - vk - Android compile fix
Change 3038644 on 2016/07/05 by Uriel.Doyon
Added LerpRange that allows to lerp between two rotators without taking the sortest path.
Change 3038820 on 2016/07/05 by Uriel.Doyon
Selecting streaming accuracy view modes will not automatically generate missing visualization data.
Change 3039332 on 2016/07/06 by John.Billon
-Made MaxGPUSkinBonesCvar a FAutoConsoleVariableRef and moved it to mesh utilitles from console manager to fix a thread initialization problem.
#Jira UE-31710
Change 3039454 on 2016/07/06 by Simon.Tovey
Moved all Niagara files from Engine and UnrealEd to remove dependancies and increase compile times.
Niagara is now 99.999% decoupled from engine and editor so development should be much streamlined.
Plus a few other edits to remove Curves/DataObjects that I missed in last CL.
Change 3039517 on 2016/07/06 by Gil.Gribb
Merging //UE4/Dev-Main@3039013 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3039587 on 2016/07/06 by Rolando.Caloca
DR - vk logging, submit counter
Change 3039603 on 2016/07/06 by Rolando.Caloca
DR - Allow more samplers on GL4
#jira UE-32628
#jira UE-32744
Change 3039661 on 2016/07/06 by Daniel.Wright
Fixed non-directional DFAO occlusion on specular 'r.AOSpecularOcclusionMode 0'
Skylight occlusion tint now applies to specular
Skylight occlusion tint on diffuse is now correctly affected by DiffuseColor
Change 3039960 on 2016/07/06 by Daniel.Wright
Forward renderer initial implementation
* Point and spot lights are culled to a frustum space grid, base pass loops over culled lights.
* Light culling uses a reverse linked list to avoid a per-cell limit, and the linked list is compacted to an array before the base pass.
* New cvars to control light culling: r.Forward.MaxCulledLightsPerCell, r.Forward.LightGridSizeZ, r.Forward.LightGridPixelSize
* A full Z Prepass is forced with forward shading. This allows deferred rendering before the base pass of shadow projection methods that only rely on depth.
* Dynamic shadows are packed based on the assigned stationary light ShadowMapChannel, since stationary lights are already restricted to 4 overlapping.
* GBuffer render targets are still allocated
* Fixed several issues in parallax corrected base pass reflections - not blending out box shape, discontinuity in reflection vector, not blending with stationary skylight properly
* Forward shading is now used for TLM_SurfacePerPixelLighting translucency in the deferred path
* Notable missing features: shadowing of translucency, support for various translucency lighting modes, multiple blended reflection captures
Change 3040050 on 2016/07/06 by Daniel.Wright
Added r.Shadow.WholeSceneShadowCacheMb, which defaults to 150, to limit how much memory can be spent caching whole scene shadowmaps
Change 3040160 on 2016/07/06 by Daniel.Wright
Fixed tile artifacts in indirect capsule shadows from doing the scaled sphere vs tile bounding sphere intersection in the wrong space
Change 3040163 on 2016/07/06 by Rolando.Caloca
DR - vk - More logging
Change 3040257 on 2016/07/06 by Daniel.Wright
Skylights aren't captured until their level is made visible- fixes the case where skylights capture too early
Change 3040316 on 2016/07/06 by Daniel.Wright
PerObject shadows from point / spot lights do the light source pull back based on subject box size, not subject radius, since the box is used to find a valid < 90 degree projection. Fix from licensee
Change 3040361 on 2016/07/06 by Daniel.Wright
Fixed TexCreate_UAV being used on translucency volume textures in SM4
Change 3040402 on 2016/07/06 by Rolando.Caloca
DR - vk - Make host mem accesses coherent
Change 3040486 on 2016/07/06 by Daniel.Wright
CIS fixes
Change 3041028 on 2016/07/07 by Gil.Gribb
Merging //UE4/Dev-Main@3040917 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3041235 on 2016/07/07 by Simon.Tovey
Compile fix for FName conflict on UProperty (hopefully).
Change 3041666 on 2016/07/07 by Daniel.Wright
Fixed TLM_SurfacePerPixelLighting in SM4, falls back to lighting volume
Change 3041731 on 2016/07/07 by Olaf.Piesche
Adding Niagara to dynamically loaded module list; should fix UE-32915
Change 3042181 on 2016/07/07 by Daniel.Wright
CIS fix
[CL 3045471 by Gil Gribb in Main branch]
2016-07-11 18:51:20 -04:00
2019-04-24 17:06:06 -04:00
static TAutoConsoleVariable < int32 > CVarDistanceFields (
TEXT ( " r.DistanceFields " ) ,
1 ,
TEXT ( " Enables distance fields rendering. \n " ) \
TEXT ( " 0: Disabled. \n " ) \
TEXT ( " 1: Enabled. " ) ,
ECVF_RenderThreadSafe | ECVF_ReadOnly
) ;
2018-09-26 10:08:47 -04:00
RENDERCORE_API uint32 GForwardShadingPlatformMask = 0 ;
static_assert ( SP_NumPlatforms < = sizeof ( GForwardShadingPlatformMask ) * 8 , " GForwardShadingPlatformMask must be large enough to support all shader platforms " ) ;
RENDERCORE_API uint32 GDBufferPlatformMask = 0 ;
static_assert ( SP_NumPlatforms < = sizeof ( GDBufferPlatformMask ) * 8 , " GDBufferPlatformMask must be large enough to support all shader platforms " ) ;
2019-04-12 13:05:38 -04:00
RENDERCORE_API uint32 GBasePassVelocityPlatformMask = 0 ;
static_assert ( SP_NumPlatforms < = sizeof ( GBasePassVelocityPlatformMask ) * 8 , " GBasePassVelocityPlatformMask must be large enough to support all shader platforms " ) ;
RENDERCORE_API uint32 GSelectiveBasePassOutputsPlatformMask = 0 ;
static_assert ( SP_NumPlatforms < = sizeof ( GSelectiveBasePassOutputsPlatformMask ) * 8 , " GSelectiveBasePassOutputsPlatformMask must be large enough to support all shader platforms " ) ;
2019-04-24 17:06:06 -04:00
RENDERCORE_API uint32 GDistanceFieldsPlatformMask = 0 ;
static_assert ( SP_NumPlatforms < = sizeof ( GDistanceFieldsPlatformMask ) * 8 , " GDistanceFieldsPlatformMask must be large enough to support all shader platforms " ) ;
2018-09-26 10:08:47 -04:00
RENDERCORE_API void RenderUtilsInit ( )
{
if ( GUseForwardShading )
{
GForwardShadingPlatformMask = ~ 0u ;
}
2019-04-12 13:05:38 -04:00
static IConsoleVariable * DBufferVar = IConsoleManager : : Get ( ) . FindConsoleVariable ( TEXT ( " r.DBuffer " ) ) ;
if ( DBufferVar & & DBufferVar - > GetInt ( ) )
2018-09-26 10:08:47 -04:00
{
GDBufferPlatformMask = ~ 0u ;
}
2019-04-12 13:05:38 -04:00
static IConsoleVariable * BasePassVelocityCVar = IConsoleManager : : Get ( ) . FindConsoleVariable ( TEXT ( " r.BasePassOutputsVelocity " ) ) ;
if ( BasePassVelocityCVar & & BasePassVelocityCVar - > GetInt ( ) )
{
GBasePassVelocityPlatformMask = ~ 0u ;
}
static IConsoleVariable * SelectiveBasePassOutputsCVar = IConsoleManager : : Get ( ) . FindConsoleVariable ( TEXT ( " r.SelectiveBasePassOutputs " ) ) ;
if ( SelectiveBasePassOutputsCVar & & SelectiveBasePassOutputsCVar - > GetInt ( ) )
{
GSelectiveBasePassOutputsPlatformMask = ~ 0u ;
}
2019-04-24 17:06:06 -04:00
static IConsoleVariable * DistanceFieldsCVar = IConsoleManager : : Get ( ) . FindConsoleVariable ( TEXT ( " r.DistanceFields " ) ) ;
if ( DistanceFieldsCVar & & DistanceFieldsCVar - > GetInt ( ) )
{
GDistanceFieldsPlatformMask = ~ 0u ;
}
2018-09-26 10:08:47 -04:00
# if WITH_EDITOR
ITargetPlatformManagerModule * TargetPlatformManager = GetTargetPlatformManager ( ) ;
if ( TargetPlatformManager )
{
for ( uint32 ShaderPlatformIndex = 0 ; ShaderPlatformIndex < SP_NumPlatforms ; + + ShaderPlatformIndex )
{
EShaderPlatform ShaderPlatform = EShaderPlatform ( ShaderPlatformIndex ) ;
FName PlatformName = ShaderPlatformToPlatformName ( ShaderPlatform ) ;
ITargetPlatform * TargetPlatform = TargetPlatformManager - > FindTargetPlatform ( PlatformName . ToString ( ) ) ;
if ( TargetPlatform )
{
uint32 Mask = 1u < < ShaderPlatformIndex ;
if ( TargetPlatform - > UsesForwardShading ( ) )
{
GForwardShadingPlatformMask | = Mask ;
}
else
{
GForwardShadingPlatformMask & = ~ Mask ;
}
if ( TargetPlatform - > UsesDBuffer ( ) )
{
GDBufferPlatformMask | = Mask ;
}
else
{
GDBufferPlatformMask & = ~ Mask ;
}
2019-04-12 13:05:38 -04:00
if ( TargetPlatform - > UsesBasePassVelocity ( ) )
{
GBasePassVelocityPlatformMask | = Mask ;
}
else
{
GBasePassVelocityPlatformMask & = ~ Mask ;
}
if ( TargetPlatform - > UsesSelectiveBasePassOutputs ( ) )
{
GSelectiveBasePassOutputsPlatformMask | = Mask ;
}
else
{
GSelectiveBasePassOutputsPlatformMask & = ~ Mask ;
}
2019-04-24 17:06:06 -04:00
if ( TargetPlatform - > UsesDistanceFields ( ) )
{
GDistanceFieldsPlatformMask | = Mask ;
}
else
{
GDistanceFieldsPlatformMask & = ~ Mask ;
}
2018-09-26 10:08:47 -04:00
}
}
}
# endif
}
2015-06-25 02:07:29 -04:00
class FUnitCubeVertexBuffer : public FVertexBuffer
{
public :
/**
* Initialize the RHI for this rendering resource
*/
void InitRHI ( ) override
{
const int32 NumVerts = 8 ;
TResourceArray < FVector4 , VERTEXBUFFER_ALIGNMENT > Verts ;
Verts . SetNumUninitialized ( NumVerts ) ;
for ( uint32 Z = 0 ; Z < 2 ; Z + + )
{
for ( uint32 Y = 0 ; Y < 2 ; Y + + )
{
for ( uint32 X = 0 ; X < 2 ; X + + )
{
const FVector4 Vertex = FVector4 (
( X ? - 1 : 1 ) ,
( Y ? - 1 : 1 ) ,
( Z ? - 1 : 1 ) ,
1.0f
) ;
Verts [ GetCubeVertexIndex ( X , Y , Z ) ] = Vertex ;
}
}
}
uint32 Size = Verts . GetResourceDataSize ( ) ;
// Create vertex buffer. Fill buffer with initial data upon creation
FRHIResourceCreateInfo CreateInfo ( & Verts ) ;
VertexBufferRHI = RHICreateVertexBuffer ( Size , BUF_Static , CreateInfo ) ;
}
} ;
class FUnitCubeIndexBuffer : public FIndexBuffer
{
public :
/**
* Initialize the RHI for this rendering resource
*/
void InitRHI ( ) override
{
TResourceArray < uint16 , INDEXBUFFER_ALIGNMENT > Indices ;
int32 NumIndices = ARRAY_COUNT ( GCubeIndices ) ;
Indices . AddUninitialized ( NumIndices ) ;
FMemory : : Memcpy ( Indices . GetData ( ) , GCubeIndices , NumIndices * sizeof ( uint16 ) ) ;
const uint32 Size = Indices . GetResourceDataSize ( ) ;
const uint32 Stride = sizeof ( uint16 ) ;
// Create index buffer. Fill buffer with initial data upon creation
FRHIResourceCreateInfo CreateInfo ( & Indices ) ;
IndexBufferRHI = RHICreateIndexBuffer ( Stride , Size , BUF_Static , CreateInfo ) ;
}
} ;
static TGlobalResource < FUnitCubeVertexBuffer > GUnitCubeVertexBuffer ;
static TGlobalResource < FUnitCubeIndexBuffer > GUnitCubeIndexBuffer ;
RENDERCORE_API FVertexBufferRHIRef & GetUnitCubeVertexBuffer ( )
{
return GUnitCubeVertexBuffer . VertexBufferRHI ;
}
RENDERCORE_API FIndexBufferRHIRef & GetUnitCubeIndexBuffer ( )
{
return GUnitCubeIndexBuffer . IndexBufferRHI ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3231693)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3219796 on 2016/12/02 by Rolando.Caloca
DR - vk - Increase timeout to 60ms
Change 3219884 on 2016/12/02 by Daniel.Wright
Assert to help track down rare crash locking capsule indirect shadow vertex buffer
Change 3219885 on 2016/12/02 by Daniel.Wright
Fixed saving a package that doesn't exist on disk but exists in p4 at a newer revision when the user chooses 'Mark Writable'
Change 3219886 on 2016/12/02 by Daniel.Wright
Don't create projected shadows when r.ShadowQuality is 0
* Fixes crash in the forward path trying to render shadows
* In the deferred path, the shadowmap was still being rendered and only the projection skipped, now all cost will be skipped
Change 3219887 on 2016/12/02 by Daniel.Wright
Changed ClearRenderTarget2D default alpha to 1, which is necessary for correct compositing
Change 3219893 on 2016/12/02 by Daniel.Wright
AMD AGS library with approved TPS
Disabled DFAO on AMD pre-GCN PC video cards to workaround a driver bug which won't be fixed (Radeon 6xxx and below)
Change 3219913 on 2016/12/02 by Daniel.Wright
Level unload of a lighting scenario propagates the lighting scenario change - fixes crash when precomputed lighting volume data gets unloaded
Change 3220029 on 2016/12/02 by Daniel.Wright
Async shader compiling now recreates scene proxies which are affected by the material which was compiled. This fixes crashes which were occuring as proxies cache various material properties, but applying compiled materials would not update these cached properties (bRequiresAdjacencyInformation).
* A new ensure has been added in FMeshElementCollector::AddMesh and FBatchingSPDI::DrawMesh to catch attempts to render with a material not reported in GetUsedMaterials
* Fixed UParticleSystemComponent::GetUsedMaterials and UMaterialBillboardComponent::GetUsedMaterials
* FMaterialUpdateContext should be changed to use the same pattern, but that hasn't been done yet
Change 3220108 on 2016/12/02 by Daniel.Wright
Fixed shadowmap channel assignment for stationary lights which are not in a lighting scenario level, when a lighting scenario level is present
Change 3220504 on 2016/12/03 by Mark.Satterthwaite
Metal Desktop Tessellation support from Unicorn.
- Apple: Metal tessellation support added to MetalShaderFormat, MetalRHI and incl. changes to engine runtime/shaders for Desktop renderer and enabled in ElementalDemo by default (OS X 10.11 will run SM4).
- Epic: Support for different Metal shader standards on Mac, iOS & tvOS which required moving some RHI functions around as this is a project setting and not a compile-time constant.
- Epic: Fragment shader UAV support, which is also tied to newer Metal shader standard like Tessellation.
- Epic: Significant refactor of MetalRHI's internals to clearly separate state-caching from render-pass management and command-encoding.
- Epic: Internal MetalRHI validation code is now cleanly separated out into custom implementations of the Metal @protocol's and is on by default.
- Epic: Various fixes to Layered Rendering for Metal.
- Omits Mobile Tessellation support which needs further revision.
Change 3220881 on 2016/12/04 by Mark.Satterthwaite
Compiles fixes for iOS & static analysis fixes from Windows.
Change 3221180 on 2016/12/05 by Guillaume.Abadie
Avoid compiling PreviousFrameSwitch's both Current Frame and Previous Frame inputs every time.
Change 3221217 on 2016/12/05 by Chris.Bunner
More NVAPI warning fixups.
Change 3221219 on 2016/12/05 by Chris.Bunner
When comparing overriden properties used to force instance recompilation we need to check against the base material, not assume the immediate parent.
#jira UE-37792
Change 3221220 on 2016/12/05 by Chris.Bunner
Exported GetAllStaticSwitchParamNames and GetAllStaticComponentMaskParamNames.
#jira UE-35132
Change 3221221 on 2016/12/05 by Chris.Bunner
PR #2785: Fix comment typo in RendererInterface.h (Contributed by dustin-biser)
#jira UE-35760
Change 3221223 on 2016/12/05 by Chris.Bunner
Default to include dev-code when compiling material preview stats.
#jira UE-20321
Change 3221534 on 2016/12/05 by Rolando.Caloca
DR - Added FDynamicRHI::GetName()
Change 3221833 on 2016/12/05 by Chris.Bunner
Set correct output extent on PostProcessUpscale (allows users to extend chain correctly).
#jira UE-36989
Change 3221852 on 2016/12/05 by Chris.Bunner
32-bit/ch EXR screenshot and frame dump output.
Fixed row increment bug in 128-bit/px surface format readback.
#jira UE-37962
Change 3222059 on 2016/12/05 by Rolando.Caloca
DR - vk - Fix memory type not found
Change 3222104 on 2016/12/05 by Rolando.Caloca
DR - Lambdaize
- Added quicker method to check if system textures are initialized
Change 3222290 on 2016/12/05 by Mark.Satterthwaite
Trivial fixes to reporting Metal shader pipeline errors - need to check if Hull & Domain exist.
Change 3222864 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak when exiting
Change 3222873 on 2016/12/06 by Rolando.Caloca
DR - vk - Minor info to help track down leaks
Change 3222875 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak with VisualizeTexture
#jira UE-39360
Change 3223226 on 2016/12/06 by Chris.Bunner
Static analysis warning workaround.
Change 3223235 on 2016/12/06 by Ben.Woodhouse
Integrate from NREAL: Set a custom projection matrix on a SceneCapture2D
Change 3223343 on 2016/12/06 by Chris.Bunner
Moved HLOD persistent data to viewstate to fix per-view compatability.
#jira UE-37539
Change 3223349 on 2016/12/06 by Chris.Bunner
Fixed HLOD with FreezeRendering command.
#jira UE-29839
Change 3223371 on 2016/12/06 by Michael.Trepka
Removed obsolete check() in FMetalSurface constructor
Change 3223450 on 2016/12/06 by Chris.Bunner
Added explicit ScRGB output device selection rather than Nvidia-only hardcoded checks. Allows easier support for Mac and other devices moving forward.
Change 3223638 on 2016/12/06 by Michael.Trepka
Restored part of the check() in FMetalSurface constructor removed in CL 3223371
Change 3223642 on 2016/12/06 by Mark.Satterthwaite
Experimental Metal EDR/HDR output support for Mac (iOS/tvOS need custom formats & shaders so they are not supported yet).
- Only available on macOS Sierra (10.12) for Macs with HDR displays (e.g. Retina iMacs).
- Enable with -metaledr command-line argument as it is off-by-default.
- Sets up the CAMetalLayer & the back-buffer for RGBA_FP16 output on Mac using DCI-P3 as the color gamut and ACES 1000 nit ScRGB output encoding.
Change 3223830 on 2016/12/06 by Rolando.Caloca
DR - vk - Better error when finding an invalid Vulkan driver
#jira UE-37495
Change 3223869 on 2016/12/06 by Rolando.Caloca
DR - vk - Reuse fences
Change 3223906 on 2016/12/06 by Guillaume.Abadie
Fix alpha through TempAA artifact causing a small darker edge layouts.
Change 3224199 on 2016/12/06 by Mark.Satterthwaite
Fix a dumb copy-paste error from the HDR changes to Metal.
Change 3224220 on 2016/12/06 by Mark.Satterthwaite
Fix various errors with Metal UAV & Render-Pass Restart support so that we can use the Pixel Shader culling for DistanceField effects.
- Unfortunately Metal requires that a texture be bound to start a render-pass, so reuse the dummy depth-stencil surface from the problematic editor preview tile rendering.
Change 3224236 on 2016/12/06 by Mark.Satterthwaite
IWYU CIS compile fix for iOS.
Change 3224366 on 2016/12/06 by Mark.Satterthwaite
Simplify some of the changes from CL# 3224220 so that we don't perform unnecessary clears.
- If the RenderPass is broken to issue compute or blit operations then treat the cached RenderTargetsInfo as invalid, unless the RenderPass is restarted.
- This guarantees that we don't erroneously ignore calls to SetRenderTargets if the calling code issues a dispatch between two RenderPasses that use the same RenderTargetsInfo.
Change 3224416 on 2016/12/06 by Uriel.Doyon
New default implementation for UPrimitiveComponent::GetStreamingTextureInfo using a conservative heuristic where the textures are stretched across the bounds.
Optimized UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval by not handling registered components with no proxy (essentially hidden game / collision primitives).
Added blueprint support for texture streaming built data through FStaticMeshComponentInstanceData.
Fix for material texture streaming data not being available on some cooked builds.
Enabled split requests on all texture load requests (first loading everything visible and then loaded everything not visible).
This is controlled by "r.Streaming.MinMipForSplitRequest" which defines the minimum mip for which to allow splitting.
Forced residency are now loaded in two steps (visible, then forced), improving reactiveness.
Updated "stat streaming" to include "UnkownRefMips" which represent texture with no known component referencing them,
and also "LastRenderTimeMips" which related to timed primitives.
Changed "Forced Mips" so that it only shows mips that are loaded become of forced residency.
"Texture Streaming Build" now updates the map check after execution.
Removed Orphaned texture logic as this has become irrelevant with the latest retention priority logic.
Updated "r.streaming.usenewmetrics" so that it shows behavior before and after 4.12 improvements.
Change 3224532 on 2016/12/07 by Uriel.Doyon
Integrated CL 3223965 :
Building texture streaming data for materials does not wait for pending shaders to finish compilation anymore.
Added more options to allow the user to cancel this build also.
Change 3224714 on 2016/12/07 by Ben.Woodhouse
Cherry pick CL 3223972 from //fortnite/main:
Disable Geometry shader onchip on XB1. This saves 4ms for a single shadow casting point light @ 512x512 (4.8ms to 1.8ms)
Change 3224715 on 2016/12/07 by Ben.Woodhouse
New version of d3dx12.h from Microsoft which incorporates my suggested static analysis fixes. This avoids us diverging from the official version
Change 3224975 on 2016/12/07 by Rolando.Caloca
DR - vk - Dump improvements
Change 3225012 on 2016/12/07 by Rolando.Caloca
DR - Show warning if trying to use num samples != (1,2,4,8,16)
Change 3225126 on 2016/12/07 by Chris.Bunner
Added 'force 128-bit rendering pipeline' to high-res screenshot tool.
#jira UE-39345
Change 3225449 on 2016/12/07 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3225485 on 2016/12/07 by Chris.Bunner
Moved QuantizeSceneBufferSize to RenderCore and added call for PostProcess settings. Fixes screenpercentage out-of-bounds reads in some cases.
#jira UE-19394
Change 3225486 on 2016/12/07 by Chris.Bunner
Only disable TAA during HighResScreenshots if we don't have a reasonable frame-delay enabled.
Change 3225505 on 2016/12/07 by Daniel.Wright
Fixed exponential height fog disappearing with no skybox
Change 3225655 on 2016/12/07 by Benjamin.Hyder
Updating TM-Shadermodels to include Translucent lighting, Two sided, updated cloth animation, and adjusted lighting.
Change 3225668 on 2016/12/07 by Chris.Bunner
Dirty owning packages when user manually forces regeneration of all reflection captures.
#jira UE-38759
Change 3226139 on 2016/12/07 by Rolando.Caloca
DR - Fix recompute tangents disabling skin cache
- Make some macros into lambdas
#jira UE-39143
Change 3226212 on 2016/12/07 by Daniel.Wright
Features which require a full prepass use DDM_AllOpaque instead of DDM_AllOccluders, which can be skipped if the component has bUseAsOccluder=false
Change 3226213 on 2016/12/07 by Daniel.Wright
Scene Capture 2D can specify a global clip plane, which is useful for portals
* Requires the global clip plane project setting to be enabled
Change 3226214 on 2016/12/07 by Daniel.Wright
Improved deferred shadowing with MSAA by upsampling light attenuation intelligently in the base pass
* If the current fragment's depth doesn't match what was used for deferred shadowing, the neighbor (cross pattern) with the nearest depth's shadowing is used
* Edge artifacts can still occur where the upsample fails or the shadow factor was computed per-sample due to depth / stencil testing
* Indirect Occlusion from capsule shadows also uses the nearest depth neighbor UV for no extra cost
* Base pass on 970 GTX 1.69ms -> 1.85ms (.16ms) in RoboRecall
Change 3226258 on 2016/12/07 by Rolando.Caloca
DR - Typo fix
Change 3226259 on 2016/12/07 by Rolando.Caloca
DR - compile fix
#jira UE-39143
Change 3226932 on 2016/12/08 by Chris.Bunner
Re-saved Infiltrator maps to update reflection captures.
#jira UE-38759
Change 3227063 on 2016/12/08 by Mark.Satterthwaite
For Metal platforms ONLY temporarily disable USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING to avoid UE-37436 while the Nvidia driver team investigate why this doesn't work for them but does for the others. This won't affect non-Metal platforms and the intent is to revert this prior to 4.16 provided we can work through the problem with Nvidia.
#jira UE-37436
Change 3227120 on 2016/12/08 by Gil.Gribb
Merging //UE4/Dev-Main@3226895 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3227211 on 2016/12/08 by Arne.Schober
DR - UE-38585 - Fixing crash where HierInstStaticMesh duplication fails. Also reverting the fix from UE-28189 which is redundant.
Change 3227257 on 2016/12/08 by Marc.Olano
Extension to PseudoVolumeTexture for more flexible layout
Change by ryan.brucks
Change 3227286 on 2016/12/08 by Rolando.Caloca
DR - Fix crash when using custom expressions and using reserved keywords
#jira UE-39311
Change 3227376 on 2016/12/08 by Mark.Satterthwaite
Must not include a private header inside the MenuStack public header as that causes compile errors in plugins.
Change 3227415 on 2016/12/08 by Mark.Satterthwaite
Fix shader compilation due to my disabling of USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING on Metal - InstancedCompositeTileReflectionCaptureIndices needs to be defined even though Metal doesn't support instanced-stereo rendering.
Change 3227516 on 2016/12/08 by Daniel.Wright
Implemented UWidgetComponent::GetUsedMaterials
Change 3227521 on 2016/12/08 by Guillaume.Abadie
Fixes post process volume's indirect lighting color.
#jira UE-38888
Change 3227567 on 2016/12/08 by Marc.Olano
New upscale filters: Lanczos-2 (new default), Lanczos-3 and Gaussian Unsharp Mask
Change 3227628 on 2016/12/08 by Daniel.Wright
Removed redundant ResolveSceneDepthTexture from the merge
Change 3227635 on 2016/12/08 by Daniel.Wright
Forward renderer supports shadowing from movable lights and light functions
* Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed
* Light functions only work on shadow casting lights since they need a shadowmap channel to be assigned
Change 3227660 on 2016/12/08 by Rolando.Caloca
DR - vk - Fix r.MobileMSAA on Vulkan
- r.MobileMSAA is now read-only (to be fixed on 4.16)
- Show time for PSO creation hitches
#jira UE-39184
Change 3227704 on 2016/12/08 by Mark.Satterthwaite
Fix Mac HDR causing incorrect output color encoding being used, HDR support is now entirely off unless you pass -metaledr which will enable it regardless of whether the current display supports HDR (as we haven't written the detection code yet). Fixed the LUT/UI compositing along the way - Mac Metal wasn't using volume LUT as it should have been, RHISupportsVertexShaderLayer now correctly returns false for non-Mac Metal platforms.
Change 3227705 on 2016/12/08 by Daniel.Wright
Replaced built-in samplers in the nearest depth translucency upsample because the built-in samplers are no longer bound on PC (cl 2852426)
Change 3227787 on 2016/12/08 by Chris.Bunner
Added extent clear to motion blur pass to catch misized buffers bringing in errors.
Added early out to clear call when excluded region matches RT region.
#jira UE-39437
Change 3228177 on 2016/12/08 by Marc.Olano
Fix DCC sqrt(int) error
Change 3228285 on 2016/12/08 by Chris.Bunner
Back out changelist 3225449.
#jira UE-39528
Change 3228680 on 2016/12/09 by Gil.Gribb
Merging //UE4/Dev-Main@3228528 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3228940 on 2016/12/09 by Mark.Satterthwaite
Editor fixes for 4.15:
- PostProcessTonemap can't fail to bind a texture to the ColorLUT or the subsequent rendering will be garbage: the changes for optimising stereo rendering forgot to account for the Editor's use of Views without States for the asset preview thumbnails. Amended the CombineLUT post-processing to allocate a local output texture when there's no ViewState and read from this when this situation arises which makes everything function again.
- Don't start render-passes without a valid render-target-array in MetalRHI.
Change 3228950 on 2016/12/09 by Mark.Satterthwaite
Make GPUSkinCache run on Mac Metal - it wasn't working because it was forcibly disabled on all platforms but for Windows D3D 11.
- Fixed the Skeleton editor tree trying to access a widget before it has been constructed.
- Enable GPUSkinCache for Metal SM5: doesn't render correctly, even on AMD, so needs Radar's filing and investigation.
#jira UE-39256
Change 3229013 on 2016/12/09 by Mark.Satterthwaite
Further tidy up in SSkeletonTreeView as suggested by Nick.A.
Change 3229101 on 2016/12/09 by Chris.Bunner
Log compile error fix and updated cvar comments.
Change 3229236 on 2016/12/09 by Ben.Woodhouse
XB1 D3D11 and D3D12: Use the DXGI frame statistics to get accurate GPU time unaffected by bubbles
Change 3229430 on 2016/12/09 by Ben.Woodhouse
PR #2680: Optimized histogram generation. (Contributed by PjotrSvetachov)
Profiled on nvidia 980GTX (2x faster), and on XB1 (marginally faster)
Change 3229580 on 2016/12/09 by Marcus.Wassmer
DepthBoundsTest for AMD.
Change 3229701 on 2016/12/09 by Michael.Trepka
Changed "OS X" to "macOS" in few places where we display it and updated the code that asks users to update to latest version to check for 10.12.2
Change 3229706 on 2016/12/09 by Chris.Bunner
Added GameUserSettings controls for HDR display output.
Removed Metal commandline as this should replace the need for it.
Change 3229774 on 2016/12/09 by Michael.Trepka
Disabled OpenGL on Mac. -opengl is now ignored, we always use Metal. On old Macs that do not support Metal we show a message saying that the app requires Metal and exit.
Change 3229819 on 2016/12/09 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3229948 on 2016/12/09 by Rolando.Caloca
DR - Fix d3d debug error
#jira UE-39589
Change 3230341 on 2016/12/11 by Mark.Satterthwaite
Don't fatally assert that the game-thread stalled waiting for the rendering thread in the Editor executable, even when running -game as the rendering thread can take a while to respond if shaders need to be compiled.
#jira UE-39613
Change 3230860 on 2016/12/12 by Marcus.Wassmer
Experimental Nvidia AFR support.
Change 3230930 on 2016/12/12 by Mark.Satterthwaite
Disable RHICmdList state-caching on Mac - Metal already does this internally and depends on receiving all state changes in order to function.
Change 3231252 on 2016/12/12 by Marcus.Wassmer
Fix NumGPU detection. (SLI only crash)
Change 3231486 on 2016/12/12 by Mark.Satterthwaite
Fix a stupid mistake in MetalStateCache::CommitResourceTable that would unnecessarily rebind samplers.
Change 3231661 on 2016/12/12 by Mark.Satterthwaite
Retain the RHI samplers in MetalRHI to guarantee lifetime.
[CL 3231696 by Gil Gribb in Main branch]
2016-12-12 17:47:42 -05:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894)
#rb Rendering
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3658809 by Chris.Bunner
Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data.
Change 3658842 by Chris.Bunner
Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults.
Change 3695269 by Arne.Schober
DR - Make clang happy wreorder
Change 3695418 by Guillaume.Abadie
Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp.
Change 3695430 by Guillaume.Abadie
Fixes missing BeginFrame dynamic resolution event in EngineTest.
Change 3695469 by Guillaume.Abadie
Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters.
Change 3696091 by Guillaume.Abadie
Fixes Linux compilation failure in DynamicResolution.cpp
Change 3696593 by Chris.Bunner
Fixed typo in vetex factory enum.
Change 3696596 by Chris.Bunner
Added material attributes type checking to If material expression.
Updated If material expression to validate compilation of inputs.
Change 3696597 by Chris.Bunner
Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3696599 by Chris.Bunner
Fixed material instance parameter visiblity when using nested static switches across functions.
#jira UE-50878
Change 3696734 by Chris.Bunner
Return type fix.
Change 3697123 by Guillaume.Abadie
Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits.
Change 3697125 by Guillaume.Abadie
Fixes compilation failure in MaterialExpressionIf.h
Change 3697127 by Guillaume.Abadie
Fixes compilation failure in DynamicResolution.cpp on shipping build.
Change 3697135 by Guillaume.Abadie
Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest.
Change 3697199 by Guillaume.Abadie
Fixes TAA upsample's shader compilation failure on Mac.
Change 3697220 by Guillaume.Abadie
Makes static analysis happy again.
Change 3697280 by Chris.Bunner
Fixing up invalid casts in material layers validation.
Change 3697366 by Rolando.Caloca
DR - hlslcc - Fix warning
#jira UE-43988
Change 3697451 by Rolando.Caloca
DR - vk - Per pipeline descriptor pools
Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation
Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS
Change 3697477 by Rolando.Caloca
DR - vk - Custom memory allocator
Remove old/unused stats
Change 3697486 by Rolando.Caloca
DR - vk - Fix validation issue
Change 3697488 by Richard.Wallis
Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6. Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame.
Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter.
#jira UE-37553
Change 3697501 by Richard.Wallis
Move audio processing over to audio bus tap. Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework. This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp.
Original Code Review Description:
Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer. This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac. There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled.
- Stuttering Audio Performace issue investiagation: Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one. Basic investigation seems to point to somewhere in the engine audio handing. When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue. I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough. This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec.
#jira UEPLAT-1677
Change 3697517 by Richard.Wallis
XCode 9.0 extra nullability specifiers required.
Change 3697537 by Richard.Wallis
Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp
Change 3697670 by Rolando.Caloca
DR - vk - Fix mapstaging surface
Change 3697846 by Uriel.Doyon
Allow denormalized values when converting float32 to float16.
Change 3697892 by Uriel.Doyon
Fix for unaligned structure elements
Change 3699335 by Richard.Wallis
Mac compile fix - turns out I did need these nullability specifiers here.
Change 3699663 by Guillaume.Abadie
Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries.
Change 3699959 by Rolando.Caloca
DR - Fix barrier in the middle of render pass
Change 3699969 by Rolando.Caloca
DR - vk - Change dump layer location so it prints out validation ids
Change 3700356 by Guillaume.Abadie
Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI.
Change 3701105 by Guillaume.Abadie
Ignore per view automatic mip bias on texture type other than 2d textures.
#jira UE-51396
Change 3702297 by Richard.Wallis
Mac compile fix for nullable specifier. Looks like Obj class using the C++ class also needs this otherwise it throws. Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok.
#jira UE-51386
Change 3702357 by Richard.Wallis
Mac nullability compile fix - again. Looks like I fell foul of that xcode compile caching!
#jira UE-51386
Change 3702424 by Guillaume.Abadie
Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading.
#jira UE-51395
Change 3702464 by Guillaume.Abadie
Fixes wrong viewport to buffer conversion of the distortion.
#jira UE-51406
Change 3702819 by Guillaume.Abadie
Fixes planar reflections with secondary screen percentage for HighDPI editor viewports.
Change 3703732 by Guillaume.Abadie
Removes unecessary check(); when there is more than 2 players with planar reflections.
#jira UE-51436
Change 3704302 by Guillaume.Abadie
Removes unecessary Interface suffix on new dynamic resolution related interfaces
Change 3704390 by Chris.Bunner
Fixed a coincidentally correct define.
Change 3704730 by Rolando.Caloca
DR - vk - Fix map for depth surfaces
Change 3704739 by Rolando.Caloca
DR - Debug label on D3D11 UAVs
- Validate when running -d3debug
Change 3705000 by Chris.Bunner
Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254.
Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties.
Change 3706065 by Guillaume.Abadie
Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView.
Change 3706464 by Chris.Bunner
Fixed material property translate overrides that were generating code in the wrong entry.
Fixed conditions in If material expression GetInputType and IsMA check.
#jira UE-51368
Change 3706641 by Chris.Bunner
Missing "break" in switch statement (which unfortunately needs another bump to resolve).
Change 3706642 by Guillaume.Abadie
Fixes assertion failure when r.TemporalAA.EnableUpscale = 1
Change 3706650 by Gil.Gribb
UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code.
Change 3706733 by Daniel.Wright
Print Embree Build time
Change 3706841 by Daniel.Wright
EmbreeFilterFunc4 now handles masked out intersections properly
Change 3707437 by Rolando.Caloca
DR - vk - Android compile fix
#jira UE-51474
Change 3707785 by Guillaume.Abadie
Fixes viewport issue in bloom setup pass with TAA upsample.
Change 3709623 by Rolando.Caloca
DR - vk - Missing barrier for reading into cpu
Change 3709633 by Rolando.Caloca
DR - vk - Compile fix
Change 3710454 by Mark.Satterthwaite
Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D.
- Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load.
- RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders).
- Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>.
- Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics.
- Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore.
- Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way).
- STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else.
- Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes.
Change 3710456 by Mark.Satterthwaite
Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups.
Change 3710457 by Mark.Satterthwaite
DX11 texture formats for Mac Metal please!
Change 3710480 by Mark.Satterthwaite
Permit RHI thread and parallel execution in Mac -game mode again.
Change 3710522 by Mark.Satterthwaite
MSVC type-mismatch error fixes.
Change 3710580 by Mark.Satterthwaite
Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10).
Change 3710616 by Mark.Satterthwaite
Missing file.
Change 3712972 by Guillaume.Abadie
Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass.
Change 3712979 by Guillaume.Abadie
Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale.
Change 3713406 by Mark.Satterthwaite
Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now.
Change 3713494 by Richard.Wallis
Fix for hitch when PIE unloading sublevel. PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads. However they all just need to read the data not change it. Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention.
Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too.
Also tested again repro in linked bug UE-24711.
#jira UE-40533
Change 3713612 by Mark.Satterthwaite
Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744
This should make Light Propagation Volumes potentially viable on non-Microsoft platforms.
Change 3713623 by Mark.Satterthwaite
Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal.
Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be.
Change 3713636 by Mark.Satterthwaite
Enable LPVs for Mac Metal.
- Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation.
- MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible.
- Turn on LPVs for Metal as it works now.
Change 3714049 by Guillaume.Abadie
Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer.
Change 3714306 by Guillaume.Abadie
Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries.
Change 3714714 by Mark.Satterthwaite
Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains.
Change 3716104 by Mark.Satterthwaite
Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update.
Change 3716120 by Mark.Satterthwaite
Silence static-analysis.
Change 3716158 by Guillaume.Abadie
Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3716271 by Daniel.Wright
Lightmass correctness fixes
* After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions
* Photon density trimming intended for direct photons was affecting indirect photons as well. This caused high noise for point / spot lights with a large attenuation radius. Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality.
* Removed legacy fudge factor on point / spot light photon energy
* Spotlights no longer emit based on indirect photon paths. Fixes excessive photon energy from spot lights as they were emitting outside of the cone.
* Fixed photons computing one more bounce than requested.
* Added an option to use the Radiosity solver for all multibounce, replacing photons. Useful as a reference but generally too much noise indoors.
* Fixed visualization of photons without final gather
Change 3716434 by Mark.Satterthwaite
Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds.
Change 3716491 by Chris.Bunner
Fixing up an edge-case on a recent optimization.
Change 3716611 by Guillaume.Abadie
Allows secondary screen percentage >= 100%.
Change 3716977 by Guillaume.Abadie
Back out changelist 3716158 to unblock QA pass.
#jira UE-51580
Change 3717111 by Arne.Schober
Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/
Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small.
CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready.
Change 3717127 by Mark.Satterthwaite
Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice.
Change 3717178 by Mark.Satterthwaite
Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken.
#jira UE-51583
Change 3717476 by Marcus.Wassmer
Fix PS4 compile. funciton local statics not allowed on PSSL
Also enabled the new atomics method for LPVs for all platforms
Change 3717502 by Arne.Schober
DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries)
Change 3717601 by Arne.Schober
DR - Move cycle counter into more meaningfull locations.
Change 3718054 by Guillaume.Abadie
Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method.
Change 3718066 by Guillaume.Abadie
Reland: Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3718589 by Mark.Satterthwaite
Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled).
Change 3718633 by Guillaume.Abadie
Fixes temporal instability issue of TAA upsample with secondary screen percentage.
Change 3718658 by Arne.Schober
DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on.
Change 3718818 by Mark.Satterthwaite
Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero.
Change 3719004 by Guillaume.Abadie
Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample.
Change 3719375 by Mark.Satterthwaite
Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression.
Change 3720099 by Mark.Satterthwaite
Make the left-hand arguments work in airdiff.
Change 3720413 by Mark.Satterthwaite
Support standalone compute shaders in the mtlpp compiler test app.
Change 3721232 by Mark.Satterthwaite
No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available.
Change 3721244 by Mark.Satterthwaite
Fix incorrect enum handling for Metal features due to overflow.
#jira UE-51643
Change 3721338 by Mark.Satterthwaite
MIssing file from 3721232
Change 3721818 by Mark.Satterthwaite
Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead.
Change 3722139 by Arne.Schober
DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one
#jira UE-51602
Change 3722165 by Rolando.Caloca
DR - Default -opengl to GL4
Change 3722682 by Guillaume.Abadie
Fixes wrong clear color in SSR important for VR that has a HMD mesh.
Change 3722766 by Rolando.Caloca
DR - Fix static analysis
Change 3722943 by Mark.Satterthwaite
Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders.
Change 3723100 by Mark.Satterthwaite
Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version.
Change 3723121 by Mark.Satterthwaite
Fix build error.
Change 3723245 by Daniel.Wright
Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling
Reflection captures with no data use an array index of 0, instead of -1. Might avoid reading uninitialized memory on PS4.
Change 3723387 by Arne.Schober
DR - Metal already applies the instance and vertexoffset in the shader
Change 3723393 by Mark.Satterthwaite
More fixes to the mtlpp compiler test application.
Change 3725258 by Guillaume.Abadie
Improves fast TAA upsample shader permutation by 15% on console.
Change 3725555 by Chris.Bunner
[Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200.
Change 3726845 by Guillaume.Abadie
Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss.
#jira UE-51428
Change 3728014 by Guillaume.Abadie
Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision.
#jira UE-51428
Change 3728053 by Richard.Wallis
Duplicate CL 3727958: Crash fix when using shared material libraries. Initial shader code library offset is not zero'd so all entry offsets were garbage.
Change 3728339 by Guillaume.Abadie
Adds project setting for TAA upample, and officialises TAA upsampling CVar.
Change 3728549 by Guillaume.Abadie
CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers.
Change 3728752 by nick.bullard
Built and re-saved QA-MeshPaint
#jira UE-50978
Change 3728775 by Guillaume.Abadie
Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage.
Change 3729224 by Uriel.Doyon
Hidden levels now keep their last build data when using lighting scenarios.
Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios.
#jira UE-40454
#jira UE-38131
Change 3729243 by Marcus.Wassmer
Update Ansel to 1.4
#github 4159
#jira UE-51545
Change 3729325 by zachary.wilson
Adding indirect lighting to TM-LightingChannels
#jira UE-47069
Change 3729485 by zachary.wilson
Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof.
#jira UE-50972
Change 3729629 by Uriel.Doyon
Fixed crash when using debug view modes.
Fixed d3ddebug error when clearing quad overdraw buffer.
#jira UE-51836
Change 3730053 by Guillaume.Abadie
Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera.
Change 3730308 by Guillaume.Abadie
Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization.
Change 3730355 by Guillaume.Abadie
Sacrifices consistency for good cvar name for TAA upsample.
Change 3731403 by Daniel.Wright
Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values.
Change 3731404 by Daniel.Wright
Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture'
Change 3731407 by Daniel.Wright
Must opt-in for FDistanceFieldSceneData::VerifyIntegrity
Change 3731517 by Guillaume.Abadie
Freezes dynamic resolution heuristic when doing pause.
Change 3732168 by Guillaume.Abadie
Renames TAA upsampling cvar.
Change 3732295 by Guillaume.Abadie
Lets the scene texture's size and texel size return the correct sizes after TAA upsample.
Change 3732313 by Guillaume.Abadie
Implements SceneTexture material expressions' automated tests.
Change 3734928 by Guillaume.Abadie
Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic.
Change 3735966 by Ryan.Vance
Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac.
Change 3736104 by Guillaume.Abadie
Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way.
Change 3736346 by Daniel.Wright
Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results. Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred.
Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly
Change 3736348 by Daniel.Wright
Forward shadowing of directional light for translucency
* Static shadowing and CSM supported with minimal filtering (1 PCF)
* Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode. Forward renderer: affects all translucency.
Change 3736650 by Rolando.Caloca
DR - vk - # of desc pools
Change 3737985 by Guillaume.Abadie
Fixes pixel inspector with primary and secondary screen percentage.
Change 3738638 by Michael.Lentine
Compile fix due to unclear operator precendence.
Change 3739417 by Daniel.Wright
Fixed a few issues with irradiance cache visualization
Change 3739447 by Daniel.Wright
Skip forward static shadowing in projects with static lighting disabled
Change 3739595 by Daniel.Wright
ConditionalPostLoad DistanceFieldReplacementMesh. Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use.
Change 3739598 by Daniel.Wright
Disable capsules shadows on lowest shadow quality
Change 3739611 by Daniel.Wright
Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features
New Lighting Feature show flags for RTDF shadows and Capsule Shadows
Change 3740516 by Guillaume.Abadie
Fixes VR editor rendering only on eye with TAA upsample.
#jira UE-52016
Change 3740580 by Guillaume.Abadie
Fixes chromatic aberration with TAA upsample and multiple view rendering.
#jira UE-51993
Change 3740588 by Guillaume.Abadie
Gives to FXAA a more explicit draw event name for easier UDN support.
Change 3740845 by Michael.Lentine
Fix shipping build.
Change 3740903 by Guillaume.Abadie
Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor.
Change 3741355 by Daniel.Wright
Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component
Change 3741357 by Daniel.Wright
More info on volumetric lightmap import failure
Change 3742535 by Ryan.Vance
Fix for view rect changes.
Change 3743282 by Guillaume.Abadie
Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react.
Change 3743559 by Michael.Lentine
Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated.
Change 3743679 by Guillaume.Abadie
Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144.
#jira UE-51569
Change 3743906 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: Fix for clamping sampled HDR render target values by setting ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax
Change 3744096 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading.
Change 3744253 by Guillaume.Abadie
Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages.
Change 3744953 by Chris.Bunner
Crash workaround.
Change 3745628 by Marcus.Wassmer
Temporarily disable recalctangent normal-smoothing
#jira UE-52166
Change 3745942 by Guillaume.Abadie
Fixes a todo in FCommonViewportClient
Change 3746005 by Guillaume.Abadie
Fixes stat UnitGraph on high DPI monitor.
Change 3746029 by Guillaume.Abadie
Oups.... Fix compilation. :D
Change 3748322 by Guillaume.Abadie
Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands.
Change 3748346 by Chris.Bunner
Potential static analysis fix.
Change 3748349 by Chris.Bunner
Mac feature support flag fix on versions < 10.30.
Change 3749336 by Guillaume.Abadie
Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel!
Change 3749374 by Guillaume.Abadie
Adds a black background on the stat unitgraph so timing curves can be seen no matter the content.
Change 3749437 by Guillaume.Abadie
Final UI polish up for `stat unitgraph`
Change 3749719 by Guillaume.Abadie
Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage.
Change 3750243 by Chris.Bunner
Increasing controller's automated test timeout to allow for slower machines to complete the longest tests.
#jira UE-48494, UE-51907
Change 3750728 by Guillaume.Abadie
Fixes merge collision in chromatic aberration.
#jira UE-52282
Change 3750791 by Guillaume.Abadie
Fixes chromatic baerration R and G channel swap.
Change 3751246 by Guillaume.Abadie
Bypasses screen percentage apply with mobile LDR rendering.
#jira UE-52089
Change 3752624 by Guillaume.Abadie
Simplies dyn res state's event interface to a single virtual method.
Change 3753766 by Chris.Bunner
Rebuilt volumetric baked lighting test map and updated screenshots.
#jira UE-52322
Change 3755108 by Guillaume.Abadie
Fixes a bug where default dynamic resolution state was created at startup of server build.
#jira UE-52345
Change 3755267 by Mark.Satterthwaite
Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems.
#jira UE-52301
Change 3755811 by Chris.Bunner
Disable some new logging that was causing a stack overflow during EnginePreInit.
#jira UE-52345
Change 3756983 by Mark.Satterthwaite
Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities.
#jira UE-52073
Change 3757156 by Guillaume.Abadie
Fixes editor compositing with wireframe rendering.
#jira UE-52017
Change 3757435 by Mark.Satterthwaite
Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer.
#jira UE-52327
Change 3757523 by Uriel.Doyon
Fixed d3ddebug warning with unused inputs
Change 3758318 by Guillaume.Abadie
Cleaner fix for mobile scene captures.
#jira UE-52327
Change 3759541 by Mark.Satterthwaite
Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes.
Change 3695086 by Guillaume.Abadie
Render thread dynamic resolution & TAA upsample.
Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/...
New features breakdown:
- TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles;
- Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly;
- Material texture per view mip bias to produce sharper images with TAA upsample;
- Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics);
- Dynamic resolution in PIE and game builds;
- Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can exactly associate GPU frame times with screen percentages in its history;
- Game user settings to enable/disable dynamic resolution;
- In editor viewport screen percentage config to previsualise and test content at different screen percentage.
Fixes:
- Various fixes for algorithms producing different outputs at different screen percentage.
- Various fixes for algorithms sampling outside view rects.
Refactors:
- TAA shader
- Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing.
Aknowledgements:
- VR plugins are broken
- DFAO still have some artifacts
Premiliminary review: Marcus.Wassmer
Review for TAA refactor and TAA upsample shader: Brian.Karis
Review for dynamic resolution: Brian.Karis
[CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
RENDERCORE_API void QuantizeSceneBufferSize ( const FIntPoint & InBufferSize , FIntPoint & OutBufferSize )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3231693)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3219796 on 2016/12/02 by Rolando.Caloca
DR - vk - Increase timeout to 60ms
Change 3219884 on 2016/12/02 by Daniel.Wright
Assert to help track down rare crash locking capsule indirect shadow vertex buffer
Change 3219885 on 2016/12/02 by Daniel.Wright
Fixed saving a package that doesn't exist on disk but exists in p4 at a newer revision when the user chooses 'Mark Writable'
Change 3219886 on 2016/12/02 by Daniel.Wright
Don't create projected shadows when r.ShadowQuality is 0
* Fixes crash in the forward path trying to render shadows
* In the deferred path, the shadowmap was still being rendered and only the projection skipped, now all cost will be skipped
Change 3219887 on 2016/12/02 by Daniel.Wright
Changed ClearRenderTarget2D default alpha to 1, which is necessary for correct compositing
Change 3219893 on 2016/12/02 by Daniel.Wright
AMD AGS library with approved TPS
Disabled DFAO on AMD pre-GCN PC video cards to workaround a driver bug which won't be fixed (Radeon 6xxx and below)
Change 3219913 on 2016/12/02 by Daniel.Wright
Level unload of a lighting scenario propagates the lighting scenario change - fixes crash when precomputed lighting volume data gets unloaded
Change 3220029 on 2016/12/02 by Daniel.Wright
Async shader compiling now recreates scene proxies which are affected by the material which was compiled. This fixes crashes which were occuring as proxies cache various material properties, but applying compiled materials would not update these cached properties (bRequiresAdjacencyInformation).
* A new ensure has been added in FMeshElementCollector::AddMesh and FBatchingSPDI::DrawMesh to catch attempts to render with a material not reported in GetUsedMaterials
* Fixed UParticleSystemComponent::GetUsedMaterials and UMaterialBillboardComponent::GetUsedMaterials
* FMaterialUpdateContext should be changed to use the same pattern, but that hasn't been done yet
Change 3220108 on 2016/12/02 by Daniel.Wright
Fixed shadowmap channel assignment for stationary lights which are not in a lighting scenario level, when a lighting scenario level is present
Change 3220504 on 2016/12/03 by Mark.Satterthwaite
Metal Desktop Tessellation support from Unicorn.
- Apple: Metal tessellation support added to MetalShaderFormat, MetalRHI and incl. changes to engine runtime/shaders for Desktop renderer and enabled in ElementalDemo by default (OS X 10.11 will run SM4).
- Epic: Support for different Metal shader standards on Mac, iOS & tvOS which required moving some RHI functions around as this is a project setting and not a compile-time constant.
- Epic: Fragment shader UAV support, which is also tied to newer Metal shader standard like Tessellation.
- Epic: Significant refactor of MetalRHI's internals to clearly separate state-caching from render-pass management and command-encoding.
- Epic: Internal MetalRHI validation code is now cleanly separated out into custom implementations of the Metal @protocol's and is on by default.
- Epic: Various fixes to Layered Rendering for Metal.
- Omits Mobile Tessellation support which needs further revision.
Change 3220881 on 2016/12/04 by Mark.Satterthwaite
Compiles fixes for iOS & static analysis fixes from Windows.
Change 3221180 on 2016/12/05 by Guillaume.Abadie
Avoid compiling PreviousFrameSwitch's both Current Frame and Previous Frame inputs every time.
Change 3221217 on 2016/12/05 by Chris.Bunner
More NVAPI warning fixups.
Change 3221219 on 2016/12/05 by Chris.Bunner
When comparing overriden properties used to force instance recompilation we need to check against the base material, not assume the immediate parent.
#jira UE-37792
Change 3221220 on 2016/12/05 by Chris.Bunner
Exported GetAllStaticSwitchParamNames and GetAllStaticComponentMaskParamNames.
#jira UE-35132
Change 3221221 on 2016/12/05 by Chris.Bunner
PR #2785: Fix comment typo in RendererInterface.h (Contributed by dustin-biser)
#jira UE-35760
Change 3221223 on 2016/12/05 by Chris.Bunner
Default to include dev-code when compiling material preview stats.
#jira UE-20321
Change 3221534 on 2016/12/05 by Rolando.Caloca
DR - Added FDynamicRHI::GetName()
Change 3221833 on 2016/12/05 by Chris.Bunner
Set correct output extent on PostProcessUpscale (allows users to extend chain correctly).
#jira UE-36989
Change 3221852 on 2016/12/05 by Chris.Bunner
32-bit/ch EXR screenshot and frame dump output.
Fixed row increment bug in 128-bit/px surface format readback.
#jira UE-37962
Change 3222059 on 2016/12/05 by Rolando.Caloca
DR - vk - Fix memory type not found
Change 3222104 on 2016/12/05 by Rolando.Caloca
DR - Lambdaize
- Added quicker method to check if system textures are initialized
Change 3222290 on 2016/12/05 by Mark.Satterthwaite
Trivial fixes to reporting Metal shader pipeline errors - need to check if Hull & Domain exist.
Change 3222864 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak when exiting
Change 3222873 on 2016/12/06 by Rolando.Caloca
DR - vk - Minor info to help track down leaks
Change 3222875 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak with VisualizeTexture
#jira UE-39360
Change 3223226 on 2016/12/06 by Chris.Bunner
Static analysis warning workaround.
Change 3223235 on 2016/12/06 by Ben.Woodhouse
Integrate from NREAL: Set a custom projection matrix on a SceneCapture2D
Change 3223343 on 2016/12/06 by Chris.Bunner
Moved HLOD persistent data to viewstate to fix per-view compatability.
#jira UE-37539
Change 3223349 on 2016/12/06 by Chris.Bunner
Fixed HLOD with FreezeRendering command.
#jira UE-29839
Change 3223371 on 2016/12/06 by Michael.Trepka
Removed obsolete check() in FMetalSurface constructor
Change 3223450 on 2016/12/06 by Chris.Bunner
Added explicit ScRGB output device selection rather than Nvidia-only hardcoded checks. Allows easier support for Mac and other devices moving forward.
Change 3223638 on 2016/12/06 by Michael.Trepka
Restored part of the check() in FMetalSurface constructor removed in CL 3223371
Change 3223642 on 2016/12/06 by Mark.Satterthwaite
Experimental Metal EDR/HDR output support for Mac (iOS/tvOS need custom formats & shaders so they are not supported yet).
- Only available on macOS Sierra (10.12) for Macs with HDR displays (e.g. Retina iMacs).
- Enable with -metaledr command-line argument as it is off-by-default.
- Sets up the CAMetalLayer & the back-buffer for RGBA_FP16 output on Mac using DCI-P3 as the color gamut and ACES 1000 nit ScRGB output encoding.
Change 3223830 on 2016/12/06 by Rolando.Caloca
DR - vk - Better error when finding an invalid Vulkan driver
#jira UE-37495
Change 3223869 on 2016/12/06 by Rolando.Caloca
DR - vk - Reuse fences
Change 3223906 on 2016/12/06 by Guillaume.Abadie
Fix alpha through TempAA artifact causing a small darker edge layouts.
Change 3224199 on 2016/12/06 by Mark.Satterthwaite
Fix a dumb copy-paste error from the HDR changes to Metal.
Change 3224220 on 2016/12/06 by Mark.Satterthwaite
Fix various errors with Metal UAV & Render-Pass Restart support so that we can use the Pixel Shader culling for DistanceField effects.
- Unfortunately Metal requires that a texture be bound to start a render-pass, so reuse the dummy depth-stencil surface from the problematic editor preview tile rendering.
Change 3224236 on 2016/12/06 by Mark.Satterthwaite
IWYU CIS compile fix for iOS.
Change 3224366 on 2016/12/06 by Mark.Satterthwaite
Simplify some of the changes from CL# 3224220 so that we don't perform unnecessary clears.
- If the RenderPass is broken to issue compute or blit operations then treat the cached RenderTargetsInfo as invalid, unless the RenderPass is restarted.
- This guarantees that we don't erroneously ignore calls to SetRenderTargets if the calling code issues a dispatch between two RenderPasses that use the same RenderTargetsInfo.
Change 3224416 on 2016/12/06 by Uriel.Doyon
New default implementation for UPrimitiveComponent::GetStreamingTextureInfo using a conservative heuristic where the textures are stretched across the bounds.
Optimized UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval by not handling registered components with no proxy (essentially hidden game / collision primitives).
Added blueprint support for texture streaming built data through FStaticMeshComponentInstanceData.
Fix for material texture streaming data not being available on some cooked builds.
Enabled split requests on all texture load requests (first loading everything visible and then loaded everything not visible).
This is controlled by "r.Streaming.MinMipForSplitRequest" which defines the minimum mip for which to allow splitting.
Forced residency are now loaded in two steps (visible, then forced), improving reactiveness.
Updated "stat streaming" to include "UnkownRefMips" which represent texture with no known component referencing them,
and also "LastRenderTimeMips" which related to timed primitives.
Changed "Forced Mips" so that it only shows mips that are loaded become of forced residency.
"Texture Streaming Build" now updates the map check after execution.
Removed Orphaned texture logic as this has become irrelevant with the latest retention priority logic.
Updated "r.streaming.usenewmetrics" so that it shows behavior before and after 4.12 improvements.
Change 3224532 on 2016/12/07 by Uriel.Doyon
Integrated CL 3223965 :
Building texture streaming data for materials does not wait for pending shaders to finish compilation anymore.
Added more options to allow the user to cancel this build also.
Change 3224714 on 2016/12/07 by Ben.Woodhouse
Cherry pick CL 3223972 from //fortnite/main:
Disable Geometry shader onchip on XB1. This saves 4ms for a single shadow casting point light @ 512x512 (4.8ms to 1.8ms)
Change 3224715 on 2016/12/07 by Ben.Woodhouse
New version of d3dx12.h from Microsoft which incorporates my suggested static analysis fixes. This avoids us diverging from the official version
Change 3224975 on 2016/12/07 by Rolando.Caloca
DR - vk - Dump improvements
Change 3225012 on 2016/12/07 by Rolando.Caloca
DR - Show warning if trying to use num samples != (1,2,4,8,16)
Change 3225126 on 2016/12/07 by Chris.Bunner
Added 'force 128-bit rendering pipeline' to high-res screenshot tool.
#jira UE-39345
Change 3225449 on 2016/12/07 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3225485 on 2016/12/07 by Chris.Bunner
Moved QuantizeSceneBufferSize to RenderCore and added call for PostProcess settings. Fixes screenpercentage out-of-bounds reads in some cases.
#jira UE-19394
Change 3225486 on 2016/12/07 by Chris.Bunner
Only disable TAA during HighResScreenshots if we don't have a reasonable frame-delay enabled.
Change 3225505 on 2016/12/07 by Daniel.Wright
Fixed exponential height fog disappearing with no skybox
Change 3225655 on 2016/12/07 by Benjamin.Hyder
Updating TM-Shadermodels to include Translucent lighting, Two sided, updated cloth animation, and adjusted lighting.
Change 3225668 on 2016/12/07 by Chris.Bunner
Dirty owning packages when user manually forces regeneration of all reflection captures.
#jira UE-38759
Change 3226139 on 2016/12/07 by Rolando.Caloca
DR - Fix recompute tangents disabling skin cache
- Make some macros into lambdas
#jira UE-39143
Change 3226212 on 2016/12/07 by Daniel.Wright
Features which require a full prepass use DDM_AllOpaque instead of DDM_AllOccluders, which can be skipped if the component has bUseAsOccluder=false
Change 3226213 on 2016/12/07 by Daniel.Wright
Scene Capture 2D can specify a global clip plane, which is useful for portals
* Requires the global clip plane project setting to be enabled
Change 3226214 on 2016/12/07 by Daniel.Wright
Improved deferred shadowing with MSAA by upsampling light attenuation intelligently in the base pass
* If the current fragment's depth doesn't match what was used for deferred shadowing, the neighbor (cross pattern) with the nearest depth's shadowing is used
* Edge artifacts can still occur where the upsample fails or the shadow factor was computed per-sample due to depth / stencil testing
* Indirect Occlusion from capsule shadows also uses the nearest depth neighbor UV for no extra cost
* Base pass on 970 GTX 1.69ms -> 1.85ms (.16ms) in RoboRecall
Change 3226258 on 2016/12/07 by Rolando.Caloca
DR - Typo fix
Change 3226259 on 2016/12/07 by Rolando.Caloca
DR - compile fix
#jira UE-39143
Change 3226932 on 2016/12/08 by Chris.Bunner
Re-saved Infiltrator maps to update reflection captures.
#jira UE-38759
Change 3227063 on 2016/12/08 by Mark.Satterthwaite
For Metal platforms ONLY temporarily disable USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING to avoid UE-37436 while the Nvidia driver team investigate why this doesn't work for them but does for the others. This won't affect non-Metal platforms and the intent is to revert this prior to 4.16 provided we can work through the problem with Nvidia.
#jira UE-37436
Change 3227120 on 2016/12/08 by Gil.Gribb
Merging //UE4/Dev-Main@3226895 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3227211 on 2016/12/08 by Arne.Schober
DR - UE-38585 - Fixing crash where HierInstStaticMesh duplication fails. Also reverting the fix from UE-28189 which is redundant.
Change 3227257 on 2016/12/08 by Marc.Olano
Extension to PseudoVolumeTexture for more flexible layout
Change by ryan.brucks
Change 3227286 on 2016/12/08 by Rolando.Caloca
DR - Fix crash when using custom expressions and using reserved keywords
#jira UE-39311
Change 3227376 on 2016/12/08 by Mark.Satterthwaite
Must not include a private header inside the MenuStack public header as that causes compile errors in plugins.
Change 3227415 on 2016/12/08 by Mark.Satterthwaite
Fix shader compilation due to my disabling of USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING on Metal - InstancedCompositeTileReflectionCaptureIndices needs to be defined even though Metal doesn't support instanced-stereo rendering.
Change 3227516 on 2016/12/08 by Daniel.Wright
Implemented UWidgetComponent::GetUsedMaterials
Change 3227521 on 2016/12/08 by Guillaume.Abadie
Fixes post process volume's indirect lighting color.
#jira UE-38888
Change 3227567 on 2016/12/08 by Marc.Olano
New upscale filters: Lanczos-2 (new default), Lanczos-3 and Gaussian Unsharp Mask
Change 3227628 on 2016/12/08 by Daniel.Wright
Removed redundant ResolveSceneDepthTexture from the merge
Change 3227635 on 2016/12/08 by Daniel.Wright
Forward renderer supports shadowing from movable lights and light functions
* Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed
* Light functions only work on shadow casting lights since they need a shadowmap channel to be assigned
Change 3227660 on 2016/12/08 by Rolando.Caloca
DR - vk - Fix r.MobileMSAA on Vulkan
- r.MobileMSAA is now read-only (to be fixed on 4.16)
- Show time for PSO creation hitches
#jira UE-39184
Change 3227704 on 2016/12/08 by Mark.Satterthwaite
Fix Mac HDR causing incorrect output color encoding being used, HDR support is now entirely off unless you pass -metaledr which will enable it regardless of whether the current display supports HDR (as we haven't written the detection code yet). Fixed the LUT/UI compositing along the way - Mac Metal wasn't using volume LUT as it should have been, RHISupportsVertexShaderLayer now correctly returns false for non-Mac Metal platforms.
Change 3227705 on 2016/12/08 by Daniel.Wright
Replaced built-in samplers in the nearest depth translucency upsample because the built-in samplers are no longer bound on PC (cl 2852426)
Change 3227787 on 2016/12/08 by Chris.Bunner
Added extent clear to motion blur pass to catch misized buffers bringing in errors.
Added early out to clear call when excluded region matches RT region.
#jira UE-39437
Change 3228177 on 2016/12/08 by Marc.Olano
Fix DCC sqrt(int) error
Change 3228285 on 2016/12/08 by Chris.Bunner
Back out changelist 3225449.
#jira UE-39528
Change 3228680 on 2016/12/09 by Gil.Gribb
Merging //UE4/Dev-Main@3228528 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3228940 on 2016/12/09 by Mark.Satterthwaite
Editor fixes for 4.15:
- PostProcessTonemap can't fail to bind a texture to the ColorLUT or the subsequent rendering will be garbage: the changes for optimising stereo rendering forgot to account for the Editor's use of Views without States for the asset preview thumbnails. Amended the CombineLUT post-processing to allocate a local output texture when there's no ViewState and read from this when this situation arises which makes everything function again.
- Don't start render-passes without a valid render-target-array in MetalRHI.
Change 3228950 on 2016/12/09 by Mark.Satterthwaite
Make GPUSkinCache run on Mac Metal - it wasn't working because it was forcibly disabled on all platforms but for Windows D3D 11.
- Fixed the Skeleton editor tree trying to access a widget before it has been constructed.
- Enable GPUSkinCache for Metal SM5: doesn't render correctly, even on AMD, so needs Radar's filing and investigation.
#jira UE-39256
Change 3229013 on 2016/12/09 by Mark.Satterthwaite
Further tidy up in SSkeletonTreeView as suggested by Nick.A.
Change 3229101 on 2016/12/09 by Chris.Bunner
Log compile error fix and updated cvar comments.
Change 3229236 on 2016/12/09 by Ben.Woodhouse
XB1 D3D11 and D3D12: Use the DXGI frame statistics to get accurate GPU time unaffected by bubbles
Change 3229430 on 2016/12/09 by Ben.Woodhouse
PR #2680: Optimized histogram generation. (Contributed by PjotrSvetachov)
Profiled on nvidia 980GTX (2x faster), and on XB1 (marginally faster)
Change 3229580 on 2016/12/09 by Marcus.Wassmer
DepthBoundsTest for AMD.
Change 3229701 on 2016/12/09 by Michael.Trepka
Changed "OS X" to "macOS" in few places where we display it and updated the code that asks users to update to latest version to check for 10.12.2
Change 3229706 on 2016/12/09 by Chris.Bunner
Added GameUserSettings controls for HDR display output.
Removed Metal commandline as this should replace the need for it.
Change 3229774 on 2016/12/09 by Michael.Trepka
Disabled OpenGL on Mac. -opengl is now ignored, we always use Metal. On old Macs that do not support Metal we show a message saying that the app requires Metal and exit.
Change 3229819 on 2016/12/09 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3229948 on 2016/12/09 by Rolando.Caloca
DR - Fix d3d debug error
#jira UE-39589
Change 3230341 on 2016/12/11 by Mark.Satterthwaite
Don't fatally assert that the game-thread stalled waiting for the rendering thread in the Editor executable, even when running -game as the rendering thread can take a while to respond if shaders need to be compiled.
#jira UE-39613
Change 3230860 on 2016/12/12 by Marcus.Wassmer
Experimental Nvidia AFR support.
Change 3230930 on 2016/12/12 by Mark.Satterthwaite
Disable RHICmdList state-caching on Mac - Metal already does this internally and depends on receiving all state changes in order to function.
Change 3231252 on 2016/12/12 by Marcus.Wassmer
Fix NumGPU detection. (SLI only crash)
Change 3231486 on 2016/12/12 by Mark.Satterthwaite
Fix a stupid mistake in MetalStateCache::CommitResourceTable that would unnecessarily rebind samplers.
Change 3231661 on 2016/12/12 by Mark.Satterthwaite
Retain the RHI samplers in MetalRHI to guarantee lifetime.
[CL 3231696 by Gil Gribb in Main branch]
2016-12-12 17:47:42 -05:00
{
2019-01-30 21:24:04 -05:00
// Ensure sizes are dividable by the ideal group size for 2d tiles to make it more convenient.
2019-03-15 05:46:39 -04:00
const uint32 DividableBy = 4 ;
2019-01-30 21:24:04 -05:00
check ( DividableBy % 4 = = 0 ) ; // A lot of graphic algorithms where previously assuming DividableBy == 4.
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3231693)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3219796 on 2016/12/02 by Rolando.Caloca
DR - vk - Increase timeout to 60ms
Change 3219884 on 2016/12/02 by Daniel.Wright
Assert to help track down rare crash locking capsule indirect shadow vertex buffer
Change 3219885 on 2016/12/02 by Daniel.Wright
Fixed saving a package that doesn't exist on disk but exists in p4 at a newer revision when the user chooses 'Mark Writable'
Change 3219886 on 2016/12/02 by Daniel.Wright
Don't create projected shadows when r.ShadowQuality is 0
* Fixes crash in the forward path trying to render shadows
* In the deferred path, the shadowmap was still being rendered and only the projection skipped, now all cost will be skipped
Change 3219887 on 2016/12/02 by Daniel.Wright
Changed ClearRenderTarget2D default alpha to 1, which is necessary for correct compositing
Change 3219893 on 2016/12/02 by Daniel.Wright
AMD AGS library with approved TPS
Disabled DFAO on AMD pre-GCN PC video cards to workaround a driver bug which won't be fixed (Radeon 6xxx and below)
Change 3219913 on 2016/12/02 by Daniel.Wright
Level unload of a lighting scenario propagates the lighting scenario change - fixes crash when precomputed lighting volume data gets unloaded
Change 3220029 on 2016/12/02 by Daniel.Wright
Async shader compiling now recreates scene proxies which are affected by the material which was compiled. This fixes crashes which were occuring as proxies cache various material properties, but applying compiled materials would not update these cached properties (bRequiresAdjacencyInformation).
* A new ensure has been added in FMeshElementCollector::AddMesh and FBatchingSPDI::DrawMesh to catch attempts to render with a material not reported in GetUsedMaterials
* Fixed UParticleSystemComponent::GetUsedMaterials and UMaterialBillboardComponent::GetUsedMaterials
* FMaterialUpdateContext should be changed to use the same pattern, but that hasn't been done yet
Change 3220108 on 2016/12/02 by Daniel.Wright
Fixed shadowmap channel assignment for stationary lights which are not in a lighting scenario level, when a lighting scenario level is present
Change 3220504 on 2016/12/03 by Mark.Satterthwaite
Metal Desktop Tessellation support from Unicorn.
- Apple: Metal tessellation support added to MetalShaderFormat, MetalRHI and incl. changes to engine runtime/shaders for Desktop renderer and enabled in ElementalDemo by default (OS X 10.11 will run SM4).
- Epic: Support for different Metal shader standards on Mac, iOS & tvOS which required moving some RHI functions around as this is a project setting and not a compile-time constant.
- Epic: Fragment shader UAV support, which is also tied to newer Metal shader standard like Tessellation.
- Epic: Significant refactor of MetalRHI's internals to clearly separate state-caching from render-pass management and command-encoding.
- Epic: Internal MetalRHI validation code is now cleanly separated out into custom implementations of the Metal @protocol's and is on by default.
- Epic: Various fixes to Layered Rendering for Metal.
- Omits Mobile Tessellation support which needs further revision.
Change 3220881 on 2016/12/04 by Mark.Satterthwaite
Compiles fixes for iOS & static analysis fixes from Windows.
Change 3221180 on 2016/12/05 by Guillaume.Abadie
Avoid compiling PreviousFrameSwitch's both Current Frame and Previous Frame inputs every time.
Change 3221217 on 2016/12/05 by Chris.Bunner
More NVAPI warning fixups.
Change 3221219 on 2016/12/05 by Chris.Bunner
When comparing overriden properties used to force instance recompilation we need to check against the base material, not assume the immediate parent.
#jira UE-37792
Change 3221220 on 2016/12/05 by Chris.Bunner
Exported GetAllStaticSwitchParamNames and GetAllStaticComponentMaskParamNames.
#jira UE-35132
Change 3221221 on 2016/12/05 by Chris.Bunner
PR #2785: Fix comment typo in RendererInterface.h (Contributed by dustin-biser)
#jira UE-35760
Change 3221223 on 2016/12/05 by Chris.Bunner
Default to include dev-code when compiling material preview stats.
#jira UE-20321
Change 3221534 on 2016/12/05 by Rolando.Caloca
DR - Added FDynamicRHI::GetName()
Change 3221833 on 2016/12/05 by Chris.Bunner
Set correct output extent on PostProcessUpscale (allows users to extend chain correctly).
#jira UE-36989
Change 3221852 on 2016/12/05 by Chris.Bunner
32-bit/ch EXR screenshot and frame dump output.
Fixed row increment bug in 128-bit/px surface format readback.
#jira UE-37962
Change 3222059 on 2016/12/05 by Rolando.Caloca
DR - vk - Fix memory type not found
Change 3222104 on 2016/12/05 by Rolando.Caloca
DR - Lambdaize
- Added quicker method to check if system textures are initialized
Change 3222290 on 2016/12/05 by Mark.Satterthwaite
Trivial fixes to reporting Metal shader pipeline errors - need to check if Hull & Domain exist.
Change 3222864 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak when exiting
Change 3222873 on 2016/12/06 by Rolando.Caloca
DR - vk - Minor info to help track down leaks
Change 3222875 on 2016/12/06 by Rolando.Caloca
DR - Fix mem leak with VisualizeTexture
#jira UE-39360
Change 3223226 on 2016/12/06 by Chris.Bunner
Static analysis warning workaround.
Change 3223235 on 2016/12/06 by Ben.Woodhouse
Integrate from NREAL: Set a custom projection matrix on a SceneCapture2D
Change 3223343 on 2016/12/06 by Chris.Bunner
Moved HLOD persistent data to viewstate to fix per-view compatability.
#jira UE-37539
Change 3223349 on 2016/12/06 by Chris.Bunner
Fixed HLOD with FreezeRendering command.
#jira UE-29839
Change 3223371 on 2016/12/06 by Michael.Trepka
Removed obsolete check() in FMetalSurface constructor
Change 3223450 on 2016/12/06 by Chris.Bunner
Added explicit ScRGB output device selection rather than Nvidia-only hardcoded checks. Allows easier support for Mac and other devices moving forward.
Change 3223638 on 2016/12/06 by Michael.Trepka
Restored part of the check() in FMetalSurface constructor removed in CL 3223371
Change 3223642 on 2016/12/06 by Mark.Satterthwaite
Experimental Metal EDR/HDR output support for Mac (iOS/tvOS need custom formats & shaders so they are not supported yet).
- Only available on macOS Sierra (10.12) for Macs with HDR displays (e.g. Retina iMacs).
- Enable with -metaledr command-line argument as it is off-by-default.
- Sets up the CAMetalLayer & the back-buffer for RGBA_FP16 output on Mac using DCI-P3 as the color gamut and ACES 1000 nit ScRGB output encoding.
Change 3223830 on 2016/12/06 by Rolando.Caloca
DR - vk - Better error when finding an invalid Vulkan driver
#jira UE-37495
Change 3223869 on 2016/12/06 by Rolando.Caloca
DR - vk - Reuse fences
Change 3223906 on 2016/12/06 by Guillaume.Abadie
Fix alpha through TempAA artifact causing a small darker edge layouts.
Change 3224199 on 2016/12/06 by Mark.Satterthwaite
Fix a dumb copy-paste error from the HDR changes to Metal.
Change 3224220 on 2016/12/06 by Mark.Satterthwaite
Fix various errors with Metal UAV & Render-Pass Restart support so that we can use the Pixel Shader culling for DistanceField effects.
- Unfortunately Metal requires that a texture be bound to start a render-pass, so reuse the dummy depth-stencil surface from the problematic editor preview tile rendering.
Change 3224236 on 2016/12/06 by Mark.Satterthwaite
IWYU CIS compile fix for iOS.
Change 3224366 on 2016/12/06 by Mark.Satterthwaite
Simplify some of the changes from CL# 3224220 so that we don't perform unnecessary clears.
- If the RenderPass is broken to issue compute or blit operations then treat the cached RenderTargetsInfo as invalid, unless the RenderPass is restarted.
- This guarantees that we don't erroneously ignore calls to SetRenderTargets if the calling code issues a dispatch between two RenderPasses that use the same RenderTargetsInfo.
Change 3224416 on 2016/12/06 by Uriel.Doyon
New default implementation for UPrimitiveComponent::GetStreamingTextureInfo using a conservative heuristic where the textures are stretched across the bounds.
Optimized UPrimitiveComponent::GetStreamingTextureInfoWithNULLRemoval by not handling registered components with no proxy (essentially hidden game / collision primitives).
Added blueprint support for texture streaming built data through FStaticMeshComponentInstanceData.
Fix for material texture streaming data not being available on some cooked builds.
Enabled split requests on all texture load requests (first loading everything visible and then loaded everything not visible).
This is controlled by "r.Streaming.MinMipForSplitRequest" which defines the minimum mip for which to allow splitting.
Forced residency are now loaded in two steps (visible, then forced), improving reactiveness.
Updated "stat streaming" to include "UnkownRefMips" which represent texture with no known component referencing them,
and also "LastRenderTimeMips" which related to timed primitives.
Changed "Forced Mips" so that it only shows mips that are loaded become of forced residency.
"Texture Streaming Build" now updates the map check after execution.
Removed Orphaned texture logic as this has become irrelevant with the latest retention priority logic.
Updated "r.streaming.usenewmetrics" so that it shows behavior before and after 4.12 improvements.
Change 3224532 on 2016/12/07 by Uriel.Doyon
Integrated CL 3223965 :
Building texture streaming data for materials does not wait for pending shaders to finish compilation anymore.
Added more options to allow the user to cancel this build also.
Change 3224714 on 2016/12/07 by Ben.Woodhouse
Cherry pick CL 3223972 from //fortnite/main:
Disable Geometry shader onchip on XB1. This saves 4ms for a single shadow casting point light @ 512x512 (4.8ms to 1.8ms)
Change 3224715 on 2016/12/07 by Ben.Woodhouse
New version of d3dx12.h from Microsoft which incorporates my suggested static analysis fixes. This avoids us diverging from the official version
Change 3224975 on 2016/12/07 by Rolando.Caloca
DR - vk - Dump improvements
Change 3225012 on 2016/12/07 by Rolando.Caloca
DR - Show warning if trying to use num samples != (1,2,4,8,16)
Change 3225126 on 2016/12/07 by Chris.Bunner
Added 'force 128-bit rendering pipeline' to high-res screenshot tool.
#jira UE-39345
Change 3225449 on 2016/12/07 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3225485 on 2016/12/07 by Chris.Bunner
Moved QuantizeSceneBufferSize to RenderCore and added call for PostProcess settings. Fixes screenpercentage out-of-bounds reads in some cases.
#jira UE-19394
Change 3225486 on 2016/12/07 by Chris.Bunner
Only disable TAA during HighResScreenshots if we don't have a reasonable frame-delay enabled.
Change 3225505 on 2016/12/07 by Daniel.Wright
Fixed exponential height fog disappearing with no skybox
Change 3225655 on 2016/12/07 by Benjamin.Hyder
Updating TM-Shadermodels to include Translucent lighting, Two sided, updated cloth animation, and adjusted lighting.
Change 3225668 on 2016/12/07 by Chris.Bunner
Dirty owning packages when user manually forces regeneration of all reflection captures.
#jira UE-38759
Change 3226139 on 2016/12/07 by Rolando.Caloca
DR - Fix recompute tangents disabling skin cache
- Make some macros into lambdas
#jira UE-39143
Change 3226212 on 2016/12/07 by Daniel.Wright
Features which require a full prepass use DDM_AllOpaque instead of DDM_AllOccluders, which can be skipped if the component has bUseAsOccluder=false
Change 3226213 on 2016/12/07 by Daniel.Wright
Scene Capture 2D can specify a global clip plane, which is useful for portals
* Requires the global clip plane project setting to be enabled
Change 3226214 on 2016/12/07 by Daniel.Wright
Improved deferred shadowing with MSAA by upsampling light attenuation intelligently in the base pass
* If the current fragment's depth doesn't match what was used for deferred shadowing, the neighbor (cross pattern) with the nearest depth's shadowing is used
* Edge artifacts can still occur where the upsample fails or the shadow factor was computed per-sample due to depth / stencil testing
* Indirect Occlusion from capsule shadows also uses the nearest depth neighbor UV for no extra cost
* Base pass on 970 GTX 1.69ms -> 1.85ms (.16ms) in RoboRecall
Change 3226258 on 2016/12/07 by Rolando.Caloca
DR - Typo fix
Change 3226259 on 2016/12/07 by Rolando.Caloca
DR - compile fix
#jira UE-39143
Change 3226932 on 2016/12/08 by Chris.Bunner
Re-saved Infiltrator maps to update reflection captures.
#jira UE-38759
Change 3227063 on 2016/12/08 by Mark.Satterthwaite
For Metal platforms ONLY temporarily disable USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING to avoid UE-37436 while the Nvidia driver team investigate why this doesn't work for them but does for the others. This won't affect non-Metal platforms and the intent is to revert this prior to 4.16 provided we can work through the problem with Nvidia.
#jira UE-37436
Change 3227120 on 2016/12/08 by Gil.Gribb
Merging //UE4/Dev-Main@3226895 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3227211 on 2016/12/08 by Arne.Schober
DR - UE-38585 - Fixing crash where HierInstStaticMesh duplication fails. Also reverting the fix from UE-28189 which is redundant.
Change 3227257 on 2016/12/08 by Marc.Olano
Extension to PseudoVolumeTexture for more flexible layout
Change by ryan.brucks
Change 3227286 on 2016/12/08 by Rolando.Caloca
DR - Fix crash when using custom expressions and using reserved keywords
#jira UE-39311
Change 3227376 on 2016/12/08 by Mark.Satterthwaite
Must not include a private header inside the MenuStack public header as that causes compile errors in plugins.
Change 3227415 on 2016/12/08 by Mark.Satterthwaite
Fix shader compilation due to my disabling of USE_LIGHT_GRID_REFLECTION_CAPTURE_CULLING on Metal - InstancedCompositeTileReflectionCaptureIndices needs to be defined even though Metal doesn't support instanced-stereo rendering.
Change 3227516 on 2016/12/08 by Daniel.Wright
Implemented UWidgetComponent::GetUsedMaterials
Change 3227521 on 2016/12/08 by Guillaume.Abadie
Fixes post process volume's indirect lighting color.
#jira UE-38888
Change 3227567 on 2016/12/08 by Marc.Olano
New upscale filters: Lanczos-2 (new default), Lanczos-3 and Gaussian Unsharp Mask
Change 3227628 on 2016/12/08 by Daniel.Wright
Removed redundant ResolveSceneDepthTexture from the merge
Change 3227635 on 2016/12/08 by Daniel.Wright
Forward renderer supports shadowing from movable lights and light functions
* Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed
* Light functions only work on shadow casting lights since they need a shadowmap channel to be assigned
Change 3227660 on 2016/12/08 by Rolando.Caloca
DR - vk - Fix r.MobileMSAA on Vulkan
- r.MobileMSAA is now read-only (to be fixed on 4.16)
- Show time for PSO creation hitches
#jira UE-39184
Change 3227704 on 2016/12/08 by Mark.Satterthwaite
Fix Mac HDR causing incorrect output color encoding being used, HDR support is now entirely off unless you pass -metaledr which will enable it regardless of whether the current display supports HDR (as we haven't written the detection code yet). Fixed the LUT/UI compositing along the way - Mac Metal wasn't using volume LUT as it should have been, RHISupportsVertexShaderLayer now correctly returns false for non-Mac Metal platforms.
Change 3227705 on 2016/12/08 by Daniel.Wright
Replaced built-in samplers in the nearest depth translucency upsample because the built-in samplers are no longer bound on PC (cl 2852426)
Change 3227787 on 2016/12/08 by Chris.Bunner
Added extent clear to motion blur pass to catch misized buffers bringing in errors.
Added early out to clear call when excluded region matches RT region.
#jira UE-39437
Change 3228177 on 2016/12/08 by Marc.Olano
Fix DCC sqrt(int) error
Change 3228285 on 2016/12/08 by Chris.Bunner
Back out changelist 3225449.
#jira UE-39528
Change 3228680 on 2016/12/09 by Gil.Gribb
Merging //UE4/Dev-Main@3228528 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3228940 on 2016/12/09 by Mark.Satterthwaite
Editor fixes for 4.15:
- PostProcessTonemap can't fail to bind a texture to the ColorLUT or the subsequent rendering will be garbage: the changes for optimising stereo rendering forgot to account for the Editor's use of Views without States for the asset preview thumbnails. Amended the CombineLUT post-processing to allocate a local output texture when there's no ViewState and read from this when this situation arises which makes everything function again.
- Don't start render-passes without a valid render-target-array in MetalRHI.
Change 3228950 on 2016/12/09 by Mark.Satterthwaite
Make GPUSkinCache run on Mac Metal - it wasn't working because it was forcibly disabled on all platforms but for Windows D3D 11.
- Fixed the Skeleton editor tree trying to access a widget before it has been constructed.
- Enable GPUSkinCache for Metal SM5: doesn't render correctly, even on AMD, so needs Radar's filing and investigation.
#jira UE-39256
Change 3229013 on 2016/12/09 by Mark.Satterthwaite
Further tidy up in SSkeletonTreeView as suggested by Nick.A.
Change 3229101 on 2016/12/09 by Chris.Bunner
Log compile error fix and updated cvar comments.
Change 3229236 on 2016/12/09 by Ben.Woodhouse
XB1 D3D11 and D3D12: Use the DXGI frame statistics to get accurate GPU time unaffected by bubbles
Change 3229430 on 2016/12/09 by Ben.Woodhouse
PR #2680: Optimized histogram generation. (Contributed by PjotrSvetachov)
Profiled on nvidia 980GTX (2x faster), and on XB1 (marginally faster)
Change 3229580 on 2016/12/09 by Marcus.Wassmer
DepthBoundsTest for AMD.
Change 3229701 on 2016/12/09 by Michael.Trepka
Changed "OS X" to "macOS" in few places where we display it and updated the code that asks users to update to latest version to check for 10.12.2
Change 3229706 on 2016/12/09 by Chris.Bunner
Added GameUserSettings controls for HDR display output.
Removed Metal commandline as this should replace the need for it.
Change 3229774 on 2016/12/09 by Michael.Trepka
Disabled OpenGL on Mac. -opengl is now ignored, we always use Metal. On old Macs that do not support Metal we show a message saying that the app requires Metal and exit.
Change 3229819 on 2016/12/09 by Chris.Bunner
Updated engine rendering defaults to better match current best practices.
#jira UE-38081
Change 3229948 on 2016/12/09 by Rolando.Caloca
DR - Fix d3d debug error
#jira UE-39589
Change 3230341 on 2016/12/11 by Mark.Satterthwaite
Don't fatally assert that the game-thread stalled waiting for the rendering thread in the Editor executable, even when running -game as the rendering thread can take a while to respond if shaders need to be compiled.
#jira UE-39613
Change 3230860 on 2016/12/12 by Marcus.Wassmer
Experimental Nvidia AFR support.
Change 3230930 on 2016/12/12 by Mark.Satterthwaite
Disable RHICmdList state-caching on Mac - Metal already does this internally and depends on receiving all state changes in order to function.
Change 3231252 on 2016/12/12 by Marcus.Wassmer
Fix NumGPU detection. (SLI only crash)
Change 3231486 on 2016/12/12 by Mark.Satterthwaite
Fix a stupid mistake in MetalStateCache::CommitResourceTable that would unnecessarily rebind samplers.
Change 3231661 on 2016/12/12 by Mark.Satterthwaite
Retain the RHI samplers in MetalRHI to guarantee lifetime.
[CL 3231696 by Gil Gribb in Main branch]
2016-12-12 17:47:42 -05:00
const uint32 Mask = ~ ( DividableBy - 1 ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894)
#rb Rendering
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3658809 by Chris.Bunner
Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data.
Change 3658842 by Chris.Bunner
Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults.
Change 3695269 by Arne.Schober
DR - Make clang happy wreorder
Change 3695418 by Guillaume.Abadie
Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp.
Change 3695430 by Guillaume.Abadie
Fixes missing BeginFrame dynamic resolution event in EngineTest.
Change 3695469 by Guillaume.Abadie
Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters.
Change 3696091 by Guillaume.Abadie
Fixes Linux compilation failure in DynamicResolution.cpp
Change 3696593 by Chris.Bunner
Fixed typo in vetex factory enum.
Change 3696596 by Chris.Bunner
Added material attributes type checking to If material expression.
Updated If material expression to validate compilation of inputs.
Change 3696597 by Chris.Bunner
Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs.
Change 3696599 by Chris.Bunner
Fixed material instance parameter visiblity when using nested static switches across functions.
#jira UE-50878
Change 3696734 by Chris.Bunner
Return type fix.
Change 3697123 by Guillaume.Abadie
Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits.
Change 3697125 by Guillaume.Abadie
Fixes compilation failure in MaterialExpressionIf.h
Change 3697127 by Guillaume.Abadie
Fixes compilation failure in DynamicResolution.cpp on shipping build.
Change 3697135 by Guillaume.Abadie
Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest.
Change 3697199 by Guillaume.Abadie
Fixes TAA upsample's shader compilation failure on Mac.
Change 3697220 by Guillaume.Abadie
Makes static analysis happy again.
Change 3697280 by Chris.Bunner
Fixing up invalid casts in material layers validation.
Change 3697366 by Rolando.Caloca
DR - hlslcc - Fix warning
#jira UE-43988
Change 3697451 by Rolando.Caloca
DR - vk - Per pipeline descriptor pools
Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation
Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS
Change 3697477 by Rolando.Caloca
DR - vk - Custom memory allocator
Remove old/unused stats
Change 3697486 by Rolando.Caloca
DR - vk - Fix validation issue
Change 3697488 by Richard.Wallis
Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6. Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame.
Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter.
#jira UE-37553
Change 3697501 by Richard.Wallis
Move audio processing over to audio bus tap. Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework. This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp.
Original Code Review Description:
Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer. This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac. There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled.
- Stuttering Audio Performace issue investiagation: Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one. Basic investigation seems to point to somewhere in the engine audio handing. When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue. I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough. This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec.
#jira UEPLAT-1677
Change 3697517 by Richard.Wallis
XCode 9.0 extra nullability specifiers required.
Change 3697537 by Richard.Wallis
Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp
Change 3697670 by Rolando.Caloca
DR - vk - Fix mapstaging surface
Change 3697846 by Uriel.Doyon
Allow denormalized values when converting float32 to float16.
Change 3697892 by Uriel.Doyon
Fix for unaligned structure elements
Change 3699335 by Richard.Wallis
Mac compile fix - turns out I did need these nullability specifiers here.
Change 3699663 by Guillaume.Abadie
Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries.
Change 3699959 by Rolando.Caloca
DR - Fix barrier in the middle of render pass
Change 3699969 by Rolando.Caloca
DR - vk - Change dump layer location so it prints out validation ids
Change 3700356 by Guillaume.Abadie
Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI.
Change 3701105 by Guillaume.Abadie
Ignore per view automatic mip bias on texture type other than 2d textures.
#jira UE-51396
Change 3702297 by Richard.Wallis
Mac compile fix for nullable specifier. Looks like Obj class using the C++ class also needs this otherwise it throws. Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok.
#jira UE-51386
Change 3702357 by Richard.Wallis
Mac nullability compile fix - again. Looks like I fell foul of that xcode compile caching!
#jira UE-51386
Change 3702424 by Guillaume.Abadie
Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading.
#jira UE-51395
Change 3702464 by Guillaume.Abadie
Fixes wrong viewport to buffer conversion of the distortion.
#jira UE-51406
Change 3702819 by Guillaume.Abadie
Fixes planar reflections with secondary screen percentage for HighDPI editor viewports.
Change 3703732 by Guillaume.Abadie
Removes unecessary check(); when there is more than 2 players with planar reflections.
#jira UE-51436
Change 3704302 by Guillaume.Abadie
Removes unecessary Interface suffix on new dynamic resolution related interfaces
Change 3704390 by Chris.Bunner
Fixed a coincidentally correct define.
Change 3704730 by Rolando.Caloca
DR - vk - Fix map for depth surfaces
Change 3704739 by Rolando.Caloca
DR - Debug label on D3D11 UAVs
- Validate when running -d3debug
Change 3705000 by Chris.Bunner
Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254.
Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties.
Change 3706065 by Guillaume.Abadie
Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView.
Change 3706464 by Chris.Bunner
Fixed material property translate overrides that were generating code in the wrong entry.
Fixed conditions in If material expression GetInputType and IsMA check.
#jira UE-51368
Change 3706641 by Chris.Bunner
Missing "break" in switch statement (which unfortunately needs another bump to resolve).
Change 3706642 by Guillaume.Abadie
Fixes assertion failure when r.TemporalAA.EnableUpscale = 1
Change 3706650 by Gil.Gribb
UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code.
Change 3706733 by Daniel.Wright
Print Embree Build time
Change 3706841 by Daniel.Wright
EmbreeFilterFunc4 now handles masked out intersections properly
Change 3707437 by Rolando.Caloca
DR - vk - Android compile fix
#jira UE-51474
Change 3707785 by Guillaume.Abadie
Fixes viewport issue in bloom setup pass with TAA upsample.
Change 3709623 by Rolando.Caloca
DR - vk - Missing barrier for reading into cpu
Change 3709633 by Rolando.Caloca
DR - vk - Compile fix
Change 3710454 by Mark.Satterthwaite
Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D.
- Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load.
- RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders).
- Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>.
- Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics.
- Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore.
- Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way).
- STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else.
- Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes.
Change 3710456 by Mark.Satterthwaite
Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups.
Change 3710457 by Mark.Satterthwaite
DX11 texture formats for Mac Metal please!
Change 3710480 by Mark.Satterthwaite
Permit RHI thread and parallel execution in Mac -game mode again.
Change 3710522 by Mark.Satterthwaite
MSVC type-mismatch error fixes.
Change 3710580 by Mark.Satterthwaite
Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10).
Change 3710616 by Mark.Satterthwaite
Missing file.
Change 3712972 by Guillaume.Abadie
Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass.
Change 3712979 by Guillaume.Abadie
Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale.
Change 3713406 by Mark.Satterthwaite
Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now.
Change 3713494 by Richard.Wallis
Fix for hitch when PIE unloading sublevel. PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads. However they all just need to read the data not change it. Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention.
Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too.
Also tested again repro in linked bug UE-24711.
#jira UE-40533
Change 3713612 by Mark.Satterthwaite
Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744
This should make Light Propagation Volumes potentially viable on non-Microsoft platforms.
Change 3713623 by Mark.Satterthwaite
Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal.
Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be.
Change 3713636 by Mark.Satterthwaite
Enable LPVs for Mac Metal.
- Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation.
- MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible.
- Turn on LPVs for Metal as it works now.
Change 3714049 by Guillaume.Abadie
Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer.
Change 3714306 by Guillaume.Abadie
Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries.
Change 3714714 by Mark.Satterthwaite
Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains.
Change 3716104 by Mark.Satterthwaite
Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update.
Change 3716120 by Mark.Satterthwaite
Silence static-analysis.
Change 3716158 by Guillaume.Abadie
Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3716271 by Daniel.Wright
Lightmass correctness fixes
* After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions
* Photon density trimming intended for direct photons was affecting indirect photons as well. This caused high noise for point / spot lights with a large attenuation radius. Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality.
* Removed legacy fudge factor on point / spot light photon energy
* Spotlights no longer emit based on indirect photon paths. Fixes excessive photon energy from spot lights as they were emitting outside of the cone.
* Fixed photons computing one more bounce than requested.
* Added an option to use the Radiosity solver for all multibounce, replacing photons. Useful as a reference but generally too much noise indoors.
* Fixed visualization of photons without final gather
Change 3716434 by Mark.Satterthwaite
Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds.
Change 3716491 by Chris.Bunner
Fixing up an edge-case on a recent optimization.
Change 3716611 by Guillaume.Abadie
Allows secondary screen percentage >= 100%.
Change 3716977 by Guillaume.Abadie
Back out changelist 3716158 to unblock QA pass.
#jira UE-51580
Change 3717111 by Arne.Schober
Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/
Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small.
CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready.
Change 3717127 by Mark.Satterthwaite
Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice.
Change 3717178 by Mark.Satterthwaite
Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken.
#jira UE-51583
Change 3717476 by Marcus.Wassmer
Fix PS4 compile. funciton local statics not allowed on PSSL
Also enabled the new atomics method for LPVs for all platforms
Change 3717502 by Arne.Schober
DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries)
Change 3717601 by Arne.Schober
DR - Move cycle counter into more meaningfull locations.
Change 3718054 by Guillaume.Abadie
Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method.
Change 3718066 by Guillaume.Abadie
Reland: Rewrites editor primitive compositing to support TAA upsample.
This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives.
Change 3718589 by Mark.Satterthwaite
Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled).
Change 3718633 by Guillaume.Abadie
Fixes temporal instability issue of TAA upsample with secondary screen percentage.
Change 3718658 by Arne.Schober
DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on.
Change 3718818 by Mark.Satterthwaite
Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero.
Change 3719004 by Guillaume.Abadie
Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample.
Change 3719375 by Mark.Satterthwaite
Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression.
Change 3720099 by Mark.Satterthwaite
Make the left-hand arguments work in airdiff.
Change 3720413 by Mark.Satterthwaite
Support standalone compute shaders in the mtlpp compiler test app.
Change 3721232 by Mark.Satterthwaite
No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available.
Change 3721244 by Mark.Satterthwaite
Fix incorrect enum handling for Metal features due to overflow.
#jira UE-51643
Change 3721338 by Mark.Satterthwaite
MIssing file from 3721232
Change 3721818 by Mark.Satterthwaite
Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead.
Change 3722139 by Arne.Schober
DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one
#jira UE-51602
Change 3722165 by Rolando.Caloca
DR - Default -opengl to GL4
Change 3722682 by Guillaume.Abadie
Fixes wrong clear color in SSR important for VR that has a HMD mesh.
Change 3722766 by Rolando.Caloca
DR - Fix static analysis
Change 3722943 by Mark.Satterthwaite
Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders.
Change 3723100 by Mark.Satterthwaite
Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version.
Change 3723121 by Mark.Satterthwaite
Fix build error.
Change 3723245 by Daniel.Wright
Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling
Reflection captures with no data use an array index of 0, instead of -1. Might avoid reading uninitialized memory on PS4.
Change 3723387 by Arne.Schober
DR - Metal already applies the instance and vertexoffset in the shader
Change 3723393 by Mark.Satterthwaite
More fixes to the mtlpp compiler test application.
Change 3725258 by Guillaume.Abadie
Improves fast TAA upsample shader permutation by 15% on console.
Change 3725555 by Chris.Bunner
[Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200.
Change 3726845 by Guillaume.Abadie
Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss.
#jira UE-51428
Change 3728014 by Guillaume.Abadie
Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision.
#jira UE-51428
Change 3728053 by Richard.Wallis
Duplicate CL 3727958: Crash fix when using shared material libraries. Initial shader code library offset is not zero'd so all entry offsets were garbage.
Change 3728339 by Guillaume.Abadie
Adds project setting for TAA upample, and officialises TAA upsampling CVar.
Change 3728549 by Guillaume.Abadie
CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers.
Change 3728752 by nick.bullard
Built and re-saved QA-MeshPaint
#jira UE-50978
Change 3728775 by Guillaume.Abadie
Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage.
Change 3729224 by Uriel.Doyon
Hidden levels now keep their last build data when using lighting scenarios.
Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios.
#jira UE-40454
#jira UE-38131
Change 3729243 by Marcus.Wassmer
Update Ansel to 1.4
#github 4159
#jira UE-51545
Change 3729325 by zachary.wilson
Adding indirect lighting to TM-LightingChannels
#jira UE-47069
Change 3729485 by zachary.wilson
Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof.
#jira UE-50972
Change 3729629 by Uriel.Doyon
Fixed crash when using debug view modes.
Fixed d3ddebug error when clearing quad overdraw buffer.
#jira UE-51836
Change 3730053 by Guillaume.Abadie
Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera.
Change 3730308 by Guillaume.Abadie
Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization.
Change 3730355 by Guillaume.Abadie
Sacrifices consistency for good cvar name for TAA upsample.
Change 3731403 by Daniel.Wright
Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values.
Change 3731404 by Daniel.Wright
Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture'
Change 3731407 by Daniel.Wright
Must opt-in for FDistanceFieldSceneData::VerifyIntegrity
Change 3731517 by Guillaume.Abadie
Freezes dynamic resolution heuristic when doing pause.
Change 3732168 by Guillaume.Abadie
Renames TAA upsampling cvar.
Change 3732295 by Guillaume.Abadie
Lets the scene texture's size and texel size return the correct sizes after TAA upsample.
Change 3732313 by Guillaume.Abadie
Implements SceneTexture material expressions' automated tests.
Change 3734928 by Guillaume.Abadie
Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic.
Change 3735966 by Ryan.Vance
Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac.
Change 3736104 by Guillaume.Abadie
Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way.
Change 3736346 by Daniel.Wright
Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results. Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred.
Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly
Change 3736348 by Daniel.Wright
Forward shadowing of directional light for translucency
* Static shadowing and CSM supported with minimal filtering (1 PCF)
* Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode. Forward renderer: affects all translucency.
Change 3736650 by Rolando.Caloca
DR - vk - # of desc pools
Change 3737985 by Guillaume.Abadie
Fixes pixel inspector with primary and secondary screen percentage.
Change 3738638 by Michael.Lentine
Compile fix due to unclear operator precendence.
Change 3739417 by Daniel.Wright
Fixed a few issues with irradiance cache visualization
Change 3739447 by Daniel.Wright
Skip forward static shadowing in projects with static lighting disabled
Change 3739595 by Daniel.Wright
ConditionalPostLoad DistanceFieldReplacementMesh. Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use.
Change 3739598 by Daniel.Wright
Disable capsules shadows on lowest shadow quality
Change 3739611 by Daniel.Wright
Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features
New Lighting Feature show flags for RTDF shadows and Capsule Shadows
Change 3740516 by Guillaume.Abadie
Fixes VR editor rendering only on eye with TAA upsample.
#jira UE-52016
Change 3740580 by Guillaume.Abadie
Fixes chromatic aberration with TAA upsample and multiple view rendering.
#jira UE-51993
Change 3740588 by Guillaume.Abadie
Gives to FXAA a more explicit draw event name for easier UDN support.
Change 3740845 by Michael.Lentine
Fix shipping build.
Change 3740903 by Guillaume.Abadie
Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor.
Change 3741355 by Daniel.Wright
Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component
Change 3741357 by Daniel.Wright
More info on volumetric lightmap import failure
Change 3742535 by Ryan.Vance
Fix for view rect changes.
Change 3743282 by Guillaume.Abadie
Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react.
Change 3743559 by Michael.Lentine
Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated.
Change 3743679 by Guillaume.Abadie
Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144.
#jira UE-51569
Change 3743906 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: Fix for clamping sampled HDR render target values by setting ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax
Change 3744096 by Ryan.Brucks
BlueprintMaterialAndTextureNodes Plugin: removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading.
Change 3744253 by Guillaume.Abadie
Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages.
Change 3744953 by Chris.Bunner
Crash workaround.
Change 3745628 by Marcus.Wassmer
Temporarily disable recalctangent normal-smoothing
#jira UE-52166
Change 3745942 by Guillaume.Abadie
Fixes a todo in FCommonViewportClient
Change 3746005 by Guillaume.Abadie
Fixes stat UnitGraph on high DPI monitor.
Change 3746029 by Guillaume.Abadie
Oups.... Fix compilation. :D
Change 3748322 by Guillaume.Abadie
Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands.
Change 3748346 by Chris.Bunner
Potential static analysis fix.
Change 3748349 by Chris.Bunner
Mac feature support flag fix on versions < 10.30.
Change 3749336 by Guillaume.Abadie
Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel!
Change 3749374 by Guillaume.Abadie
Adds a black background on the stat unitgraph so timing curves can be seen no matter the content.
Change 3749437 by Guillaume.Abadie
Final UI polish up for `stat unitgraph`
Change 3749719 by Guillaume.Abadie
Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage.
Change 3750243 by Chris.Bunner
Increasing controller's automated test timeout to allow for slower machines to complete the longest tests.
#jira UE-48494, UE-51907
Change 3750728 by Guillaume.Abadie
Fixes merge collision in chromatic aberration.
#jira UE-52282
Change 3750791 by Guillaume.Abadie
Fixes chromatic baerration R and G channel swap.
Change 3751246 by Guillaume.Abadie
Bypasses screen percentage apply with mobile LDR rendering.
#jira UE-52089
Change 3752624 by Guillaume.Abadie
Simplies dyn res state's event interface to a single virtual method.
Change 3753766 by Chris.Bunner
Rebuilt volumetric baked lighting test map and updated screenshots.
#jira UE-52322
Change 3755108 by Guillaume.Abadie
Fixes a bug where default dynamic resolution state was created at startup of server build.
#jira UE-52345
Change 3755267 by Mark.Satterthwaite
Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems.
#jira UE-52301
Change 3755811 by Chris.Bunner
Disable some new logging that was causing a stack overflow during EnginePreInit.
#jira UE-52345
Change 3756983 by Mark.Satterthwaite
Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities.
#jira UE-52073
Change 3757156 by Guillaume.Abadie
Fixes editor compositing with wireframe rendering.
#jira UE-52017
Change 3757435 by Mark.Satterthwaite
Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer.
#jira UE-52327
Change 3757523 by Uriel.Doyon
Fixed d3ddebug warning with unused inputs
Change 3758318 by Guillaume.Abadie
Cleaner fix for mobile scene captures.
#jira UE-52327
Change 3759541 by Mark.Satterthwaite
Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes.
Change 3695086 by Guillaume.Abadie
Render thread dynamic resolution & TAA upsample.
Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/...
New features breakdown:
- TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles;
- Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly;
- Material texture per view mip bias to produce sharper images with TAA upsample;
- Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics);
- Dynamic resolution in PIE and game builds;
- Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can exactly associate GPU frame times with screen percentages in its history;
- Game user settings to enable/disable dynamic resolution;
- In editor viewport screen percentage config to previsualise and test content at different screen percentage.
Fixes:
- Various fixes for algorithms producing different outputs at different screen percentage.
- Various fixes for algorithms sampling outside view rects.
Refactors:
- TAA shader
- Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing.
Aknowledgements:
- VR plugins are broken
- DFAO still have some artifacts
Premiliminary review: Marcus.Wassmer
Review for TAA refactor and TAA upsample shader: Brian.Karis
Review for dynamic resolution: Brian.Karis
[CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
OutBufferSize . X = ( InBufferSize . X + DividableBy - 1 ) & Mask ;
OutBufferSize . Y = ( InBufferSize . Y + DividableBy - 1 ) & Mask ;
2019-01-17 18:54:05 -05:00
}