Files
UnrealEngineUWP/Engine/Source/Runtime/Renderer/Private/PrimitiveSceneInfo.cpp

2128 lines
76 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
PrimitiveSceneInfo.cpp: Primitive scene info implementation.
=============================================================================*/
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 "PrimitiveSceneInfo.h"
#include "PrimitiveSceneProxy.h"
#include "Components/PrimitiveComponent.h"
#include "SceneManagement.h"
#include "SceneCore.h"
#include "VelocityRendering.h"
#include "ScenePrivate.h"
#include "RendererModule.h"
#include "HAL/LowLevelMemTracker.h"
#include "RayTracing/RayTracingMaterialHitShaders.h"
#include "VT/RuntimeVirtualTextureSceneProxy.h"
#include "VT/VirtualTextureSystem.h"
#include "GPUScene.h"
#include "Async/ParallelFor.h"
#include "ProfilingDebugging/ExternalProfiler.h"
#include "Nanite/Nanite.h"
#include "Rendering/NaniteResources.h"
#include "Lumen/LumenSceneRendering.h"
#include "NaniteSceneProxy.h"
#include "RayTracingDefinitions.h"
extern int32 GGPUSceneInstanceClearList;
extern int32 GGPUSceneInstanceBVH;
static int32 GMeshDrawCommandsCacheMultithreaded = 1;
static FAutoConsoleVariableRef CVarDrawCommandsCacheMultithreaded(
TEXT("r.MeshDrawCommands.CacheMultithreaded"),
GMeshDrawCommandsCacheMultithreaded,
TEXT("Enable multithreading of draw command caching for static meshes. 0=disabled, 1=enabled (default)"),
ECVF_RenderThreadSafe);
static int32 GNaniteDrawCommandCacheMultithreaded = 1;
static FAutoConsoleVariableRef CVarNaniteDrawCommandCacheMultithreaded(
TEXT("r.Nanite.MeshDrawCommands.CacheMultithreaded"),
GNaniteDrawCommandCacheMultithreaded,
TEXT("Enable multithreading of draw command caching for Nanite materials. 0=disabled, 1=enabled (default)"),
ECVF_RenderThreadSafe);
static int32 GRayTracingPrimitiveCacheMultithreaded = 1;
static FAutoConsoleVariableRef CVarRayTracingPrimitiveCacheMultithreaded(
TEXT("r.RayTracing.MeshDrawCommands.CacheMultithreaded"),
GRayTracingPrimitiveCacheMultithreaded,
TEXT("Enable multithreading of raytracing primitive mesh command caching. 0=disabled, 1=enabled (default)"),
ECVF_RenderThreadSafe);
/** An implementation of FStaticPrimitiveDrawInterface that stores the drawn elements for the rendering thread to use. */
class FBatchingSPDI : public FStaticPrimitiveDrawInterface
{
public:
// Constructor.
FBatchingSPDI(FPrimitiveSceneInfo* InPrimitiveSceneInfo):
PrimitiveSceneInfo(InPrimitiveSceneInfo)
{}
// FStaticPrimitiveDrawInterface.
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
virtual void SetHitProxy(HHitProxy* HitProxy) final override
{
CurrentHitProxy = HitProxy;
if(HitProxy)
{
// Only use static scene primitive hit proxies in the editor.
if(GIsEditor)
{
// Keep a reference to the hit proxy from the FPrimitiveSceneInfo, to ensure it isn't deleted while the static mesh still
// uses its id.
PrimitiveSceneInfo->HitProxies.Add(HitProxy);
}
}
}
virtual void ReserveMemoryForMeshes(int32 MeshNum)
{
PrimitiveSceneInfo->StaticMeshRelevances.Reserve(PrimitiveSceneInfo->StaticMeshRelevances.Num() + MeshNum);
PrimitiveSceneInfo->StaticMeshes.Reserve(PrimitiveSceneInfo->StaticMeshes.Num() + MeshNum);
}
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
virtual void DrawMesh(const FMeshBatch& Mesh, float ScreenSize) final override
{
if (Mesh.HasAnyDrawCalls())
{
checkSlow(IsInParallelRenderingThread());
FPrimitiveSceneProxy* PrimitiveSceneProxy = PrimitiveSceneInfo->Proxy;
const ERHIFeatureLevel::Type FeatureLevel = PrimitiveSceneInfo->Scene->GetFeatureLevel();
if (!Mesh.Validate(PrimitiveSceneProxy, FeatureLevel))
{
return;
}
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
FStaticMeshBatch* StaticMesh = new(PrimitiveSceneInfo->StaticMeshes) FStaticMeshBatch(
PrimitiveSceneInfo,
Mesh,
CurrentHitProxy ? CurrentHitProxy->Id : FHitProxyId()
);
StaticMesh->PreparePrimitiveUniformBuffer(PrimitiveSceneProxy, FeatureLevel);
// Volumetric self shadow mesh commands need to be generated every frame, as they depend on single frame uniform buffers with self shadow data.
const bool bSupportsCachingMeshDrawCommands = SupportsCachingMeshDrawCommands(*StaticMesh, FeatureLevel) && !PrimitiveSceneProxy->CastsVolumetricTranslucentShadow();
const FMaterial& Material = Mesh.MaterialRenderProxy->GetIncompleteMaterialWithFallback(FeatureLevel);
bool bUseSkyMaterial = Material.IsSky();
bool bUseSingleLayerWaterMaterial = Material.GetShadingModels().HasShadingModel(MSM_SingleLayerWater);
bool bUseAnisotropy = Material.GetShadingModels().HasAnyShadingModel({MSM_DefaultLit, MSM_ClearCoat}) && Material.MaterialUsesAnisotropy_RenderThread();
bool bSupportsNaniteRendering = SupportsNaniteRendering(StaticMesh->VertexFactory, PrimitiveSceneProxy, Mesh.MaterialRenderProxy, FeatureLevel);
bool bSupportsGPUScene = StaticMesh->VertexFactory->SupportsGPUScene(FeatureLevel);
FStaticMeshBatchRelevance* StaticMeshRelevance = new(PrimitiveSceneInfo->StaticMeshRelevances) FStaticMeshBatchRelevance(
*StaticMesh,
ScreenSize,
bSupportsCachingMeshDrawCommands,
bUseSkyMaterial,
bUseSingleLayerWaterMaterial,
bUseAnisotropy,
bSupportsNaniteRendering,
bSupportsGPUScene,
FeatureLevel
);
}
}
private:
FPrimitiveSceneInfo* PrimitiveSceneInfo;
TRefCountPtr<HHitProxy> CurrentHitProxy;
};
FPrimitiveSceneInfo::FPrimitiveSceneInfoEvent FPrimitiveSceneInfo::OnGPUSceneInstancesAllocated;
FPrimitiveSceneInfo::FPrimitiveSceneInfoEvent FPrimitiveSceneInfo::OnGPUSceneInstancesFreed;
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
FPrimitiveFlagsCompact::FPrimitiveFlagsCompact(const FPrimitiveSceneProxy* Proxy)
: bCastDynamicShadow(Proxy->CastsDynamicShadow())
, bStaticLighting(Proxy->HasStaticLighting())
, bCastStaticShadow(Proxy->CastsStaticShadow())
, bIsNaniteMesh(Proxy->IsNaniteMesh())
, bSupportsGPUScene(Proxy->SupportsGPUScene())
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
{}
FPrimitiveSceneInfoCompact::FPrimitiveSceneInfoCompact(FPrimitiveSceneInfo* InPrimitiveSceneInfo) :
PrimitiveFlagsCompact(InPrimitiveSceneInfo->Proxy)
{
PrimitiveSceneInfo = InPrimitiveSceneInfo;
Proxy = PrimitiveSceneInfo->Proxy;
Bounds = FCompactBoxSphereBounds(PrimitiveSceneInfo->Proxy->GetBounds());
MinDrawDistance = PrimitiveSceneInfo->Proxy->GetMinDrawDistance();
MaxDrawDistance = PrimitiveSceneInfo->Proxy->GetMaxDrawDistance();
VisibilityId = PrimitiveSceneInfo->Proxy->GetVisibilityId();
}
FPrimitiveSceneInfo::FPrimitiveSceneInfo(UPrimitiveComponent* InComponent,FScene* InScene):
Proxy(InComponent->SceneProxy),
PrimitiveComponentId(InComponent->ComponentId),
RegistrationSerialNumber(InComponent->RegistrationSerialNumber),
OwnerLastRenderTime(FActorLastRenderTime::GetPtr(InComponent->GetOwner())),
IndirectLightingCacheAllocation(NULL),
Copying //UE4/Dev-Rendering to Dev-Main (Source //UE4/Dev-Rendering@2932636) #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2917472 on 2016/03/21 by Rolando.Caloca DR - Fix SCW directcompile arguments, add -pipeline Change 2919580 on 2016/03/23 by Rolando.Caloca DR - HlslParser - Fix for used elements (sparrow's arrow was showing when it shouldn't) Arrays of input/outputs are now flattened so disjoint entries can be optimized out (and fixes a bug) #jira OR-15380 #tests Run game with sparrow, test with slomo to check for gfx glitches Change 2919660 on 2016/03/23 by Rolando.Caloca DR - Latest vk changes (from dev mobile's 2916881 to 2919157) Change 2919902 on 2016/03/23 by Rolando.Caloca DR - Fix skeletal meshes decrementing stats twice #codereview Marcus.Wassmer #jira UE-28478 Change 2920020 on 2016/03/23 by David.Hill #Jira UE-28503 EyeAdapation when used in material shader may not be initialized. #rb olaf.piesche Change 2920071 on 2016/03/23 by Rolando.Caloca DR - Remove old vk define - Started moving around direct calls to queue submit Change 2920252 on 2016/03/23 by Rolando.Caloca DR - Changes vk structs to classes Change 2920314 on 2016/03/23 by Olaf.Piesche Add -windowed to standalone game PIE command line to avoid PIE launching in full screen #jira UE-27870 #codereview michael.trepka Change 2920745 on 2016/03/24 by Uriel.Doyon Texture streaming build now takes into account the material texcoord scales applied to the texture sampling. Also finds out which texcoord is being used when sampling textures (between 0 and 3 currently). TexCoord analysis debug view shaders is now working with SM4 ane SM5. StaticMeshComponents hold persistent data coming from the texture streaming build. #tests tested with different Paragon assets. Editor SM4 & SM5. Cooked maps #codereview marcus.wassmer Change 2921335 on 2016/03/24 by Uriel.Doyon Added missing static keyword for locally defined console variable. #codereview rolando.caloca Change 2921416 on 2016/03/24 by Uriel.Doyon Revert enabling debugview shaders on non PC platforms (until properly tested and debugged) Change 2921446 on 2016/03/24 by Daniel.Wright Planar reflection mesh Change 2921530 on 2016/03/24 by Daniel.Wright Manual revert of Ronin planar reflections #codereview Ryan.Vance Change 2921608 on 2016/03/24 by Uriel.Doyon Updated texture streamer to take into account the new HLOD texture group. Change 2921677 on 2016/03/24 by Daniel.Wright Distance Field Specular Occlusion * Prototype - disabled by default Change 2921681 on 2016/03/24 by Daniel.Wright UnmappedTexelsPercentage is now 100 based Change 2921682 on 2016/03/24 by Daniel.Wright Planar reflections * New actor and component * The scene is rendered to texture with a mirrored camera and a clip plane each frame * The reflection texture is then applied to opaque pixels in a deferred pass, with distance and angle from plane fades * Translucent materials apply the nearest reflection plane in the base pass * Planar reflections require the project setting 'Support global clip plane for Planar Reflections' to be enabled, since writing to SV_ClipDistance all the time adds about 15% BasePass GPU time on PS4 * Fixed global distance field in materials which had been broken since moving global distance field properties into the view uniform buffer * Fixed PS4 removing system-value semantics when output from vertex shader and not read in next stage Change 2921734 on 2016/03/24 by Uriel.Doyon Fixed tessellated cube having wrong UVs #jira UE-28379 Change 2922063 on 2016/03/24 by Daniel.Wright Removed planar reflection debug code Change 2922428 on 2016/03/25 by Chris.Bunner Delete FShaderPipeline objects when clearing TMaterialShaderMaps. #rb Rolando.Caloca #jira UE-28621 Change 2922803 on 2016/03/25 by Rolando.Caloca DR - New cmd buffer management (disabled) - Move cmd buffer out of pending state and into context - Do not hardcode # cmd buffers - Move back buffer image mgmt into swapchain - Fixed some image layout transition bugs Change 2923056 on 2016/03/25 by Rolando.Caloca DR - Initial fix for canvas locking inside a render pass [CL 2932649 by Gil Gribb in Main branch]
2016-04-04 18:44:59 -04:00
CachedPlanarReflectionProxy(NULL),
CachedReflectionCaptureProxy(NULL),
bNeedsCachedReflectionCaptureUpdate(true),
DefaultDynamicHitProxy(NULL),
LightList(NULL),
LastRenderTime(-FLT_MAX),
Scene(InScene),
NumMobileMovableLocalLights(0),
bShouldRenderInMainPass(InComponent->SceneProxy->ShouldRenderInMainPass()),
bVisibleInRealTimeSkyCapture(InComponent->SceneProxy->IsVisibleInRealTimeSkyCaptures()),
#if RHI_RAYTRACING
bDrawInGame(Proxy->IsDrawnInGame()),
bRayTracingFarField(Proxy->IsRayTracingFarField()),
bIsVisibleInSceneCaptures(!InComponent->SceneProxy->IsHiddenInSceneCapture()),
bIsVisibleInSceneCapturesOnly(InComponent->SceneProxy->IsVisibleInSceneCaptureOnly()),
bIsRayTracingRelevant(InComponent->SceneProxy->IsRayTracingRelevant()),
bIsRayTracingStaticRelevant(InComponent->SceneProxy->IsRayTracingStaticRelevant()),
bIsVisibleInRayTracing(InComponent->SceneProxy->IsVisibleInRayTracing()),
CoarseMeshStreamingHandle(INDEX_NONE),
#endif
PackedIndex(INDEX_NONE),
PersistentIndex(FPersistentPrimitiveIndex{ INDEX_NONE }),
ComponentForDebuggingOnly(InComponent),
bNeedsStaticMeshUpdateWithoutVisibilityCheck(false),
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
bNeedsUniformBufferUpdate(false),
bIndirectLightingCacheBufferDirty(false),
bRegisteredVirtualTextureProducerCallback(false),
bRegisteredWithVelocityData(false),
LevelUpdateNotificationIndex(INDEX_NONE),
InstanceSceneDataOffset(INDEX_NONE),
NumInstanceSceneDataEntries(0),
InstancePayloadDataOffset(INDEX_NONE),
InstancePayloadDataStride(0),
LightmapDataOffset(INDEX_NONE),
NumLightmapDataEntries(0)
{
check(ComponentForDebuggingOnly);
check(PrimitiveComponentId.IsValid());
check(Proxy);
const UPrimitiveComponent* SearchParentComponent = InComponent->GetLightingAttachmentRoot();
if (SearchParentComponent && SearchParentComponent != InComponent)
{
LightingAttachmentRoot = SearchParentComponent->ComponentId;
}
// Only create hit proxies in the Editor as that's where they are used.
if (GIsEditor)
{
// Create a dynamic hit proxy for the primitive.
DefaultDynamicHitProxy = Proxy->CreateHitProxies(InComponent,HitProxies);
if( DefaultDynamicHitProxy )
{
DefaultDynamicHitProxyId = DefaultDynamicHitProxy->Id;
}
}
// set LOD parent info if exists
UPrimitiveComponent* LODParent = InComponent->GetLODParentPrimitive();
if (LODParent)
{
LODParentComponentId = LODParent->ComponentId;
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3228013) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3156770 on 2016/10/10 by Allan.Bentham Fix VULKAN_ENABLE_API_DUMP build on android. Change 3157838 on 2016/10/11 by Allan.Bentham Fix Vulkan API tracing on android. Change 3170713 on 2016/10/21 by Steve.Cano Adding the "Optional Mobile Features BP Library" plugin to explose Blueprint functions for Sound Volume, Battery level, system temperature (only available on android), and Headphones being plugged in #jira UE-30896 #android #ios #ue4 Change 3171064 on 2016/10/21 by Steve.Cano Plugins to provide a common interface and Android implemenation for providing access to GPS / Location data from Blueprints #ue4 #android #jira UE-35917 Change 3171065 on 2016/10/21 by Steve.Cano IOS implementation of LocationServices plugin to provide access to location data in Blueprints #ue4 #ios #jira UE-35917 Change 3181802 on 2016/11/01 by Steve.Cano Fix an issue introduced in CL 3170713 - Adding new config section to RequiredSections list so that we can generate projects successfully. #jira UE-30896 #ios Change 3181807 on 2016/11/01 by Steve.Cano Make sure to clear out references to our eglSurface when we destroy it, else we will try to set our context with an invalid surface. #jira UE-35004 #android #ue4 Change 3184827 on 2016/11/03 by Allan.Bentham Do not HDR32 encode for views without view family. TranslucentAlphaOnly blend mode now works with encoding. #jira UE-37951 Change 3186684 on 2016/11/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3188693 on 2016/11/07 by Chris.Babcock Corrections to memory stats for Android #jira WEX-3760 #ue4 #android Change 3191538 on 2016/11/09 by Allan.Bentham Mobile tonemapper can use CVarTonemapperOverride Change 3192575 on 2016/11/09 by Chris.Babcock Support placing UE4Game files in ExternalFilesDir for automatic cleanup on uninstall for distribution packages #jira UEPLAT-1422 #ue4 #android Change 3196231 on 2016/11/13 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3196538 on 2016/11/14 by Jack.Porter Fix issue where lighting would not build for the first editor session of projects defaulting to MobileHDR=false as HardwareTargetingModule didn't set cvars #jira UE-38507 Change 3198068 on 2016/11/15 by Dmitriy.Dyomin Fixed android console command sender to work with ADB version 1.0.36 #jira UE-35171 Change 3200230 on 2016/11/16 by Jack.Porter Remove mosaic resolution limitation on ES3 devices #jira WEX-3119 Change 3201251 on 2016/11/16 by Chris.Babcock Fix Android compile error Change 3203542 on 2016/11/18 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3205598 on 2016/11/21 by Dmitriy.Dyomin Fixed: Missing selection outline in editor ES2 preview #jira UE-6458 Change 3205622 on 2016/11/21 by Dmitriy.Dyomin Fix ES2 build error from CL# 3205598 Change 3207232 on 2016/11/22 by Dmitriy.Dyomin ES2 GLSL generated shader simplifications Change 3208608 on 2016/11/23 by Dmitriy.Dyomin Fixed: Landscape Grasstype warning causes log spam when landscape is streamed in or out #jira UE-38694 Change 3209135 on 2016/11/23 by Alicia.Cano Packaging for iOS fails due to several invalid object type errors #jira UE-38431 #ios Change 3209822 on 2016/11/24 by Jack.Porter IWYU changes for LocationServicesBPLibrary Change 3209824 on 2016/11/24 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3210264 on 2016/11/25 by Jack.Porter Fix unicode compile issue on Korean windows Change 3210268 on 2016/11/25 by Jack.Porter IWYU and unicode fixes to Dev-Mobile Change 3211800 on 2016/11/28 by Allan.Bentham Create and set PrimitiveSceneProxy->PrimitiveSceneInfo before SetTransform render thread command is enqueued. Avoids race condition with FPrimitiveSceneInfo's constructor which can occur on out-of-order CPUs. Change 3212621 on 2016/11/28 by Jack.Porter More IWYU fixes. Change 3213080 on 2016/11/29 by Allan.Bentham enable UseSingleSampleShadowFromStationaryLights on mobile. PR #2990: Fixes single sample shadows for mobile. (Contributed by kallehamalainen) Change 3213164 on 2016/11/29 by Jack.Porter Win32 IWYU fix Change 3213932 on 2016/11/29 by Chris.Babcock Fix handling of ETC2 filtering by Google Play Store (if only ETC2, require ES3.0+ but don't use texture filtering in manifest) #jira UE-39120 #ue4 #android Change 3214563 on 2016/11/29 by Dmitriy.Dyomin Disable dynamic buffer discarding on Adreno330 (was casuing 10ms stalls on slate buffers update) Change 3214571 on 2016/11/29 by Dmitriy.Dyomin Custom stencil on Mobile #jira UEMOB-183 Change 3214641 on 2016/11/30 by Dmitriy.Dyomin Disable distance culling when rendering image for world composition #jira UE-37754 Change 3214656 on 2016/11/30 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3218479 on 2016/12/01 by Jack.Porter Fix for Vulkan build error when using AutoSDK Change 3218596 on 2016/12/02 by Dmitriy.Dyomin Fixed: Android split screen multiplayer does not function or render correctly #jira UE-35204 Change 3218874 on 2016/12/02 by Allan.Bentham Fix CSM shadow bug when ES3.1 + mobileHDR == false. Fix inverted culling when rendering shadow depths with mobilehdr == false #jira UE-39111 Change 3220911 on 2016/12/04 by Jack.Porter Fixed landscape duplicated GUID detection and crash when one of the landscapes is in a hidden streaming level Change 3220935 on 2016/12/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3222831 on 2016/12/05 by Dmitriy.Dyomin Added support for MGD and Andreno profilers #jira UEMOB-184 Change 3222843 on 2016/12/05 by Jack.Porter Fixed bug caused by CL 3196538 causing r.MobileHDR to toggle and crash when opening render settings #jira UE-38507 Change 3222934 on 2016/12/06 by Jack.Porter Android graphics debugger text changes Change 3223042 on 2016/12/06 by Dmitriy.Dyomin Fixed: missing GPU particles in LDR mode on device #jira UE-39363 Change 3223043 on 2016/12/06 by Jack.Porter Fixed logspam warnings from TcpMessaging launching on Android #jira UE-37895 Change 3223046 on 2016/12/06 by Allan.Bentham Move ES3.1 preview mode out of experimental. Add per device quality level preview to ES3.1 preview sub menu when project settings allow. #jira UEMOB-178 Change 3223113 on 2016/12/06 by Allan.Bentham changed MOBILE_EMULATION define for METAL_PROFILE on mac. fixes issues with editor primitive rendering with ES3.1 feature level preview. added -featureleveles2/31 commandline support to metalrhi. Change 3223117 on 2016/12/06 by Allan.Bentham Initialise FPrimitiveSceneInfo::CachedReflectionCaptureProxies Change 3223131 on 2016/12/06 by Allan.Bentham Fix translucency rendering when mobilehdr == false. (Disable mod shadows when mobilehdr == false.) #jira UE-38343 Change 3223162 on 2016/12/06 by Jack.Porter Disallow Absolute World Position with "excluding shader offset" on ES2 #jra UE-25555 Change 3223204 on 2016/12/06 by Jack.Porter Fix for unable to save levels when landscape components with tessellation moved to another level #jira UE-39372 Change 3223677 on 2016/12/06 by Chris.Babcock Fix tabs Change 3224139 on 2016/12/06 by Chris.Babcock Support modification of build.xml and add post import additions to GameActivity #jira UE-31372 #PR #2440 #ue4 #android Change 3224152 on 2016/12/06 by Chris.Babcock Add support for MadCatz C.T.R.L.R Android controller models #ue4 #android Change 3224162 on 2016/12/06 by Chris.Babcock Driver bug fix and using separate context for MediaPlayer14 (contributed by BrianHarris) #jira UE-35825 #PR #2787 #ue4 #android Change 3224581 on 2016/12/07 by Dmitriy.Dyomin Fixed black screen regression on iOS OpenGL Also now reporting shader compiler errors in iOS Change 3224589 on 2016/12/07 by Allan.Bentham Increase mobile renderer's maximum CSM cascade limit to 4 and introduce max shadow cascade cvar for mobile which defaults to 2 retaining existing behaviour. #jira UEMOB-187 Change 3224774 on 2016/12/07 by Jack.Porter Added flags for mobile shader permutation reduction Renamed mobile lighting policies to better describe them Set flags to remove policies not used by SunTemple - saves 22MB package size on Android #jira: UEMOB-179 Change 3224782 on 2016/12/07 by Allan.Bentham Add project option to set maximum supported CSM cascades to mobile renderer. #jira UEMOB-187 Change 3224943 on 2016/12/07 by Dmitriy.Dyomin Metal iOS will use sRGB textures #jira UEMOB-189 Change 3225098 on 2016/12/07 by Dmitriy.Dyomin fix for compile error from 3224943 Change 3225188 on 2016/12/07 by Chris.Babcock Fix #includes in deferred Android OpenGL #jira UE-39440 #ue4 #android Change 3226402 on 2016/12/07 by Dmitriy.Dyomin Fixed: wrong condition for r8 srgb on mac #jira UE-39471 Change 3226485 on 2016/12/08 by Dmitriy.Dyomin Fixed: Rendering Artifacts and invisible objects in Fortnite regression from nobile custom stencil changes #jira UE-39452, UE-39455 Change 3226637 on 2016/12/08 by Dmitriy.Dyomin Fixed: Odin Ensure Texture passed to ClearDepthStencil is not what is currently set as RenderTarget #jira UE-39482 Change 3226922 on 2016/12/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3227353 on 2016/12/08 by Chris.Babcock Remove CopyVisualizers batch call again Change 3228013 on 2016/12/08 By Chris.Babcock Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) [CL 3228374 by Jack Porter in Main branch]
2016-12-08 22:53:00 -05:00
FMemory::Memzero(CachedReflectionCaptureProxies);
#if RHI_RAYTRACING
RayTracingGeometries = InComponent->SceneProxy->MoveRayTracingGeometries();
#endif
}
FPrimitiveSceneInfo::~FPrimitiveSceneInfo()
{
check(!OctreeId.IsValidId());
for (int32 PassIndex = 0; PassIndex < EMeshPass::Num; PassIndex++)
{
check(StaticMeshCommandInfos.Num() == 0);
}
}
#if RHI_RAYTRACING
FRHIRayTracingGeometry* FPrimitiveSceneInfo::GetStaticRayTracingGeometryInstance(int LodLevel) const
{
if (RayTracingGeometries.Num() > LodLevel)
{
// TODO: Select different LOD, when build is still pending for this LOD?
if (RayTracingGeometries[LodLevel]->HasPendingBuildRequest())
{
RayTracingGeometries[LodLevel]->BoostBuildPriority();
return nullptr;
}
else if (RayTracingGeometries[LodLevel]->IsValid())
{
return RayTracingGeometries[LodLevel]->RayTracingGeometryRHI;
}
else
{
return nullptr;
}
}
else
{
return nullptr;
}
}
#endif
void FPrimitiveSceneInfo::CacheMeshDrawCommands(FRHICommandListImmediate& RHICmdList, FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
//@todo - only need material uniform buffers to be created since we are going to cache pointers to them
// Any updates (after initial creation) don't need to be forced here
FMaterialRenderProxy::UpdateDeferredCachedUniformExpressions();
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_CacheMeshDrawCommands, FColor::Emerald);
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(FPrimitiveSceneInfo_CacheMeshDrawCommands);
QUICK_SCOPE_CYCLE_COUNTER(STAT_CacheMeshDrawCommands);
FMemMark Mark(FMemStack::Get());
static constexpr int BATCH_SIZE = 64;
const int NumBatches = (SceneInfos.Num() + BATCH_SIZE - 1) / BATCH_SIZE;
auto DoWorkLambda = [Scene, SceneInfos](FCachedPassMeshDrawListContext& DrawListContext, int32 Index)
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_CacheMeshDrawCommand, FColor::Green);
FMemMark Mark(FMemStack::Get());
struct FMeshInfoAndIndex
{
int32 InfoIndex;
int32 MeshIndex;
};
TArray<FMeshInfoAndIndex, TMemStackAllocator<>> MeshBatches;
MeshBatches.Reserve(3 * BATCH_SIZE);
int LocalNum = FMath::Min((Index * BATCH_SIZE) + BATCH_SIZE, SceneInfos.Num());
for (int LocalIndex = (Index * BATCH_SIZE); LocalIndex < LocalNum; LocalIndex++)
{
FPrimitiveSceneInfo* SceneInfo = SceneInfos[LocalIndex];
check(SceneInfo->StaticMeshCommandInfos.Num() == 0);
SceneInfo->StaticMeshCommandInfos.AddDefaulted(EMeshPass::Num * SceneInfo->StaticMeshes.Num());
FPrimitiveSceneProxy* SceneProxy = SceneInfo->Proxy;
// Volumetric self shadow mesh commands need to be generated every frame, as they depend on single frame uniform buffers with self shadow data.
if (!SceneProxy->CastsVolumetricTranslucentShadow())
{
for (int32 MeshIndex = 0; MeshIndex < SceneInfo->StaticMeshes.Num(); MeshIndex++)
{
FStaticMeshBatch& Mesh = SceneInfo->StaticMeshes[MeshIndex];
if (SupportsCachingMeshDrawCommands(Mesh))
{
MeshBatches.Add(FMeshInfoAndIndex{ LocalIndex, MeshIndex });
}
}
}
}
for (int32 PassIndex = 0; PassIndex < EMeshPass::Num; PassIndex++)
{
const EShadingPath ShadingPath = Scene->GetShadingPath();
EMeshPass::Type PassType = (EMeshPass::Type)PassIndex;
if ((FPassProcessorManager::GetPassFlags(ShadingPath, PassType) & EMeshPassFlags::CachedMeshCommands) != EMeshPassFlags::None)
{
FCachedPassMeshDrawListContext::FMeshPassScope MeshPassScope(DrawListContext, PassType);
PassProcessorCreateFunction CreateFunction = FPassProcessorManager::GetCreateFunction(ShadingPath, PassType);
FMeshPassProcessor* PassMeshProcessor = CreateFunction(Scene, nullptr, &DrawListContext);
if (PassMeshProcessor != nullptr)
{
for (const FMeshInfoAndIndex& MeshAndInfo : MeshBatches)
{
FPrimitiveSceneInfo* SceneInfo = SceneInfos[MeshAndInfo.InfoIndex];
FStaticMeshBatch& Mesh = SceneInfo->StaticMeshes[MeshAndInfo.MeshIndex];
FStaticMeshBatchRelevance& MeshRelevance = SceneInfo->StaticMeshRelevances[MeshAndInfo.MeshIndex];
check(!MeshRelevance.CommandInfosMask.Get(PassType));
uint64 BatchElementMask = ~0ull;
// NOTE: AddMeshBatch calls FCachedPassMeshDrawListContext::FinalizeCommand
PassMeshProcessor->AddMeshBatch(Mesh, BatchElementMask, SceneInfo->Proxy);
FCachedMeshDrawCommandInfo CommandInfo = DrawListContext.GetCommandInfoAndReset();
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
if (CommandInfo.CommandIndex != -1 || CommandInfo.StateBucketId != -1)
{
static_assert(sizeof(MeshRelevance.CommandInfosMask) * 8 >= EMeshPass::Num, "CommandInfosMask is too small to contain all mesh passes.");
MeshRelevance.CommandInfosMask.Set(PassType);
MeshRelevance.CommandInfosBase++;
int CommandInfoIndex = MeshAndInfo.MeshIndex * EMeshPass::Num + PassType;
check(SceneInfo->StaticMeshCommandInfos[CommandInfoIndex].MeshPass == EMeshPass::Num);
SceneInfo->StaticMeshCommandInfos[CommandInfoIndex] = CommandInfo;
}
}
PassMeshProcessor->~FMeshPassProcessor();
}
}
}
for (int LocalIndex = (Index * BATCH_SIZE); LocalIndex < LocalNum; LocalIndex++)
{
FPrimitiveSceneInfo* SceneInfo = SceneInfos[LocalIndex];
int PrefixSum = 0;
for (int32 MeshIndex = 0; MeshIndex < SceneInfo->StaticMeshes.Num(); MeshIndex++)
{
FStaticMeshBatchRelevance& MeshRelevance = SceneInfo->StaticMeshRelevances[MeshIndex];
if (MeshRelevance.CommandInfosBase > 0)
{
EMeshPass::Type PassType = EMeshPass::DepthPass;
int NewPrefixSum = PrefixSum;
for (;;)
{
PassType = MeshRelevance.CommandInfosMask.SkipEmpty(PassType);
if (PassType == EMeshPass::Num)
{
break;
}
int CommandInfoIndex = MeshIndex * EMeshPass::Num + PassType;
checkSlow(CommandInfoIndex >= NewPrefixSum);
SceneInfo->StaticMeshCommandInfos[NewPrefixSum] = SceneInfo->StaticMeshCommandInfos[CommandInfoIndex];
NewPrefixSum++;
PassType = EMeshPass::Type(PassType + 1);
}
#if DO_GUARD_SLOW
int NumBits = MeshRelevance.CommandInfosMask.GetNum();
check(PrefixSum + NumBits == NewPrefixSum);
int LastPass = -1;
for (int32 TestIndex = PrefixSum; TestIndex < NewPrefixSum; TestIndex++)
{
int MeshPass = SceneInfo->StaticMeshCommandInfos[TestIndex].MeshPass;
check(MeshPass > LastPass);
LastPass = MeshPass;
}
#endif
MeshRelevance.CommandInfosBase = PrefixSum;
PrefixSum = NewPrefixSum;
}
}
SceneInfo->StaticMeshCommandInfos.SetNum(PrefixSum, true);
}
};
bool bAnyLooseParameterBuffers = false;
if (GMeshDrawCommandsCacheMultithreaded && FApp::ShouldUseThreadingForPerformance())
{
TArray<FCachedPassMeshDrawListContextDeferred, TMemStackAllocator<>> DrawListContexts;
DrawListContexts.Reserve(NumBatches);
for(int32 ContextIndex = 0; ContextIndex < NumBatches; ++ContextIndex)
{
DrawListContexts.Emplace(*Scene);
}
ParallelForTemplate(
NumBatches,
[&DrawListContexts, &DoWorkLambda](int32 Index)
{
FTaskTagScope Scope(ETaskTag::EParallelRenderingThread);
DoWorkLambda(DrawListContexts[Index], Index);
},
EParallelForFlags::PumpRenderingThread | EParallelForFlags::Unbalanced
);
if (NumBatches > 0)
{
SCOPED_NAMED_EVENT(DeferredFinalizeMeshDrawCommands, FColor::Emerald);
for (int32 Index = 0; Index < NumBatches; ++Index)
{
FCachedPassMeshDrawListContextDeferred& DrawListContext = DrawListContexts[Index];
const int32 Start = Index * BATCH_SIZE;
const int32 End = FMath::Min((Index * BATCH_SIZE) + BATCH_SIZE, SceneInfos.Num());
DrawListContext.DeferredFinalizeMeshDrawCommands(SceneInfos, Start, End);
bAnyLooseParameterBuffers |= DrawListContext.HasAnyLooseParameterBuffers();
}
}
}
else
{
FCachedPassMeshDrawListContextImmediate DrawListContext(*Scene);
for (int Idx = 0; Idx < NumBatches; Idx++)
{
DoWorkLambda(DrawListContext, Idx);
}
bAnyLooseParameterBuffers = DrawListContext.HasAnyLooseParameterBuffers();
}
#if DO_GUARD_SLOW
{
static int32 LogCount = 0;
if (bAnyLooseParameterBuffers && (LogCount++ % 1000) == 0)
{
UE_LOG(LogRenderer, Warning, TEXT("One or more Cached Mesh Draw commands use loose parameters. This causes overhead and will break dynamic instancing, potentially reducing performance further. Use Uniform Buffers instead."));
}
}
#endif
if (!FParallelMeshDrawCommandPass::IsOnDemandShaderCreationEnabled())
{
FGraphicsMinimalPipelineStateId::InitializePersistentIds();
}
}
void FPrimitiveSceneInfo::RemoveCachedMeshDrawCommands()
{
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
checkSlow(IsInRenderingThread());
for (int32 CommandIndex = 0; CommandIndex < StaticMeshCommandInfos.Num(); ++CommandIndex)
{
const FCachedMeshDrawCommandInfo& CachedCommand = StaticMeshCommandInfos[CommandIndex];
if (CachedCommand.StateBucketId != INDEX_NONE)
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
{
EMeshPass::Type PassIndex = CachedCommand.MeshPass;
FGraphicsMinimalPipelineStateId CachedPipelineId;
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
{
auto& ElementKVP = Scene->CachedMeshDrawCommandStateBuckets[PassIndex].GetByElementId(CachedCommand.StateBucketId);
CachedPipelineId = ElementKVP.Key.CachedPipelineId;
FMeshDrawCommandCount& StateBucketCount = ElementKVP.Value;
check(StateBucketCount.Num > 0);
StateBucketCount.Num--;
if (StateBucketCount.Num == 0)
{
Scene->CachedMeshDrawCommandStateBuckets[PassIndex].RemoveByElementId(CachedCommand.StateBucketId);
}
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
}
FGraphicsMinimalPipelineStateId::RemovePersistentId(CachedPipelineId);
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
}
else if (CachedCommand.CommandIndex >= 0)
{
FCachedPassMeshDrawList& PassDrawList = Scene->CachedDrawLists[CachedCommand.MeshPass];
FGraphicsMinimalPipelineStateId CachedPipelineId = PassDrawList.MeshDrawCommands[CachedCommand.CommandIndex].CachedPipelineId;
PassDrawList.MeshDrawCommands.RemoveAt(CachedCommand.CommandIndex);
FGraphicsMinimalPipelineStateId::RemovePersistentId(CachedPipelineId);
Moving Daniel Wright's HLR memory optimizations from Dev-Rendering. CL 4871955 Fixed TInlineAllocator::GetAllocatedSize reporting SecondaryData AllocatedSize even when there wasn't any SecondaryData CL 4871994 MeshDrawCommand memory optimizations * When GPUScene is enabled, cached FMeshDrawCommands are only stored in FScene::CachedMeshDrawCommandStateBuckets, so we only have one command per state bucket. * Removed FGraphicsMinimalPipelineStateInitializer, now relying on index into the global table * Union IndirectArgsBuffer with draw params * Trimmed debug data * Removed duplicated space for SRV values, now using a bitmask to indicate SRV or TextureRHI * Deferred renderer GPUPerfTest cached MeshDrawCommands 28Mb -> 2.1Mb * Mobile renderer GPUPerfTest cached MeshDrawCommands 30.7Mb -> 20.5Mb CL 4892243 Resupported r.DoLazyStaticMeshUpdate with mesh draw commands. Now enabled when in game mode, no longer requires cooked build. * GPUPerfTest Total cached MeshDrawCommands 2.324Mb -> 1.691Mb and Primitive StaticMeshCommandInfos 3529.2Kb -> 563.7Kb CL 4925071 Allocate MeshDrawCommands at lowest free index instead of last freed index Shrink MeshDrawCommands periodically when r.DoLazyStaticMeshUpdate is enabled Measured in replay ES31: Cached MeshDrawCommands 5.236Mb -> 2.216Mb CL 4937280 Removed r.DeferUniformBufferUpdatesUntilVisible since it is no longer supported with MeshDrawCommands, which cache the uniform buffer pointer at AddToScene time. Removed dead code referencing it. CL 4937591 Fixed FMeshDrawCommandStateCache always resetting resources at index 0. Found by Rolando. CL 4951781 Attempt to silence static analysis warning #jira none #rb none #rnx #ROBOMERGE-SOURCE: CL 4993090 in //UE4/Release-4.22/... #ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main) [CL 4993091 by krzysztof narkowicz in Main branch]
2019-02-14 08:36:29 -05:00
// Track the lowest index that might be free for faster AddAtLowestFreeIndex
PassDrawList.LowestFreeIndexSearchStart = FMath::Min(PassDrawList.LowestFreeIndexSearchStart, CachedCommand.CommandIndex);
}
}
for (int32 MeshIndex = 0; MeshIndex < StaticMeshRelevances.Num(); ++MeshIndex)
{
FStaticMeshBatchRelevance& MeshRelevance = StaticMeshRelevances[MeshIndex];
MeshRelevance.CommandInfosMask.Reset();
}
StaticMeshCommandInfos.Empty();
}
static void BuildNaniteDrawCommands(FRHICommandListImmediate& RHICmdList, FScene* Scene, FPrimitiveSceneInfo* PrimitiveSceneInfo, FNaniteDrawListContext& DrawListContext);
void FPrimitiveSceneInfo::CacheNaniteDrawCommands(FRHICommandListImmediate& RHICmdList, FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_CacheNaniteDrawCommands, FColor::Emerald);
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(FPrimitiveSceneInfo_CacheNaniteDrawCommands);
QUICK_SCOPE_CYCLE_COUNTER(STAT_CacheNaniteDrawCommands);
FMemMark Mark(FMemStack::Get());
FMaterialRenderProxy::UpdateDeferredCachedUniformExpressions();
const bool bNaniteEnabled = DoesPlatformSupportNanite(GMaxRHIShaderPlatform);
if (bNaniteEnabled)
{
TArray<FNaniteDrawListContext, TInlineAllocator<1>> DrawListContexts;
if (GNaniteDrawCommandCacheMultithreaded && FApp::ShouldUseThreadingForPerformance())
{
ParallelForWithTaskContext(
DrawListContexts,
SceneInfos.Num(),
[&RHICmdList, Scene, &SceneInfos](FNaniteDrawListContext& Context, int32 Index)
{
FMemMark Mark(FMemStack::Get());
FTaskTagScope Scope(ETaskTag::EParallelRenderingThread);
BuildNaniteDrawCommands(RHICmdList, Scene, SceneInfos[Index], Context);
}
);
}
else
{
FNaniteDrawListContext& DrawListContext = DrawListContexts.AddDefaulted_GetRef();
for (FPrimitiveSceneInfo* PrimitiveSceneInfo : SceneInfos)
{
BuildNaniteDrawCommands(RHICmdList, Scene, PrimitiveSceneInfo, DrawListContext);
}
}
if (DrawListContexts.Num() > 0)
{
SCOPED_NAMED_EVENT(NaniteDrawListApply, FColor::Emerald);
for (FNaniteDrawListContext& Context : DrawListContexts)
{
Context.Apply(*Scene);
}
}
}
}
void BuildNaniteDrawCommands(FRHICommandListImmediate& RHICmdList, FScene* Scene, FPrimitiveSceneInfo* PrimitiveSceneInfo, FNaniteDrawListContext& DrawListContext)
{
FPrimitiveSceneProxy* Proxy = PrimitiveSceneInfo->Proxy;
if (Proxy->IsNaniteMesh())
{
Nanite::FSceneProxyBase* NaniteProxy = static_cast<Nanite::FSceneProxyBase*>(Proxy);
{
FNaniteDrawListContext::FPrimitiveSceneInfoScope PrimInfoScope(DrawListContext, *PrimitiveSceneInfo);
auto PassBody = [PrimitiveSceneInfo, NaniteProxy, &DrawListContext](ENaniteMeshPass::Type MeshPass, FMeshPassProcessor* const NaniteMeshProcessor)
{
FNaniteDrawListContext::FMeshPassScope MeshPassScope(DrawListContext, MeshPass);
int32 StaticMeshesCount = PrimitiveSceneInfo->StaticMeshes.Num();
for (int32 MeshIndex = 0; MeshIndex < StaticMeshesCount; ++MeshIndex)
{
FStaticMeshBatchRelevance& MeshRelevance = PrimitiveSceneInfo->StaticMeshRelevances[MeshIndex];
FStaticMeshBatch& Mesh = PrimitiveSceneInfo->StaticMeshes[MeshIndex];
if (MeshRelevance.bSupportsNaniteRendering && Mesh.bUseForMaterial)
{
uint64 BatchElementMask = ~0ull;
NaniteMeshProcessor->AddMeshBatch(Mesh, BatchElementMask, NaniteProxy);
}
}
TArray<Nanite::FSceneProxyBase::FMaterialSection>& NaniteMaterialSections = NaniteProxy->GetMaterialSections();
for (int32 MaterialSectionIndex = 0; MaterialSectionIndex < NaniteMaterialSections.Num(); ++MaterialSectionIndex)
{
Nanite::FSceneProxyBase::FMaterialSection& MaterialSection = NaniteMaterialSections[MaterialSectionIndex];
check(MaterialSection.RasterMaterialProxy != nullptr);
FNaniteRasterPipeline RasterPipeline{};
RasterPipeline.RasterMaterial = MaterialSection.RasterMaterialProxy;
RasterPipeline.bIsTwoSided = !!MaterialSection.MaterialRelevance.bTwoSided;
DrawListContext.DeferredPipelines[MeshPass].Add(
FNaniteDrawListContext::FDeferredPipeline{
PrimitiveSceneInfo,
RasterPipeline,
uint8(MaterialSectionIndex)
}
);
}
};
// ENaniteMeshPass::BasePass
{
FMeshPassProcessor* NaniteMeshProcessor = CreateNaniteMeshProcessor(Scene, nullptr, &DrawListContext);
PassBody(ENaniteMeshPass::BasePass, NaniteMeshProcessor);
NaniteMeshProcessor->~FMeshPassProcessor();
}
// ENaniteMeshPass::LumenCardCapture
if (Lumen::HasPrimitiveNaniteMeshBatches(Proxy) && DoesPlatformSupportLumenGI(GetFeatureLevelShaderPlatform(Scene->GetFeatureLevel())))
{
FMeshPassProcessor* NaniteMeshProcessor = CreateLumenCardNaniteMeshProcessor(Scene, nullptr, &DrawListContext);
PassBody(ENaniteMeshPass::LumenCardCapture, NaniteMeshProcessor);
NaniteMeshProcessor->~FMeshPassProcessor();
}
static_assert(ENaniteMeshPass::Num == 2, "Change BuildNaniteDrawCommands() to account for more Nanite mesh passes");
}
}
}
void FPrimitiveSceneInfo::RemoveCachedNaniteDrawCommands()
{
checkSlow(IsInRenderingThread());
if (!Proxy->IsNaniteMesh())
{
return;
}
QUICK_SCOPE_CYCLE_COUNTER(STAT_RemoveCachedNaniteDrawCommands);
for (int32 NaniteMeshPassIndex = 0; NaniteMeshPassIndex < ENaniteMeshPass::Num; ++NaniteMeshPassIndex)
{
FNaniteMaterialCommands& ShadingCommands = Scene->NaniteMaterials[NaniteMeshPassIndex];
FNaniteRasterPipelines& RasterPipelines = Scene->NaniteRasterPipelines[NaniteMeshPassIndex];
TArray<FNaniteCommandInfo>& NanitePassCommandInfo = NaniteCommandInfos[NaniteMeshPassIndex];
for (int32 CommandIndex = 0; CommandIndex < NanitePassCommandInfo.Num(); ++CommandIndex)
{
const FNaniteCommandInfo& CommandInfo = NanitePassCommandInfo[CommandIndex];
ShadingCommands.Unregister(CommandInfo);
}
TArray<FNaniteRasterBin>& NanitePassRasterBins = NaniteRasterBins[NaniteMeshPassIndex];
for (int32 RasterBinIndex = 0; RasterBinIndex < NanitePassRasterBins.Num(); ++RasterBinIndex)
{
const FNaniteRasterBin& RasterBin = NanitePassRasterBins[RasterBinIndex];
RasterPipelines.Unregister(RasterBin);
}
NanitePassRasterBins.Reset();
NanitePassCommandInfo.Reset();
NaniteMaterialSlots[NaniteMeshPassIndex].Reset();
}
#if WITH_EDITOR
NaniteHitProxyIds.Reset();
#endif
}
#if RHI_RAYTRACING
void FScene::RefreshRayTracingMeshCommandCache()
{
// Get rid of all existing cached commands
CachedRayTracingMeshCommands.Empty(CachedRayTracingMeshCommands.Num());
// Re-cache all current primitives
FPrimitiveSceneInfo::CacheRayTracingPrimitives(this, Primitives);
}
void FScene::RefreshRayTracingInstances()
{
// Re-cache all current primitives
FPrimitiveSceneInfo::UpdateCachedRayTracingInstances(this, Primitives);
}
void FScene::UpdateRayTracedLights()
{
// Whether a light can use ray traced shadows depends on CVars that may be changed at runtime.
// It is not enough to check the light shadow mode when light is added to the scene. This must be done during rendering.
bHasRayTracedLights = false;
if (!IsRayTracingEnabled())
{
return;
}
// We currently don't need a full list of RT lights, only whether there are any RT lights at all.
for (auto LightIt = Lights.CreateConstIterator(); LightIt; ++LightIt)
{
const FLightSceneInfoCompact& LightSceneInfoCompact = *LightIt;
if (ShouldRenderRayTracingShadowsForLight(LightSceneInfoCompact))
{
bHasRayTracedLights = true;
break;
}
}
}
void FPrimitiveSceneInfo::UpdateCachedRayTracingInstances(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
if (IsRayTracingEnabled())
{
checkf(GRHISupportsMultithreadedShaderCreation, TEXT("Raytracing code needs the ability to create shaders from task threads."));
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
// Write group id
const int32 RayTracingGroupId = SceneInfo->Proxy->GetRayTracingGroupId();
if (RayTracingGroupId != -1)
{
Scene->PrimitiveRayTracingGroupIds[SceneInfo->GetIndex()] = Scene->PrimitiveRayTracingGroups.FindId(RayTracingGroupId);
}
FRayTracingInstance CachedRayTracingInstance;
ERayTracingPrimitiveFlags& Flags = Scene->PrimitiveRayTracingFlags[SceneInfo->GetIndex()];
// Cache the coarse mesh streaming handle
SceneInfo->CoarseMeshStreamingHandle = SceneInfo->Proxy->GetCoarseMeshStreamingHandle();
// Write flags
Flags = SceneInfo->Proxy->GetCachedRayTracingInstance(CachedRayTracingInstance);
UpdateCachedRayTracingInstance(SceneInfo, CachedRayTracingInstance, Flags);
}
}
}
struct DeferredMeshLODCommandIndex
{
FPrimitiveSceneInfo* SceneInfo;
int8 MeshLODIndex;
int32 CommandIndex;
};
template<class T>
class FCacheRayTracingPrimitivesContext
{
public:
FCacheRayTracingPrimitivesContext(FScene* Scene)
: CommandContext(Commands)
, PassDrawRenderState(Scene->UniformBuffers.ViewUniformBuffer)
, RayTracingMeshProcessor(&CommandContext, Scene, nullptr, PassDrawRenderState, Scene->CachedRayTracingMeshCommandsMode)
{ }
FTempRayTracingMeshCommandStorage Commands;
FCachedRayTracingMeshCommandContext<T> CommandContext;
FMeshPassProcessorRenderState PassDrawRenderState;
FRayTracingMeshProcessor RayTracingMeshProcessor;
TArray<DeferredMeshLODCommandIndex> DeferredMeshLODCommandIndices;
};
template<bool bDeferLODCommandIndices, class T>
void CacheRayTracingPrimitive(
FScene* Scene,
FPrimitiveSceneInfo* SceneInfo,
T& Commands,
FCachedRayTracingMeshCommandContext<T>& CommandContext,
FRayTracingMeshProcessor& RayTracingMeshProcessor,
TArray<DeferredMeshLODCommandIndex>* DeferredMeshLODCommandIndices,
FRayTracingInstance& CachedRayTracingInstance,
ERayTracingPrimitiveFlags& Flags)
{
if (SceneInfo->GetRayTracingGeometryNum() > 0 && SceneInfo->StaticMeshes.Num() > 0)
{
int32 MaxLOD = -1;
for (const FStaticMeshBatch& Mesh : SceneInfo->StaticMeshes)
{
MaxLOD = MaxLOD < Mesh.LODIndex ? Mesh.LODIndex : MaxLOD;
}
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD.Empty(MaxLOD + 1);
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD.AddDefaulted(MaxLOD + 1);
SceneInfo->CachedRayTracingMeshCommandsHashPerLOD.Empty(MaxLOD + 1);
SceneInfo->CachedRayTracingMeshCommandsHashPerLOD.AddZeroed(MaxLOD + 1);
for (const FStaticMeshBatch& Mesh : SceneInfo->StaticMeshes)
{
// Why do we pass a full mask here when the dynamic case only uses a mask of 1?
// Also note that the code below assumes only a single command was generated per batch (see SupportsCachingMeshDrawCommands(...))
const uint64 BatchElementMask = ~0ull;
RayTracingMeshProcessor.AddMeshBatch(Mesh, BatchElementMask, SceneInfo->Proxy);
if (CommandContext.CommandIndex >= 0)
{
uint64& Hash = SceneInfo->CachedRayTracingMeshCommandsHashPerLOD[Mesh.LODIndex];
Hash <<= 1;
Hash ^= Commands[CommandContext.CommandIndex].ShaderBindings.GetDynamicInstancingHash();
if (bDeferLODCommandIndices)
{
DeferredMeshLODCommandIndices->Add({ SceneInfo,Mesh.LODIndex, CommandContext.CommandIndex });
}
else
{
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD[Mesh.LODIndex].Add(CommandContext.CommandIndex);
}
CommandContext.CommandIndex = -1;
}
}
}
// This path is mutually exclusive with the old path (used by normal static meshes) and is only used by Nanite proxies now.
// TODO: move normal static meshes to this path, but needs testing to not break FN
// Write group id
const int32 RayTracingGroupId = SceneInfo->Proxy->GetRayTracingGroupId();
if (RayTracingGroupId != -1)
{
Scene->PrimitiveRayTracingGroupIds[SceneInfo->GetIndex()] = Scene->PrimitiveRayTracingGroups.FindId(RayTracingGroupId);
}
// Write flags
Flags = SceneInfo->Proxy->GetCachedRayTracingInstance(CachedRayTracingInstance);
// Cache the coarse mesh streaming handle
SceneInfo->CoarseMeshStreamingHandle = SceneInfo->Proxy->GetCoarseMeshStreamingHandle();
if (EnumHasAnyFlags(Flags, ERayTracingPrimitiveFlags::CacheMeshCommands))
{
// TODO: LOD w/ screen size support. Probably needs another array parallel to OutRayTracingInstances
// We assume it is exactly 1 LOD now (true for Nanite proxies)
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD.Empty(1);
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD.AddDefaulted(1);
SceneInfo->CachedRayTracingMeshCommandsHashPerLOD.Empty(1);
SceneInfo->CachedRayTracingMeshCommandsHashPerLOD.AddZeroed(1);
for (const FMeshBatch& Mesh : CachedRayTracingInstance.Materials)
{
// Why do we pass a full mask here when the dynamic case only uses a mask of 1?
// Also note that the code below assumes only a single command was generated per batch (see SupportsCachingMeshDrawCommands(...))
const uint64 BatchElementMask = ~0ull;
RayTracingMeshProcessor.AddMeshBatch(Mesh, BatchElementMask, SceneInfo->Proxy);
// The material section must emit a command. Otherwise, it should have been excluded earlier
check(CommandContext.CommandIndex >= 0);
uint64& Hash = SceneInfo->CachedRayTracingMeshCommandsHashPerLOD[Mesh.LODIndex];
Hash <<= 1;
Hash ^= Commands[CommandContext.CommandIndex].ShaderBindings.GetDynamicInstancingHash();
if (bDeferLODCommandIndices)
{
DeferredMeshLODCommandIndices->Add({ SceneInfo,Mesh.LODIndex, CommandContext.CommandIndex });
}
else
{
SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD[Mesh.LODIndex].Add(CommandContext.CommandIndex);
}
CommandContext.CommandIndex = -1;
}
}
}
void FPrimitiveSceneInfo::CacheRayTracingPrimitives(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
if (IsRayTracingEnabled())
{
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(FPrimitiveSceneInfo_CacheRayTracingPrimitives)
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_CacheRayTracingPrimitives, FColor::Emerald);
checkf(GRHISupportsMultithreadedShaderCreation, TEXT("Raytracing code needs the ability to create shaders from task threads."));
FCachedRayTracingMeshCommandStorage& CachedRayTracingMeshCommands = Scene->CachedRayTracingMeshCommands;
if (GRayTracingPrimitiveCacheMultithreaded && FApp::ShouldUseThreadingForPerformance())
{
TArray<FCacheRayTracingPrimitivesContext<FTempRayTracingMeshCommandStorage>> Contexts;
ParallelForWithTaskContext(
Contexts,
SceneInfos.Num(),
[Scene](int32 ContextIndex, int32 NumContexts) { return Scene; },
[Scene, &SceneInfos](FCacheRayTracingPrimitivesContext<FTempRayTracingMeshCommandStorage>& Context, int32 Index)
{
FMemMark Mark(FMemStack::Get());
FOptionalTaskTagScope Scope(ETaskTag::EParallelRenderingThread);
FPrimitiveSceneInfo* SceneInfo = SceneInfos[Index];
FRayTracingInstance CachedInstance;
ERayTracingPrimitiveFlags& Flags = Scene->PrimitiveRayTracingFlags[SceneInfo->GetIndex()];
CacheRayTracingPrimitive<true>(Scene, SceneInfo, Context.Commands, Context.CommandContext, Context.RayTracingMeshProcessor, &Context.DeferredMeshLODCommandIndices, CachedInstance, Flags);
UpdateCachedRayTracingInstance(SceneInfo, CachedInstance, Flags);
}
);
if (Contexts.Num() > 0)
{
CSV_SCOPED_TIMING_STAT_EXCLUSIVE(FPrimitiveSceneInfo_CacheRayTracingPrimitives_Merge)
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_CacheRayTracingPrimitives_Merge, FColor::Emerald);
// copy commands generated by multiple threads to the sparse array in FScene
// and set each mesh LOD command index
for (const auto& Context : Contexts)
{
for (const DeferredMeshLODCommandIndex& Entry : Context.DeferredMeshLODCommandIndices)
{
int32 CommandIndex = CachedRayTracingMeshCommands.Add(Context.Commands[Entry.CommandIndex]);
Entry.SceneInfo->CachedRayTracingMeshCommandIndicesPerLOD[Entry.MeshLODIndex].Add(CommandIndex);
}
}
}
}
else
{
FCachedRayTracingMeshCommandContext CommandContext(CachedRayTracingMeshCommands);
FMeshPassProcessorRenderState PassDrawRenderState(Scene->UniformBuffers.ViewUniformBuffer);
FRayTracingMeshProcessor RayTracingMeshProcessor(&CommandContext, Scene, nullptr, PassDrawRenderState, Scene->CachedRayTracingMeshCommandsMode);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
FRayTracingInstance CachedRayTracingInstance;
ERayTracingPrimitiveFlags& Flags = Scene->PrimitiveRayTracingFlags[SceneInfo->GetIndex()];
CacheRayTracingPrimitive<false>(Scene, SceneInfo, CachedRayTracingMeshCommands, CommandContext, RayTracingMeshProcessor, nullptr, CachedRayTracingInstance, Flags);
UpdateCachedRayTracingInstance(SceneInfo, CachedRayTracingInstance, Flags);
}
}
}
}
void FPrimitiveSceneInfo::UpdateCachedRayTracingInstance(FPrimitiveSceneInfo* SceneInfo, const FRayTracingInstance& CachedRayTracingInstance, const ERayTracingPrimitiveFlags Flags)
{
if (EnumHasAnyFlags(Flags, ERayTracingPrimitiveFlags::CacheInstances))
{
checkf(CachedRayTracingInstance.InstanceTransforms.IsEmpty() && CachedRayTracingInstance.InstanceTransformsView.IsEmpty(),
TEXT("Primitives with ERayTracingPrimitiveFlags::CacheInstances get instances transforms from GPUScene"));
// TODO: allocate from FRayTracingScene & do better low-level caching
SceneInfo->CachedRayTracingInstance.NumTransforms = CachedRayTracingInstance.NumTransforms;
SceneInfo->CachedRayTracingInstance.BaseInstanceSceneDataOffset = SceneInfo->GetInstanceSceneDataOffset();
SceneInfo->CachedRayTracingInstanceWorldBounds.Empty();
SceneInfo->CachedRayTracingInstanceWorldBounds.AddUninitialized(CachedRayTracingInstance.NumTransforms);
SceneInfo->UpdateCachedRayTracingInstanceWorldBounds(SceneInfo->Proxy->GetLocalToWorld());
SceneInfo->CachedRayTracingInstance.GeometryRHI = CachedRayTracingInstance.Geometry->RayTracingGeometryRHI;
// At this point (in AddToScene()) PrimitiveIndex has been set
check(SceneInfo->GetIndex() != INDEX_NONE);
SceneInfo->CachedRayTracingInstance.DefaultUserData = (uint32)SceneInfo->GetIndex();
SceneInfo->CachedRayTracingInstance.Mask = CachedRayTracingInstance.Mask; // When no cached command is found, InstanceMask == 0 and the instance is effectively filtered out
SceneInfo->CachedRayTracingInstance.bApplyLocalBoundsTransform = CachedRayTracingInstance.bApplyLocalBoundsTransform;
if (CachedRayTracingInstance.bForceOpaque)
{
SceneInfo->CachedRayTracingInstance.Flags |= ERayTracingInstanceFlags::ForceOpaque;
}
if (CachedRayTracingInstance.bDoubleSided)
{
SceneInfo->CachedRayTracingInstance.Flags |= ERayTracingInstanceFlags::TriangleCullDisable;
}
}
}
void FPrimitiveSceneInfo::RemoveCachedRayTracingPrimitives()
{
if (IsRayTracingEnabled())
{
for (auto& CachedRayTracingMeshCommandIndices : CachedRayTracingMeshCommandIndicesPerLOD)
{
for (auto CommandIndex : CachedRayTracingMeshCommandIndices)
{
if (CommandIndex >= 0)
{
Scene->CachedRayTracingMeshCommands.RemoveAt(CommandIndex);
}
}
}
CachedRayTracingMeshCommandIndicesPerLOD.Empty();
CachedRayTracingMeshCommandsHashPerLOD.Empty();
}
}
void FPrimitiveSceneInfo::UpdateCachedRayTracingInstanceWorldBounds(const FMatrix& NewPrimitiveLocalToWorld)
{
QUICK_SCOPE_CYCLE_COUNTER(STAT_UpdateCachedRayTracingInstanceWorldBounds);
TRACE_CPUPROFILER_EVENT_SCOPE(UpdateCachedRayTracingInstanceWorldBounds);
TConstArrayView<FPrimitiveInstance> InstanceSceneData = Proxy->GetInstanceSceneData();
SmallestRayTracingInstanceWorldBoundsIndex = 0;
for (int32 Index = 0; Index < CachedRayTracingInstanceWorldBounds.Num(); Index++)
{
const FRenderBounds& LocalBoundingBox = Proxy->GetInstanceLocalBounds(Index);
FMatrix LocalTransform = InstanceSceneData[Index].LocalToPrimitive.ToMatrix();
CachedRayTracingInstanceWorldBounds[Index] = LocalBoundingBox.TransformBy(LocalTransform * NewPrimitiveLocalToWorld).ToBoxSphereBounds();
SmallestRayTracingInstanceWorldBoundsIndex = CachedRayTracingInstanceWorldBounds[Index].SphereRadius < CachedRayTracingInstanceWorldBounds[SmallestRayTracingInstanceWorldBoundsIndex].SphereRadius ? Index : SmallestRayTracingInstanceWorldBoundsIndex;
}
}
#endif
void FPrimitiveSceneInfo::AddStaticMeshes(FRHICommandListImmediate& RHICmdList, FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos, bool bAddToStaticDrawLists)
{
LLM_SCOPE(ELLMTag::StaticMesh);
{
ParallelForTemplate(SceneInfos.Num(), [Scene, &SceneInfos](int32 Index)
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
{
FOptionalTaskTagScope Scope(ETaskTag::EParallelRenderingThread);
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddStaticMeshes_DrawStaticElements, FColor::Magenta);
FPrimitiveSceneInfo* SceneInfo = SceneInfos[Index];
// Cache the primitive's static mesh elements.
FBatchingSPDI BatchingSPDI(SceneInfo);
BatchingSPDI.SetHitProxy(SceneInfo->DefaultDynamicHitProxy);
SceneInfo->Proxy->DrawStaticElements(&BatchingSPDI);
SceneInfo->StaticMeshes.Shrink();
SceneInfo->StaticMeshRelevances.Shrink();
check(SceneInfo->StaticMeshRelevances.Num() == SceneInfo->StaticMeshes.Num());
});
}
{
const ERHIFeatureLevel::Type FeatureLevel = Scene->GetFeatureLevel();
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddStaticMeshes_UpdateSceneArrays, FColor::Blue);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
// Allocate OIT index buffer where needed
const bool bAllocateSortedTriangles = OIT::IsEnabled(EOITSortingType::SortedTriangles, GMaxRHIShaderPlatform) && SceneInfo->Proxy->SupportsSortedTriangles();
for (int32 MeshIndex = 0; MeshIndex < SceneInfo->StaticMeshes.Num(); MeshIndex++)
{
FStaticMeshBatchRelevance& MeshRelevance = SceneInfo->StaticMeshRelevances[MeshIndex];
FStaticMeshBatch& Mesh = SceneInfo->StaticMeshes[MeshIndex];
// Add the static mesh to the scene's static mesh list.
FSparseArrayAllocationInfo SceneArrayAllocation = Scene->StaticMeshes.AddUninitialized();
Scene->StaticMeshes[SceneArrayAllocation.Index] = &Mesh;
Mesh.Id = SceneArrayAllocation.Index;
MeshRelevance.Id = SceneArrayAllocation.Index;
if (bAllocateSortedTriangles && OIT::IsCompatible(Mesh, FeatureLevel))
{
FSortedTriangleData Allocation = Scene->OITSceneData.Allocate(Mesh.Elements[0].IndexBuffer, EPrimitiveType(Mesh.Type), Mesh.Elements[0].FirstIndex, Mesh.Elements[0].NumPrimitives);
OIT::ConvertSortedIndexToDynamicIndex(&Allocation, &Mesh.Elements[0].DynamicIndexBuffer);
}
}
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
}
}
if (bAddToStaticDrawLists)
{
CacheMeshDrawCommands(RHICmdList, Scene, SceneInfos);
CacheNaniteDrawCommands(RHICmdList, Scene, SceneInfos);
#if RHI_RAYTRACING
CacheRayTracingPrimitives(Scene, SceneInfos);
#endif
}
}
static void OnVirtualTextureDestroyed(const FVirtualTextureProducerHandle& InHandle, void* Baton)
{
FPrimitiveSceneInfo* PrimitiveSceneInfo = static_cast<FPrimitiveSceneInfo*>(Baton);
// Update the main uniform buffer
PrimitiveSceneInfo->UpdateStaticLightingBuffer();
// Also need to update lightmap data inside GPUScene, if that's enabled
PrimitiveSceneInfo->Scene->GPUScene.AddPrimitiveToUpdate(PrimitiveSceneInfo->GetIndex(), EPrimitiveDirtyState::ChangedStaticLighting);
}
static void GetRuntimeVirtualTextureLODRange(TArray<class FStaticMeshBatchRelevance> const& MeshRelevances, int8& OutMinLOD, int8& OutMaxLOD)
{
OutMinLOD = MAX_int8;
OutMaxLOD = 0;
for (int32 MeshIndex = 0; MeshIndex < MeshRelevances.Num(); ++MeshIndex)
{
const FStaticMeshBatchRelevance& MeshRelevance = MeshRelevances[MeshIndex];
if (MeshRelevance.bRenderToVirtualTexture)
{
OutMinLOD = FMath::Min(OutMinLOD, MeshRelevance.LODIndex);
OutMaxLOD = FMath::Max(OutMaxLOD, MeshRelevance.LODIndex);
}
}
check(OutMinLOD <= OutMaxLOD);
}
int32 FPrimitiveSceneInfo::UpdateStaticLightingBuffer()
{
checkSlow(IsInRenderingThread());
if (bRegisteredVirtualTextureProducerCallback)
{
// Remove any previous VT callbacks
FVirtualTextureSystem::Get().RemoveAllProducerDestroyedCallbacks(this);
bRegisteredVirtualTextureProducerCallback = false;
}
FPrimitiveSceneProxy::FLCIArray LCIs;
Proxy->GetLCIs(LCIs);
for (int32 i = 0; i < LCIs.Num(); ++i)
{
FLightCacheInterface* LCI = LCIs[i];
if (LCI)
{
LCI->CreatePrecomputedLightingUniformBuffer_RenderingThread(Scene->GetFeatureLevel());
// If lightmap is using virtual texture, need to set a callback to update our uniform buffers if VT is destroyed,
// since we cache VT parameters inside these uniform buffers
FVirtualTextureProducerHandle VTProducerHandle;
if (LCI->GetVirtualTextureLightmapProducer(Scene->GetFeatureLevel(), VTProducerHandle))
{
FVirtualTextureSystem::Get().AddProducerDestroyedCallback(VTProducerHandle, &OnVirtualTextureDestroyed, this);
bRegisteredVirtualTextureProducerCallback = true;
}
}
}
return LCIs.Num();
}
void FPrimitiveSceneInfo::AllocateGPUSceneInstances(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
if (Scene->GPUScene.IsEnabled())
{
SCOPE_CYCLE_COUNTER(STAT_UpdateGPUSceneTime);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
check
(
SceneInfo->InstanceSceneDataOffset == INDEX_NONE &&
SceneInfo->NumInstanceSceneDataEntries == 0 &&
SceneInfo->InstancePayloadDataOffset == INDEX_NONE &&
SceneInfo->InstancePayloadDataStride == 0
);
if (SceneInfo->Proxy->SupportsInstanceDataBuffer())
{
const TConstArrayView<FPrimitiveInstance> InstanceSceneData = SceneInfo->Proxy->GetInstanceSceneData();
SceneInfo->NumInstanceSceneDataEntries = InstanceSceneData.Num();
if (SceneInfo->NumInstanceSceneDataEntries > 0)
{
SceneInfo->InstanceSceneDataOffset = Scene->GPUScene.AllocateInstanceSceneDataSlots(SceneInfo->NumInstanceSceneDataEntries);
SceneInfo->InstancePayloadDataStride = SceneInfo->Proxy->GetPayloadDataStride(); // Returns number of float4 optional data values
if (SceneInfo->InstancePayloadDataStride > 0)
{
const uint32 TotalFloat4Count = SceneInfo->NumInstanceSceneDataEntries * SceneInfo->InstancePayloadDataStride;
SceneInfo->InstancePayloadDataOffset = Scene->GPUScene.AllocateInstancePayloadDataSlots(TotalFloat4Count);
}
if (GGPUSceneInstanceBVH)
{
// TODO: Replace Instance BVH FBounds with FRenderBounds
for (int32 InstanceIndex = 0; InstanceIndex < SceneInfo->NumInstanceSceneDataEntries; ++InstanceIndex)
{
const FPrimitiveInstance& PrimitiveInstance = InstanceSceneData[InstanceIndex];
FRenderBounds WorldBounds = SceneInfo->Proxy->GetInstanceLocalBounds(InstanceIndex);
WorldBounds.TransformBy(PrimitiveInstance.ComputeLocalToWorld(SceneInfo->Proxy->GetLocalToWorld()));
Scene->InstanceBVH.Add(FBounds3f({ WorldBounds.GetMin(), WorldBounds.GetMax() }), SceneInfo->InstanceSceneDataOffset + InstanceIndex);
}
}
}
}
else
{
// Allocate a single 'dummy/fallback' instance for the primitive that gets automatically populated with the data from the primitive
SceneInfo->InstanceSceneDataOffset = Scene->GPUScene.AllocateInstanceSceneDataSlots(1);
SceneInfo->NumInstanceSceneDataEntries = 1;
// TODO: Hook up for dummy instances?
SceneInfo->InstancePayloadDataOffset = INDEX_NONE;
SceneInfo->InstancePayloadDataStride = 0;
}
// Force a primitive update in the GPU scene,
// NOTE: does not set Added as this is handled elsewhere.
Scene->GPUScene.AddPrimitiveToUpdate(SceneInfo->PackedIndex, EPrimitiveDirtyState::ChangedAll);
// Force a primitive update in the Lumen scene
if (Scene->LumenSceneData)
{
Scene->LumenSceneData->UpdatePrimitiveInstanceOffset(SceneInfo->PackedIndex);
}
}
OnGPUSceneInstancesAllocated.Broadcast();
}
}
Adding an UpdateInstances function to UInstancedStaticMeshComponent. This avoids doing a full MarkRenderStateDirty() call in favor of a MarkRenderTransformDirty() call. This will only update the instance data for the primitive instead of fully removing and adding the primitive to the scene. - Added a function, ReallocateGPUSceneInstances, which will free and then alloc all the instances in GPU Scene for the primitives passed into it. This can be done more efficiently especially if we skip doing an free/alloc if the instance count doesn't change. - Fixed a bug in UpdateFromCommandBuffer_RenderThread that was setting FStaticMeshInstanceData::NumCustomDataFloats to FStaticMeshInstanceData::NumCustomDataFloats (resulting in the same value being used each time). Now the new float data count is pulled from the Cmd Buffer which is the single source of truth to update from. - FInstanceUpdateCmdBuffer has now been moved to its own header and is the "public" interface for pushing new transforms from the ISM component, through the scene, and into the Proxy. - Adding tracking for updates/removes and an option to set previous transforms and setting custom float data in bulk on the FInstanceUpdateCmdBuffer. - Added a new function called UpdateInstances on UInstancedStaticMeshComponent that under the hood does a minimal update of just the transform data instead of add/remove the whole component to the scene. - The UPrimtiveComponent has the FInstanceUpdateCmdBuffer to push instance transforms through instead of the UInstancedStaticMeshComponent. This way the code in FScene which pushes data from the PrimtiveComponent down to the proxy can stay generic. This avoids adding a virtual function call or special casing the code with a cast. - Adding an argument to avoid freeing the contents of the FInstanceUpdateCmdBuffer. This way the data can be re-used by the update transform code. - Adding stats to measure update instance time. #rb Krzysztof.Narkowicz #preflight 614a3e9b286e3b0001129f3c #lockdown michal.valient [FYI] Ola.Olsson, Graham.Wihlidal #ROBOMERGE-OWNER: jon.nabozny #ROBOMERGE-AUTHOR: jason.nadro #ROBOMERGE-SOURCE: CL 17595446 via CL 17954858 via CL 18364841 via CL 18364869 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469) [CL 18364936 by jon nabozny in ue5-release-engine-test branch]
2021-12-02 23:48:06 -05:00
void FPrimitiveSceneInfo::ReallocateGPUSceneInstances(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
SCOPED_NAMED_EVENT(ReallocateGPUSceneInstances, FColor::Emerald);
// Free each scene info.
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
SceneInfo->FreeGPUSceneInstances();
}
// Allocate them all.
AllocateGPUSceneInstances(Scene, SceneInfos);
}
void FPrimitiveSceneInfo::FreeGPUSceneInstances()
{
if (!Scene->GPUScene.IsEnabled())
{
return;
}
// Release all instance data slots associated with this primitive.
if (InstanceSceneDataOffset != INDEX_NONE)
{
SCOPE_CYCLE_COUNTER(STAT_UpdateGPUSceneTime);
check(Proxy->SupportsInstanceDataBuffer() || NumInstanceSceneDataEntries == 1);
if (GGPUSceneInstanceBVH)
{
for (int32 InstanceIndex = 0; InstanceIndex < NumInstanceSceneDataEntries; InstanceIndex++)
{
Scene->InstanceBVH.Remove(InstanceSceneDataOffset + InstanceIndex);
}
}
// Release all instance payload data slots associated with this primitive.
if (InstancePayloadDataOffset != INDEX_NONE)
{
check(InstancePayloadDataStride > 0);
const uint32 TotalFloat4Count = NumInstanceSceneDataEntries * InstancePayloadDataStride;
Scene->GPUScene.FreeInstancePayloadDataSlots(InstancePayloadDataOffset, TotalFloat4Count);
InstancePayloadDataOffset = INDEX_NONE;
InstancePayloadDataStride = 0;
}
Scene->GPUScene.FreeInstanceSceneDataSlots(InstanceSceneDataOffset, NumInstanceSceneDataEntries);
InstanceSceneDataOffset = INDEX_NONE;
NumInstanceSceneDataEntries = 0;
OnGPUSceneInstancesFreed.Broadcast();
}
}
void FPrimitiveSceneInfo::AddToScene(FRHICommandListImmediate& RHICmdList, FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos, bool bUpdateStaticDrawLists, bool bAddToStaticDrawLists, bool bAsyncCreateLPIs)
{
check(IsInRenderingThread());
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_IndirectLightingCacheUniformBuffer, FColor::Turquoise);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
FPrimitiveSceneProxy* Proxy = SceneInfo->Proxy;
// Create an indirect lighting cache uniform buffer if we attaching a primitive that may require it, as it may be stored inside a cached mesh command.
if (IsIndirectLightingCacheAllowed(Scene->GetFeatureLevel())
&& Proxy->WillEverBeLit()
&& ((Proxy->HasStaticLighting() && Proxy->NeedsUnbuiltPreviewLighting()) || (Proxy->IsMovable() && Proxy->GetIndirectLightingCacheQuality() != ILCQ_Off) || Proxy->GetLightmapType() == ELightmapType::ForceVolumetric))
{
if (!SceneInfo->IndirectLightingCacheUniformBuffer)
{
FIndirectLightingCacheUniformParameters Parameters;
GetIndirectLightingCacheParameters(
Scene->GetFeatureLevel(),
Parameters,
nullptr,
nullptr,
FVector(0.0f, 0.0f, 0.0f),
0,
nullptr);
SceneInfo->IndirectLightingCacheUniformBuffer = TUniformBufferRef<FIndirectLightingCacheUniformParameters>::CreateUniformBufferImmediate(Parameters, UniformBuffer_MultiFrame, EUniformBufferValidation::None);
}
}
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_IndirectLightingCacheAllocation, FColor::Orange);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
FPrimitiveSceneProxy* Proxy = SceneInfo->Proxy;
// If we are attaching a primitive that should be statically lit but has unbuilt lighting,
// Allocate space in the indirect lighting cache so that it can be used for previewing indirect lighting
if (Proxy->HasStaticLighting()
&& Proxy->NeedsUnbuiltPreviewLighting()
&& IsIndirectLightingCacheAllowed(Scene->GetFeatureLevel()))
{
FIndirectLightingCacheAllocation* PrimitiveAllocation = Scene->IndirectLightingCache.FindPrimitiveAllocation(SceneInfo->PrimitiveComponentId);
if (PrimitiveAllocation)
{
SceneInfo->IndirectLightingCacheAllocation = PrimitiveAllocation;
PrimitiveAllocation->SetDirty();
}
else
{
PrimitiveAllocation = Scene->IndirectLightingCache.AllocatePrimitive(SceneInfo, true);
PrimitiveAllocation->SetDirty();
SceneInfo->IndirectLightingCacheAllocation = PrimitiveAllocation;
}
}
SceneInfo->MarkIndirectLightingCacheBufferDirty();
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_LightmapDataOffset, FColor::Green);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
const bool bAllowStaticLighting = FReadOnlyCVARCache::Get().bAllowStaticLighting;
if (bAllowStaticLighting)
{
SceneInfo->NumLightmapDataEntries = SceneInfo->UpdateStaticLightingBuffer();
if (SceneInfo->NumLightmapDataEntries > 0 && UseGPUScene(GMaxRHIShaderPlatform, Scene->GetFeatureLevel()))
{
SceneInfo->LightmapDataOffset = Scene->GPUScene.LightmapDataAllocator.Allocate(SceneInfo->NumLightmapDataEntries);
}
}
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_ReflectionCaptures, FColor::Yellow);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
// Cache the nearest reflection proxy if needed
if (SceneInfo->NeedsReflectionCaptureUpdate())
{
SceneInfo->CacheReflectionCaptures();
}
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_AddStaticMeshes, FColor::Magenta);
if (bUpdateStaticDrawLists)
{
AddStaticMeshes(RHICmdList, Scene, SceneInfos, bAddToStaticDrawLists);
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_AddToPrimitiveOctree, FColor::Red);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
// create potential storage for our compact info
FPrimitiveSceneInfoCompact CompactPrimitiveSceneInfo(SceneInfo);
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
// Add the primitive to the octree.
check(!SceneInfo->OctreeId.IsValidId());
Scene->PrimitiveOctree.AddElement(CompactPrimitiveSceneInfo);
check(SceneInfo->OctreeId.IsValidId());
}
}
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //Fortnite/Main/Engine @ 3780923) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3780878 by Nick.Darnell UMG - Providing more information when the compile fails to find a bindable widget. Change 3780855 by Gil.Gribb UE4 - Fixed a linear search in EDL that caused performance problems for very large maps. Saves half the load time in FN-BR. Change 3780803 by Thomas.Sarkanen Dont create animation tasks for skeletal meshes that have no anim instance This avoids some wasted work for non-animated attachments, such as pickaxes #jira FORT-61523 - Don't create anim worker tasks if no AnimBP Change 3780741 by Yenal.Kal #jira FORT-60177 Fixed the bug where the anim branching points (begin and end) may be triggered twice incorrectly. Change 3780663 by Gil.Gribb UE4 - Batching for audio thread commands. Change 3780466 by Ben.Marsh Add error matcher for generic Microsoft errors (eg. 'cl : Command line error D8049 : command line too long to fit in debug record') Change 3779937 by Nick.Darnell UMG - Adding an accessor on UUserWidget to get the owning player state easier, since it's a common operation. Change 3779858 by Sam.Zamani #http use separate "-multihomehttp" instead of "-multihome" for routing http socket #jira FORT-61666 #tests none Change 3779288 by Michael.Trepka Changed FMacConsoleOutputDevice::Serialize to use FString's GetNSString() instead of converting the string using FPlatformString::TCHARToCFString to make it safer in case of garbage text passed in Data #jira FORT-59762 Change 3779062 by Mike.Fricker Merged CL 3731188 and CL 3733311 from //UE4/Dev-Editor. ---- Improve responsiveness of Open Asset dialog. On large projects, there's a noticeable delay when opening and searching/filtering assets. Stopwatch measurements on my machine (seconds for ~122,000 assets): before with this CL ctrl-P 1.4 0.45 search 1.8 0.55 CollectionManagerModule was the main culprit for search/filter slowness. Open Asset delay was due to filtering out plugin content. We were doing a lot of redundant work for what is essentially a read-only operation. Change 3778954 by Nick.Darnell Slate - Making the Horizontal and Vertical analog keys configurable in the navigation config. Tweaking how fast the navigation is with the analog stick, trying to tune the feeling. Change 3778896 by Ben.Marsh Separate FNameEntrySerialized from FNameEntry, rather than deriving from it. It has to be allocated differently, and many fields cannot be shared between the two. #jira Change 3778807 by Ben.Marsh Fix Tencent include paths not registering if workspace directory contains a space. Tencent include paths currently have a trailing backslash, and this is surrounded by quotes if the root directory contains a space. The backslash is interpreted as escaping the trailing double quote. #jira Change 3778686 by Luke.Thatcher Reduced impact of dynamic vertex buffer RHI stall in D3D12 - In most cases we can avoid the stall if the vertex buffer has never been used before. - Only when a buffer has an existing SRV do we need to stall. - Also, delete copy and move constructors of FD3D12ResourceLocation. Moving or copying an instance of this class leads to double free crashes, so this is now a compile error rather than a runtime crash. This saves an average of 2ms frame time in a StW lastperftest replay, with r.screenpercentage 10. #jira FORT-61390 Change 3778679 by Thomas.Sarkanen Fix Linux server crash - dont attempt to run threaded work in a single-threaded environment We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously. #jira FORT-61548 Change 3778591 by Ben.Woodhouse Add build config to FPSChart HTML output #jira FORT-56478 Change 3778175 by ben.marsh Remove code to trigger an ensure on Arxan guards. We already send analytics for this, and don't need this legacy path. There is a large number of incoming ensures with this callstack that are clogging up crash reporter. Will remove all the surrounding code in a later update to a development branch. #jira Change 3777750 by Chris.Gagnon - Slate now supports a CustomBoundary Navigation type wich allows a custom handler if the boundary is hit. - This provides the ability to have normal navigation while within the boundary and the custom function only on the boundary. - This differs from Custom which is a full override of the navigation behavior. Change 3777678 by Bob.Tellez #UE4 Fix a bug that was causing fastpath nodes in non-nativized BPs to not be fastpath Change 3776962 by Bob.Tellez #UE4 Fix warning about missing virtual destructor by making a struct final (like other RHICommands) Change 3776656 by Thomas.Sarkanen Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components This was causing AIs to get stuck in montage playback in some circumstances #jira FORT-61324, FORT-60558 Change 3776655 by Bob.Tellez #UE4 CIS fix after 3776629 Change 3776650 by Bob.Tellez Counting uplugin and uproject files as code changes so UGS will trigger code builds on checkins containing these files Change 3776649 by Nick.Darnell UMG - Fixing a rare crash when destructing a widget in the designer. It's trying to remove widgets from a half garbage collected panel. Change 3776629 by Bob.Tellez #UE4 Using a more efficient data structure for keeping track of visited nodes when verifying EDL. Change 3776328 by James.Golding Add command line option (-statnamedevents) for enabling named events Change 3776024 by Nick.Darnell Slate - Adding an accessor to SSafeZone to get the amount of padding that will be added, given some scale. Change 3775569 by Gil.Gribb UE4 - Fixed bugs with r.DelaySceneRenderCompletion Change 3775543 by Luke.Thatcher [XBOXONE] [~] Remove stall in D3D12 CreateRHIBuffer - Buffer update is enqueued as a task on the RHI thread instead of stalling the RHI thread for the duration of the update. Change 3775488 by Thomas.Sarkanen Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks #jira FORT-61157 - Run anim update on worker, even if not visible Change 3775219 by Bob.Tellez #UE4 Dont SerializeThumbnails when calling savepackage while editoronly data is excluded (cooking). This saves a lot of memory while cooking Change 3774886 by Mike.Fricker Fixed occasional crash when backing out to lobby - Don't force DF data to be updated when the mesh isn't in the world or has no scene interface #jira FORT-60863 Change 3774767 by Ori.Cohen Fix race condition for creating statid in test configs Change 3774682 by Bob.Tellez #UE4 Don't bother clearing cached platform data during shutdown purge since there may be a lot of it and it takes a while to destroy it. Change 3774621 by Bob.Tellez #UE4 Move Tree rebuilding during cook from Serialize to PreSave to avoid building the tree multiple times for a single platform. Also properly clear out CacheMeshExtendedBounds. Change 3774201 by Gil.Gribb UE4 - Fixed rare crash caused by unmounting pak files. Change 3773920 by Gil.Gribb UE4 - Added experimental option r.StartPrepassParallelTranslatesImmediately which allows the parallel translate tasks from the prepass to start before we init shadows. Disabled by default. Change 3773896 by Thomas.Sarkanen Push non-rendered anim updates back onto the worker thread Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation). #jira FORT-61157 - Run anim update on worker, even if not visible Change 3773886 by Gil.Gribb UE4 - Reduced r.RHICmdMinCmdlistForParallelSubmit from 2 to 1. Change 3773882 by Gil.Gribb UE4 - Improved profiler markers when they are used without stats to cover the task graph and some things related to the parallel renderer. Change 3773461 by Gil.Gribb UE4 - Increased the granularity of the ParallelFor blocks for greater load balancing. Change 3773459 by Gil.Gribb UE4 - Adds TLS caches for MallocBinned2 to the Audio thread. Change 3773458 by Gil.Gribb UE4 - Added an experimental option to do the slate render before waiting for the rendering tasks. Change 3773011 by Robert.Manuszewski Header (uasset) and export (uexp) files will now be compared seperately when running cook commandlet with -diffonly to avoid situations where a mismatch in size of the header produces more differences between exports. + Renamed ini setting to ignore header differences from SkipHeaderDiff to IgnoreHeaderDiff Change 3772867 by Thomas.Sarkanen Nativization now correctly generates and builds code for "Client" builds Overall this is a bunch of hacks, but necessary for nativization to work at present. Once the cooker and UAT both have a concept of "Client" targets, this can be implemented properly. Instead of building to a "Client" directory, we build to "Game" for client-only platforms (like PS4, XboxOne) Also we need to add "Client" targets to the whitelist for the nativized assets plugin, as UBT still thinks it is building for "Client" #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3772408 by Robert.Manuszewski Cook commandlet will now report full property name when running a diff against the existing cook (-diffonly) Change 3772359 by Thomas.Sarkanen Improvements to the Cpp backend to allow VC++ to compile nativized code more effectively Added a new scoped helper to wrap areas of the code in PRAGMA_DISABLE_OPTIMIZATION. This helps with functions that are large tables or long lists of initializations. Split anim node initialization up into functions, called from a seperate function dedicated to initializing anim nodes. This splits the 5k+ line constructor into mutiple smaller functions, which the compiler has no problems with. Overall (along with splitting up the anim BP into functions in the asset) this reduces compilation time for the worst-case compilation unit from ~11m 40s to ~2m 32s. #jira FORT-52823 - Nativizing Player Animation Blueprints Change 3771975 by Zak.Middleton Fix character proxies doing up to two floor check when only rotation changes. Add some optional verbose logging to FindFloor() and ComputeFloorDist(). #jira FORT-61134 Change 3771421 by Ori.Cohen Fix CIS Change 3771052 by Robert.Manuszewski Package diff improvements (-diffonly mode for cooker). Exposed max diffs to report to ini and added the ability to suppress header differences reporting as they are usually a result of differences in exports anyway. Change 3771039 by Bob.Tellez #UE4 Allowing use of -FPS in PGO profile builds Change 3770747 by Ori.Cohen Added missing stat named events for anim bp Change 3769616 by Arciel.Rekman UBT: Use response files for compiler when compiling for Linux. - Some command lines are too long when cross-compiling on Windows, which is a problem for non-unity builds (or local changes that result in exclusion of checked out files from the lumped units). Change 3769457 by Gil.Gribb UE4 - Added eviction to r.DoLazyStaticMeshUpdate. It just removes 10 prims a frame in a rolling fashion. Change 3769136 by Michael.Noland Engine: Improve IsServerDelegateForOSS to allow it to use the play world during PIE even if no context was passed in Change 3768736 by Robert.Manuszewski More debug info for ensure in FLinkerSave when a name that has not yet been mapped is being serialized #jira FORT-60943 Change 3768634 by Robert.Manuszewski Small optimization to FEDLCookChecker::Verify function Change 3768603 by Robert.Manuszewski Merging CL #3766740 by Steve.Robb TMultiMap::Append added. Change 3768586 by Ben.Woodhouse csv profiler screen message Change 3768506 by Thomas.Sarkanen Duplicating CL 3764661 from Paragon: Only update Children attached to Sockets in USkeletalMeshComponent::PostBlendPhysics(). Saves ~20% of STAT_UpdateChildTransforms and ~10% of STAT_UpdateLocalToWorldAndOverlaps in 5ofEach_Dusk_vs_Dusk automation test. #jira OR-46341 #tests LaneMinionFXTests, monolith w/ full teams. Change 3768504 by Thomas.Sarkanen Duplicating CL 3758315 from Paragon: Optimized PostAnimEvaluation when URO is skipping a frame with no interpolation. Skip unnecessary work. PreEvaluateAnimation() is now only called if we're about to evaluate anims. PostEvaluateAnimation() is also called only if we have evaluated animations. Therefore PostEvaluateAnimation() has been pulled inside of PostAnimEvaluation() instead of FinalizeTransforms. Added a call to ConditionallyDispatchQueuedAnimEvents() in the event that we're not calling PostBlendPhysics because we have not evaluated or interpolated anims. Added missing call to PostEvaluateAnimation() for PostProcessAnimInstance. #jira OR-46341 #tests minion FX perf map, lane minion test map, monolith match with 2 full teams. Change 3768097 by Bob.Tellez #UE4 Fix non-editor CIS Change 3767957 by Bob.Tellez #UE4 Fix an issue that was causing FullLoadAndSave to fail to cache platform data for textures that were created by landscape on mobile and another issue that caused parallel saving to fail in landscape (when cooking for mobile targets) Change 3767906 by Mike.Fricker Add Blueprint functions to query parameters from MIC - GetScalarParameterValue - GetTextureParameterValue - GetVectorParameterValue MIDs already had these functions, but MICs did not. Change 3767737 by Max.Preussner Engine: Fix for external textures referenced by a material before being associated with a media player never having their uniform expressions recached #author jack.porter #jira FORT-59777 Change 3767735 by Bob.Tellez #UE4 Setting Opened to false in FOutputDeviceFile::TearDown so if the device file gets initialized again it will do the same initialization logic as the first time. #jira FORT-60918 Change 3767244 by Ethan.Geller #jira FORT-60885 Merge in fix for memory leak from 4.18.1. Change 3766567 by Marc.Audy Fix initialization ordering warnings Change 3766443 by Jian.Ru Submit PSO locking fix again as it has passed local tests Change 3766362 by Ori.Cohen Added the ability to get concurrent captures in Test configurations without having to turn full stats on Change 3766277 by Marc.Audy Shrink Skinned and Skeletal Mesh Component, FBodyInstance, and UBodySetup Change 3766275 by Marc.Audy Better pack UTexture* classes Change 3766272 by Thomas.Sarkanen Fixes to enable auto-nativization for animation blueprints For blend profiles in particular, I've added subobject support to the fake import table building for nativized assets: - In FEmitterLocalContext::FindGloballyMappedObject, if we dont find the referenced asset then we traverse the object's outer chain if it is a subobject. We add it to UsedObjectInCurrentClass if we find its outer. - Updated the structure used to build the fake import table to include a specified outer. Beforehand we assumed that all objects referenced by the import table were 'top-level'. - Updated the fake import table building code in FLinkerLoad::CreateDynamicTypeLoader() to use the new specified outer if found. This asserts if it couldnt find the outer in the already-parsed dependencies (as it reverse-iterates). If in the general case thius turns out to be a problem we can move this to a two-pass system. Disabled fast-path optimization when running a native anim BP, as native code is faster! #jira FORT-52823 - Nativizing Player Animation Blueprints #jira FORT-57378 - Perf optimization: animation blueprint improvements Change 3766215 by Marc.Audy Shink FFromatContainer from 88 bytes to 24 by storing in TSortedMap instead of TMap Change 3765664 by Michael.Noland Engine: Add support for sets to FJsonObjectConverter::JsonValueToUProperty Change 3765624 by Marc.Audy Create helper macro in Archive.h for encapsulating needed steps for serializing a bitpacked boolean Change 3765200 by Nick.Darnell Slate - Fixing a memory leak in the invalidation panel. It never cleared out the cached textures and materials it kept alive during retention. Change 3764881 by Wes.Hunt Fix FApp::Get/SetIdleTimeOvershoot. It was overwriting IdleTime, which made FrameTimeWithoutSleep look like FrameTimeWithSleep. #jira FORT-60585 #review-3764882 @arciel.rekman Change 3763872 by Max.Chen Sequencer: Set default completion mode for all sections to project default. Copy from Dev-Sequencer #jira UE-49480 Change 3763871 by Max.Chen Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState. Copy from Dev-Sequencer #jira UE-49480 Change 3763810 by Gil.Gribb UE4 - remove some init timing spew in programs (i.e. UHT) Change 3762939 by Robert.Manuszewski Removing all locks from FEDLCookChecker to improve SavePackage performance Change 3762851 by Bob.Tellez Duplicating CL#3740778 from //UE4/Dev-Editor Fixed issue with content browser column sorting #jira UE-49460 Change 3762660 by Bob.Tellez #UE4 Fix a few parallelsave threading problems. Change 3761861 by Marc.Audy Fix archive complaints about bitfield Change 3761802 by Marc.Audy Pack FTimeline, FHitResult, FAnimUpdateRateParameters, FMeshBuildSettings Change 3761299 by Matt.Kuhlenschmidt Fix levels not being lockable/unlockable if they are not checked out #jira FORT-60086 Change 3760422 by Bob.Tellez #UE4 Stop caching or clearing platform data when saving concurrently. This was causing threading problems in materials. Change 3760113 by Jian.Ru Back out changelist 3759715 as it causes a crash on UGS autotest Change 3759761 by Jian.Ru Clean up some debug comments Change 3759715 by Jian.Ru Removing excessive locking when accessing PSO caches. Change 3759285 by Nick.Darnell Editor - Fixing the length of the datatable row dropdown in the editor. Change 3758334 by Alexis.Matte Fix a crash when importing morph target there was a unsync between some buffer depending on the import options #jira UE-52319 Change 3758332 by Ben.Marsh Fix output subfolder being appended twice when generating project files. Causes incorrect command line when launching from Visual Studio. #jira Change 3758215 by Brian.Bekich Make Tint property of FSlateBrush NotReplicated now that it is WITH_EDITORONLY_DATA so that cooked clients can connect to uncooked servers Change 3757702 by Bob.Tellez #UE4 Fix -NoConcurrentSave cook option in FullLoadAndSave Change 3757545 by ben.marsh Suppress Arxan warning about being unable to install a default guard at it's default location. Change 3757452 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Fixing build error on linux. Change 3757389 by Hongyi.Yu Fixed the crash in UEditorEngine::CheckForWorldGCLeaks() when load a level (level A), PIE, load a sublevel of level A and then load another level. #jira FORT-58283 Change 3757229 by Aaron.McLeran #jira FORT-59675 Client Crash in __delayLoadHelper2() Change 3757077 by Max.Preussner MediaAssets: Fix for media texture crashing if media player is generated from GC clustered blueprint #jira FORT-59774 #jira UE-51943 #tests none Change 3756854 by Mike.Fricker Fix "double-delete" crash when using level streaming - Backed out unintentional network checksum change! Change 3756790 by Bob.Tellez #UE4 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances Change 3756639 by Arciel.Rekman Pool memory (only 64KB allocations) on servers (FORT-60342). - Has a fixed cost of 1GB virtual memory usage. #jira FORT-60342 Change 3755995 by Alexis.Matte Fix crash when importing morph target with "built in" tangent option #jira UE-52319 Change 3755896 by Arciel.Rekman Remove unnecessary switch for profiling (part of FORT-58878). - -fno-omit-stack-pointer is only needed when getting callstacks for perf. #jira FORT-58878 Change 3755711 by Mike.Fricker Fix "double-delete" crash when using level streaming - Initialize network GuidCache entries as soon as Guids are registered on the server so that we can fill them out with valid information before the object is destroyed. Fixes issues when a guid is exported for the first time to send a destroy to clients. (from RyanG) Change 3755701 by David.Ratti FObjectReplicator no longer a GCObject since adding/removing from the global GCObject list is too slow. Managing FObjectReplciators's object references at the NetDriver level now. #jira FORT-60317 #review-3755702 @Ryan.Gerleve Change 3754928 by Arciel.Rekman Linux: add LTO support and more. - Adds ability to use link-time opitimization (reusing current target property bAllowLTCG). - Supports using llvm-ar and lld instead of ar/ranlib and ld. - More build information printed (and in a better organized way). - Native scripts updated to install packages with the appropriate tools on supported systems - AutoSDKs updated to require a new toolchain (already checked in). - Required disabling OpenAL due to https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219089 #jira FORT-58878 Change 3753986 by Ben.Zeigler #jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly Change 3753274 by Ben.Marsh Fix blank lines in errors and warnings being omitted from notification emails. #jira Change 3753175 by Thomas.Sarkanen Fix hang in animation editor menus Sound waves were being loaded by the visibility delegate for the 'play' button overlay. This caused major hangs as the ogg compressed data was built on the fly. Handled the unloaded asset case in the various delegates. Also made the menu larger, as picking a sound wave was all but impossible when you couldnt even see one in the list. #jira UE-52271 - Persona menu option locks up editor Change 3752887 by Nick.Darnell Slate - Adding automatic invalidation to a few more widgets that were found lacking when adding or removing children. Change 3752785 by Marc.Audy Avoid doing any work to evaluate streaming volumes if there are no player controllers using streaming volumes Change 3752185 by Ben.Marsh Reduce cook time regression caused by correcting package names to match case on disk (to fix deterministic cooking problems). Switched to use IPlatformFile::GetFilenameOnDisk(), and improved performance of FWindowsPlatformFile::GetFilenameOnDisk() by using GetFinalPathNameByHandle() instead of recursively searching up the directory tree. #jira Change 3751813 by Ben.Marsh Improve parsing of diagnostics for deterministic cooking test. Now allows multiple lines in the generic EC error/warning matcher if indented more than the first line, and skips over empty lines. #jira Change 3750413 by Ben.Zeigler Fixes for cook save performance regressions. Add GetAllMarks to object and use that to dramatically reduce contention for the object mark annotation. Implement ShouldLoadForServer/Client directly on some core classes to stop it from calling the slow generic one Fix issue where refreshing tags for asset registry would do a very slow array delete/add Improve speed of redirectcollector, there's no need to force-rehash the soft object path list as the remove handles it conditionally Change 3750014 by Lina.Halper - duplicate change from following changelists CL 3669273 - delete all tracks option - allow to opt out on bone track importing - fixed pose preview for fullbody to select weights that has pose from asset. CL 3672170 Remove track support for Animation Blueprint Library This is required for facial pose retargeting Change 3749714 by Brian.Bekich Back out changelist 3748287 #jira FORT-60125 Change 3749377 by Robert.Manuszewski Improved log formatting for reporting deterministic cook issues. #jira FORT-59919 Change 3749360 by Robert.Manuszewski Improved performance of -diffonly mode for cook commandlet for assets with hundreds of thousands of differences. #jira FORT-59919 Change 3748746 by Hongyi.Yu Fixed compiling error in Automation project #jira FORT-59621 Change 3748530 by Mike.Fricker Fixed non-determinism of landscape grass across platforms/compilers This causes bushes to be located in different places depending on what platform you were playing on. 1) Random number reseeds were happening as part of function arguments to FVector(), but function argument evaluation order is unspecified, and behaved differently on Consoles/Mac/Windows. Fixed this bug. 2) Strings used for foliage CRCs could use different character sizes on different platforms. Now we always use ANSI. 3) Strings used for CRCs could have possibly have different case. Now forced lowercase. #jira FORT-60109 Change 3748471 by Zak.Middleton Added stats to NetDriver TickFlush and stats gathering within that function. Change 3748287 by Brian.Bekich Adding net.MaxStringSerializationSize to cap maximum string read from network, default to 4096, used by FNetBitReader Deprecating MAX_STRING_SERIALIZE_SIZE in favor of the cvar FInBunch defaults to prior behavior if cvar is 0 UPackageMap::SerializeName and UPackageMapClient::SerializeNameAsString will always cap at NAME_SIZE Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3747980 by Bart.Hawthorne In Oodle, only generate and write dictionaries on Windows, Mac, and Linux Change 3747642 by Gil.Gribb Fix CIS Change 3747635 by Zak.Middleton Avoid string alloc on every ServerMove() call on the server. Change 3747560 by Gil.Gribb UE4 - Fixed XBox and Windows thread priorities. Only 2 though -2 seem usable and some of the old values were being ignored. Change 3747548 by Gil.Gribb UE4 - Changed thread pool to be TPri_SlightlyBelowNormal so that they will not preempt HP task graph tasks. Change 3747544 by Bart.Hawthorne When detecting if Oodle is installed, use the newest version instad of the oldest one. Change 3746440 by Robert.Manuszewski Dterministic cook issues reporting improvements - Huge performance improvements - Added new metric to the summary: NumberOfDifferencesInPackages - Diff stats have their own section now (Package.Diff) - When running with -diffonly there commandlet will not log the Warning/Error summary anymore - Callstacks are no longer logged with instruction addresses - Because callstacks are no longer logged with addresses I can collapse them for structures that otherwise would be split into multiple separate callstacks - Callstacks, Serialized Object and Serialized Property are now indented - Each asset is capped at 5 entries. If there's more differences, they'll be logged as single warning. - Replaced \r\n with \n in the callstack log to make it work better with EC #jira FORT-59919 Change 3746426 by Gil.Gribb UE4 - Tuned dispatch in the deferred renderer. Added r.DoPrepareDistanceFieldSceneAfterRHIFlush and defaulted it to on. Change 3746348 by Mike.Fricker Added new CVars to toggle level streaming behavior - No effective change to engine yet. The defaults values enable the same default behavior. - New CVar: "s.ForceGCAfterLevelStreamedOut" (Whether to force a GC after levels are streamed out to instantly reclaim the memory at the expensive of a hitch.) - New CVar: "s.ContinuouslyIncrementalGCWhileLevelsPendingPurge" (Whether to repeatedly kick off incremental GC when there are levels still waiting to be purged.) - New CVar: "s.AllowLevelRequestsWhileAsyncLoadingInMatch" (Enables level streaming requests while async loading (of anything) while the match is already in progress and no loading screen is up) Change 3746127 by Gil.Gribb UE4 - Slight tweak to more agressively batch occlusion queries. Change 3746111 by Cecil.McRae Change 3745681 by Bob.Tellez #UE4 Prevent attempting to execute a remote process to get the metal shader compiler version if no remove process machine has been configured. (Fixes a warning) Change 3745631 by Matt.Kuhlenschmidt Fix details panel crash after compiling blueprints that have edit conditon properties Change 3744544 by Gil.Gribb UE4 - Downgraded a fatal error to a warning. Example: Found package without a linker, could find SceneComp in /Game/AIDirector/AIDirector_Fortnite, but somehow wasn't finished loading. This is a sort of cook mismatched caused by the fact that all PS4 cooks have server-only data in them. #jira FORT-59879 Change 3744419 by Matt.Kuhlenschmidt Fix opening color picker causing values to change. Was due to conversion between srgb and linear color. Change 3744270 by Ben.Marsh Merging change to include deterministic cooking summary from Dev-Core (CL 3743182). #jira FORT-59919 Change 3743621 by Guillaume.Abadie Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743403 by Gil.Gribb UE4 - Merged lockfree / taskgraph fix from //UE4 (CL 3732262) Change 3743392 by Gil.Gribb Merged IO fixed from //UE4 (CL 3641155) Change 3743376 by Gil.Gribb UE4 - Added r.WarningOnRedundantTransformUpdate to produce warnings on redundant transform updates. Change 3743372 by Gil.Gribb UE4 - Added a stat for distance field verification...which takes a very long time, but does not affect test or shipping config. Change 3743030 by Bob.Tellez #UE4 Revert some code the was accidentally merged to UE4Main #jira UE-52032 Change 3742611 by Josh.Markiewicz #UE4 - fix for crash in destructor probably related to the freeing of memory via default destructors AFTER CefShutdown() has been called #tests crashes before, no crash after (not sure if it was a 100% crash but this seems better regardless) Change 3742187 by Nick.Darnell Slate - Adding a new optional parameter to direct routing for the widgets under the cursor in Slate Application. Essentially ProcessReply occasionally needs to know the widgets under the cursor, the previous implementation, just used the routing path, this results in missing sending mouse leave messages to widgets under the cursor when dragging begins, which often left things with hover effects in bad states. Change 3742053 by Michael.Trepka Copy of CL 3713881 Added -buildscw to Mac Build.sh script to build ShaderCompileWorker in addition to the requested target. Xcode passes it to the script when building non-program targets. #jira UE-31093 Change 3742050 by Michael.Trepka Copy of CL 3711085 Reenabled UBT makefiles on Mac Change 3741924 by Josh.Markiewicz #UE4 - delete EpicSurvey module - working toward engine/plugins/online removal from game branch Change 3741865 by Nick.Darnell UMG - Fixing a High DPI bug that wasn't scaling the offset for DragDrop widgets when using In-Window rendering that games depend on for DragDrop effects. Change 3741442 by Ryan.Gerleve Fix initialization order warnings Change 3741370 by Ryan.Gerleve Back out changelist 3689397. The memcpy in one of the FInBunch constructors is not portable and causes this change to break networking on Android. Change 3740914 by Peter.Knepley Restore player name obsfuscation Change 3740828 by Marc.Audy Dynamically create FKey if the char code is unknown #jira FORT-59735 Change 3740811 by Ben.Marsh UAT: Fix double-spacing of lines output by Utils.RunLocalProcess, and use a non-local function to output them for more readable logs. #jira Change 3740328 by Bob.Tellez #UE4 Fix FullLoadAndSave cook method Change 3740327 by Bob.Tellez #UE4 Minor movie scene cooking improvements Change 3740280 by Bob.Tellez #UE4 Fix shipping config CIS Change 3740232 by Bob.Tellez #UE4 Gave OodleHandlerComponent a short name so it doesnt hit maxpath length issues on build machines. Change 3740209 by Nick.Darnell UMG - Finishing the ability to add a "Custom" method for Navigation. Currently the editor implementation leaves me wanting, but it works for now. You can put the name of a function to call (needs to match a signature that returns a UWidget). Change 3740207 by Nick.Darnell Slate - Navigation attempts when the user claims they are doing custom or explicit, if those methods don't return a valid widget, we don't treat it like the attempt failed and fallback to default navigation methods. Instead we use it as a trigger to indicate that no navigation should occur and treat it like a stop. Change 3740189 by Bob.Tellez #UE4 Fix mouse cursor position being set when hovering over the viewport in windowed mode despite not having focus Change 3740171 by Marc.Audy Fix merge issue causing compile error for AutomationTool Change 3739270 by Ben.Woodhouse Use background task graph affinity on platforms that implement it (e.g. XB1). Saves 8ms on GC spikes and ~0.5ms on the renderthread #jira FORT-56961 Change 3739244 by Ben.Woodhouse -statunit commandline option Change 3738920 by peter.knepley Fix issue where simulated proxies had bad crouch state when re-entering relevancy Change 3738904 by Gil.Gribb UE4 - Moved audio decompression tasks to the background thread pool. Controlled by a cvar AudioThread.UseBackgroundThreadPool, which defaults to 1. Change 3738378 by Ori.Cohen Added better profiling for scene query hitches Change 3736984 by Ben.Woodhouse Dummy merge: Accept main version of windowsrunnablethread.h, so Windows gets the new priorities #jira FORT-56700 Change 3736754 by Zak.Middleton Remove engine hacks of K2_SetActorLocation etc for pending engine merge. Will replace with delegates on transform updates for relevant classes. Change 3736282 by Hongyi.Yu Don't check target file while doing iterative shared prebuild cooking. #jira FORT-58911 Change 3736109 by Michael.Trepka Updated FMallocLeakDetectionProxy to not use a critical section internally on top of thread safety measures performed by FMallocLeakDetection and the underlying FMalloc implementation. The improvements are biggest on Mac, in particular in low framerate situations, as Metal RHI uses malloc heavily on multiple threads, but it's also a nice 10% improvement on a high end PC. #jira FORT-55309 Change 3735765 by Ben.Woodhouse Fix GTSynctype logic when vsync is disabled. This was breaking profiling Change 3734436 by Marcus.Wassmer More reliable Aftermath data. #jira FORT-45518 Change 3734103 by Bob.Tellez #UE4 Exposing GetRefPosePosition on SkinnedMeshComponent to BPs Change 3733985 by Saul.Abreu #jira FORT-58816 "Special case zero-width space in the text shaper to avoid fonts rendering the fallback glyph" - Jamie Dale Needed to workaround an issue with guillemets (weird arrow quotes). Change 3733922 by Brian.Bekich Setting max serialization size in FNetBitReader to prevent runaway string reads from replicated object paths Check for path name serialization error before tryng to read checksum #jira FORT-57974 Change 3733850 by Max.Chen Sequencer: Return unhandled only if not dragged. This fixes a bug where dragging in the track area would sometimes leave the handled state with the time slider controller and not allow you to pop up a menu with the movement tool. #jira FORT-56092 Change 3733299 by Ethan.Geller #jira FORT-58943 Handle corner cases for repeated calls to precache buffers. Change 3732907 by Gil.Gribb UE4 - Removed slow HLOD code from frustum cull loop and set things up at AddPrim time instead. Saves 1-3ms. Change 3732728 by Robert.Manuszewski Fixing a crash when dumping stats with massive callstacks #jira FORT-58901 Change 3732438 by Marc.Audy When a client informs the server that it has loaded a streaming level force a net update on all dormant actors that have at one point replicated data to relevant clients and ensure that the connection's destroyed startup/dormant actors list is properly populated. #jira FORT-56997 Change 3730413 by Lukasz.Furman fixed PlayerName encryption key #jira FORT-59066 Change 3729588 by Bob.Tellez #UE4 Only calling FixupData on load. Fixes crash during parallel saving. Change 3729475 by Marc.Audy Fix missing ; Change 3729444 by Marc.Audy Fix cases where GetWorld() being called multiple times per function Change 3729143 by Hongyi.Yu Added support to extract pak files to mount point. - Extract with "-ExtractToMountPoint" when extracting pak in DiffCookedContent() #jira FORT-58635 Change 3728981 by Nick.Darnell Slate - Fixing a bug with Slate turning on statid tracking even when the slate verbose stats are not being used. Change 3728838 by Zak.Middleton Compile out GetWorld() call in check() in Test and Shipping builds, to avoid skewing profiling. Change 3728604 by Jian.Ru Submit one render command rather than many in FScene::UpdateParameterCollections Change 3728434 by Marc.Audy PostSignificance should always fire when unregistering regardless of whether this is the last object in the tag. Change 3728427 by Gil.Gribb UE4 - reduce stat overhead when not collecting stats. Change 3728197 by Marc.Audy Properly call post significance on initial registration if the post significance type is sequential Change 3726266 by Gil.Gribb UE4 - Force HISMC trees to rebuild during cook. This allow us to change parameters without resaving maps. Change 3724501 by Marc.Audy Fix initialization order Change 3724411 by Ben.Woodhouse Point light shadow rendering optimization - Made per-triangle culling take Z into account. In FortGPUTestbed (with grass shadow casting enabled), GSVerticesOut reduced from 464k to 234k. On xbox one, a pointlight GPU cost reduced from 6.7 to 4.1ms. On PS4, GPU cost went from 2.3 to 1.9ms. #jira FORT-58921 Change 3724367 by Chad.Garyet Downgrading lock warning about still waiting to a message instead of a warning. Change 3723903 by Max.Preussner MediaAssets: Merged workaround for uninitialized media sound waves from 4.17 #jira FORT-57260 Change 3723134 by Lukasz.Furman added deprecation for PlayerState.PlayerName, it should remain accessible only through Get/Set functions to control obfuscation Change 3722955 by Jian.Ru Fix a compilation warning #jira FORT-58749 Change 3722667 by Luke.Thatcher [BUILD] [!] Fix PGO failures on build machines. - The strings "Failed" and "error" are always treated as build failures, even if the build task returns a success code. - Failure to reserve a device should not be fatal. #jira FORT-58001 Change 3722291 by Lukasz.Furman restored public access to PlayerName for now, current code will be going through accessor Change 3721012 by Alicia.Cano chunk title file generation #jira FORT-53605 Change 3720961 by Marcus.Wassmer Fix bad UVDensities on objects causing texture streaming to fail. Better fix will come with the engine merge. #jira FORT-58240 Change 3719318 by Lukasz.Furman replaced old branch name assertions Change 3719047 by Lukasz.Furman added branch name assertion to core headers to avoid duplicating it Change 3718499 by peter.knepley Fix for a crash when calling FSlateApplication::Get().FindPathToWidget in response to a widget destructing. Widget must be invalidated before the reference is cleared or else someone else might assign a shared reference to it during destruction. Change 3716965 by Alicia.Cano No sound was playing for Android. #jira FORT-58302 #android Change 3715746 by Ben.Marsh Hide Arxan warnings about PDB files not being present. #jira Change 3715172 by Bob.Tellez #UE4 FullLoadAndSave now does SavePackage in parallel. Change 3715055 by Bob.Tellez #UE4 Fix to actually use the precached streaming audio DDC data when cooking. Change 3714130 by Bob.Tellez #UE4 Core changes to allow SavePackage to be done concurrently Change 3714099 by Bob.Tellez #UE4 Pull the logic to initialize and uninitialize the physics scene for a world out into separate functions Change 3713145 by Ben.Marsh Disable an Arxan warning in EC. #jira FORT-56926 Change 3712904 by Ben.Woodhouse Fix for gpu profiler crash on pre-maxwell nvidia (or when r.gpuprofiler is set to false) Change 3712693 by Ben.Woodhouse Workaround for PS4 flip thread crash in dev builds. Caused by the flip thread/offset threads being shutdown before being initialized. The high level logic is now robust to that. We should fix the PS4 RHI ideally, but this is simpler for now. #jira FORT-58409 Change 3712544 by Ben.Woodhouse add missing skylight diffuse gpu stat Change 3712515 by Ben.Woodhouse CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3712297 by Mike.Fricker Fixed huge client hitch when applying changes to in-game options - Every component was being re-registered when r.SimpleForwardShading was updated by the scalability system, even if the value hadn't changed. Now, it only re-registers components if the value changes on the fly. (e.g. when turning Shadows off or on PC) #jira FORT-57661 Change 3711501 by Ben.Marsh Fix build failure on Linux. #jira Change 3710962 by David.Ratti Add SCOPE_CYCLE_UOBJECT for SourceObject of GE - this will tell us what weaponw as applying the GE Change 3710602 by Marc.Audy Only create MIDs as a child of the calling object if construction script is running Change 3710421 by Ben.Woodhouse Bring over a couple of XB1 rendering fixes from 4.18 3692692: Integrate XB1 translucent lighting fix 3674543: D3D12 : Fix bug with non-CS version of UpdateTexture3D caused by bad depthstride. This was causing corruption in the indirect lighting cache #jira UE-49416 Change 3710338 by Marc.Audy Fix Json <-> Property converter to handle maps with struct keys Merged from CL# 3521195 #jira UE-46616 Change 3710226 by Bob.Tellez #UE4 Increase TaskGraph stack size in editor builds since. SavePackage uses a deep callstack which exceeds the 384 memory limit Change 3709046 by andrew.grant Added ALLOW_CONSOLE_IN_SHIPPING define that Target.cs files can set to turn on console in shipping builds #jira FORT-57180 Change 3709040 by andrew.grant Fixed issue where this could fail if a messagebox was spawned early during initialization Change 3708830 by Bob.Tellez #UE4 Commandline switches/options are no longer detected when found between quote characters. This causes options from not being incorrectly detected when passed in as a value from another options. i.e. -Option="-log" no longer causes -log to be picked up. This removes the syntax of specifying parameters like "Option=Value", which should now be replaced with -Option="Value" #jira FORT-57833 Change 3708826 by Bob.Tellez #UE4 Removed needless calls to RegisterSerializedShaders in the saving codepath of material serialization. This function is only relevant when loading shaders. Change 3707905 by Ori.Cohen Fix attached skinned mesh never being unhidden due to scale 0 and render tick optimization #jira UE-51485 Change 3706450 by Chris.Bunner Removing illegal material set on decal component in GameplayStatics. Set a related JIRA, this doesn't actually fix the issue but contributes. #jira FORT-51597 Change 3706223 by Marc.Audy Shrink UPackage class size substantially Change 3706221 by Marc.Audy Store CustomVersions in array rather than set Change 3705798 by Bob.Tellez #UE4 ShadowDepthVertexShader.usf fix to fix Mac cook. Change 3705613 by Uriel.Doyon Texture streaming integration from Main. #jira FORT-57376 Change 3705137 by Michael.Trepka Fixed MetalRHI warning when compiling without MALLOC_LEAKDETECTION defined #jira FORT-55309 Change 3704310 by Marcus.Wassmer fix d3ddebug error with shadowcasting pointlights also suppress spammy d3ddebug data about texture debug names #jira FORT-58063 Change 3703477 by Marc.Audy Minor tweak to keep Padding on one cache line. Change 3703449 by Michael.Trepka Don't use parallel RHI execute on Mac if MALLOC_LEAKDETECTION is enabled as this combination affects performance significantly due to mutex locking in FMallocLeakDetectionProxy #jira FORT-55309 Change 3703217 by Marcus.Wassmer Update PS signatures to match VS. Fixes crashes when running witih -d3ddebug which we need to catch real problems #jira FORT-58021 Change 3702926 by Aaron.Eady #JIRA na Engine Code Improvements (that this project doesn't have yet); Added engine code for drawing a debug 2D box. Added engine code that allows for Keyboard Shortcuts to be special characters like backslash \. -- Code -- DrawDebugHelpers: DrawDebugCanvas2DBox() - Added this to allow us to draw debug 2D boxes. RemoteConfigIni: SpecialCharMap - Updated this TCHAR* property to be in the right order so you can use special characters like backslash as keyboard shortcuts. Change 3701976 by Michael.Noland Editor: Rewrote CallInEditor support and promoted it so it can be used on functions in any class, not just blueprints derived from AActor: - CallInEditor used on native UFUNCTION() declarations will now show up without having to make a BP subclass - CallInEditor can now be used as a top-level keyword in the UFUNCTION() declaration (e.g., UFUNCTION(Category=CoolCommands, CallInEditor)) - Now shows each function as a separate button, placed in the category associated with the function - The button strip entry is now searchable by function name or tooltip - Prevented operating on functions that have parameters or return values, which would crash before - Removed the duplicate copies of properties placed in the Blutility section - Added a scoped transaction around CallInEditor execution - Allowed functions to be marked as CallInEditor in addition to custom events (currently we don't allow editing category or tooltip on custom events...) Editor: Moved Experimental/EarlyAccessPreview details customizations up to UObject so it can be used on any class, not just actors/components Edigrating CL# 3374995, 3375121, and 3375308 from Dev-Framework to FN main Change 3700836 by Bob.Tellez Modified commandline parse function, to detect when it is incorrectly parsing a parameter, from within another parameters value (not exhaustive). For example, this commandline only contains the parameter ParamA. It should not be possible to parse ParamB, as it is part of ParamA's value: -ParamA="-ParamB=Value" #jira FORT-57833 Change 3700821 by Bob.Tellez Merging CL#3461205 from //UE4/Dev-Core Fixed parameter parsing so that arguments are not parsed if not preceeded by a whitespace (for example "-Log" was parsed in "TM-Log") #jira UE-33790 Change 3699584 by Chad.Garyet Upping the timeout on symstore to half an hour instead of 15 minutes. Symstore on xbox takes about ~22 minutes and if two builds are going simultaneously it can cause a job to fail due to the timeout being hit. #jira FORT-0 Change 3698692 by Aaron.McLeran #jira FORT-57582 crash in sound mix state code - Removed the assert as it looks like that state is now possible. Change 3698411 by Bob.Tellez #UE4 One last correctness fix for when to not save generated base ini files. #jira FORT-57315 Change 3698390 by Bob.Tellez #UE4 Slightly more accurate logic to prevent writing of base ini files (old logic may have prevented writing of non-base ini files) #JIRA FORT-57315 Change 3698369 by Bob.Tellez #UE4 Ensure that Tcp/Udp messaging plugins are disabled in shipping config Change 3698352 by Bob.Tellez #UE4 Minor additional fix to make sure DISABLE_GENERATED_INI_WHEN_COOKED only affects cooked builds #jira FORT-57315 Change 3698341 by Bob.Tellez #UE4 DISABLE_GENERATED_INI_WHEN_COOKED now properly prevents all base ini file loads from happening from a generated folder. It also prevents writing generated ini files completely. #JIRA FORT-57315 Change 3697553 by Nick.Darnell Slate - When setting the content of an SBox it should always invalidate. Change 3697330 by Bart.Hawthorne APlayerController::ServerShortTimeout_Implementation now only iterates over the active object list instead of uisng an actor iterator, since non-replicated actors wont have a network object info to update. #jira FORT-57099 #tests ran 100 player bot match Change 3695578 by Bob.Tellez #UE4 Fix Win32 Change 3695508 by Eric.Newman Tweaked LogInit logging to clarify when the command line is being filtered * Encountered this red herring when evaluating crash logs #jira FORT-55839 #tests ran shipping & debug client builds, and editor game build Change 3694898 by Michael.Trepka Fixed Vorbis audio not playing on non-Windows platforms due to changes in CL 3668361 #jira FORT-57121 Change 3694655 by David.Ratti Reimplement TweakObjetPtr optimizations with FObjectReplicator as an FGCObject instead of the owning channel being responsible for adding the replciator's ObjectPtr to the reference collection. (There are cases where object replicator ownership is transferred). #JIRA FORT-57298 Change 3694491 by Ben.Woodhouse Change courtesy of Gil: Drop the priority of the texture streamer using a new low-priority thread pool. This saves a 1-2ms in heavy combat in PVE (XB1 Test) #jira FORT-57376 Change 3693609 by Ryan.Gerleve Back out CL 3689050 since it was likely causing a crash. #jira FORT-57298 Change 3693327 by Aaron.McLeran #jira FORT-57416 Fixing PS4 cook. Making sure zero pad bytes stays positive without a check. Change 3693136 by David.Ratti fix clang warning Change 3692703 by Thomas.Sarkanen Fix CIS warning on PS4/Linux Change 3692589 by Thomas.Sarkanen Moved exposed value handler bound function initialization to CDO postload This means that FindPropertyByName and FindFunctionChecked dont incur any overhead when spawning in new anim instances #jira FORT-56968 - Hitch - SkeletalMeshComponent initialization (110ms) #tests PIE PvE, 20-bot BR game on PC/PS4. Change 3692552 by Alex.Delesky Change 3692495 by Bart.Hawthorne Fix build Change 3692488 by Bart.Hawthorne Check for actor relevancy and level initialization when there's no channel first when prioritizing actors for replication. Dormancy checks in this case are useless because ShouldActorGoDormant will always be false, and if IsActorDormant is also true, then the result of skipping the actor is the same. #jira FORT-57104 #tests played 100 player bot match Change 3691819 by Bob.Tellez #UE4 No longer conditionally including SlateDebug fonts in the cook based on configuraiton. When builds are produced that contain more than one configuration it changes what is cooked in unexpected ways so now we just always cook this font. Change 3691805 by Bob.Tellez #UE4 CIS fix Change 3691784 by Bob.Tellez #UE4 Optimization for exiting PIE. Texture streaming managers have an optimization for game worlds but were not using them for PIE worlds Change 3691273 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3691268 by Aaron.McLeran #jira FORT-56228 LogAudio:Warning: spam causes severe performance drop on the Mac Platform Reducing log level Change 3690547 by Ryan.Gerleve Speculative fix #2 for a server crash/assert. If the timing is right, it's possible for the server to try to re-load a placed-in-map actor that was previously garbage collected. This was happening because CanClientLoadObject was always returning true for these (null) objects, even if the NetGUID corresponded to a map actor that shouldn't be loaded. Also added/improved some logging that will help in case this doesn't fix the issue. #jira FORT-55763 Change 3690451 by Lukasz.Furman changed branch name testing in engine hacks to use case insensitive match Change 3690270 by David.Ratti Cache weak object ptr in FNetworkObjectInfo to avoid reconstructing one every time we need to lookup its actor channel. #jira FORT-57156 Change 3690227 by David.Ratti Added optional TWeakObjectPtr parameter to packagemap functions GetOrAssignNetGUID, SUpportsObject. This allows you to pass in a weak ptr for an object if its already created. If you pass in null, the functions will create them internally. This fixes some common cases where we were converting the same object into weak ptr multiple times in a frame. #jira FORT-57156 Change 3690184 by David.Ratti Cache net connection weakobjectptr when building consider list instead of constructing it again for every actor. #jira FORT-57156 Change 3689805 by Peter.Knepley Make ConditionalInitAxisProperties protected instead of private #jira FORT-56414 Change 3689789 by Marcus.Wassmer Hack workaround for missing shadowdepthps for XB1 until we get a handle on why things are exploding #jira FORT-56792 Change 3689702 by Peter.Knepley Allow games to have a custom MassageAxisInput function #jira FORT-56414 Change 3689687 by Bob.Tellez #UE4 Avoid copying the shaders array to avoid changing refcounts of shaders while serializing Change 3689655 by Peter.Knepley Make SmoothMouse virtual so games can have their own smoothing #jira FORT-56417 Change 3689499 by Bart.Hawthorne Fix Linux CIS warnings Change 3689397 by Bart.Hawthorne Changed FOutBunch and FInBunch uint8 entries to use bitfields instead of bytes which knocked 86% off of our net tick time Change 3689056 by Lukasz.Furman 3rd attempt for branch name checking in engine code hacks Change 3689050 by David.Ratti First pass at removing use of TWeakObjectPtr from core replication classes. This should reduce FWeakObjectPtr::Get usage. Still expecting to see FWeakObjectPtr::operator= come up a lot. Going to tackle this in a second pass which will require some deeper refactors. #jira FORT-57156 Change 3688972 by Bob.Tellez #UE4 Add build target flag to control DISABLE_GENERATED_INI_WHEN_COOKED Change 3688864 by Ryan.Gerleve Fix broken logic to find the "best" replay sample for character movement when we don't find two samples to interpolate between. Now uses the sample closest to the current time. Also added some debug drawing. #jira FORT-56553 Change 3687654 by Bob.Tellez #UE4 Added compile time option to disable reading generated ini files other than GameUserSettings in cooked builds. Change 3686615 by Lukasz.Furman Back out changelist 3686610 Change 3686592 by Matt.Kuhlenschmidt Gave the CL description in the source control submit window more room Change 3686020 by Ben.Marsh Remove debug code that prints to logs while building. #jira FORT-56923 Change 3684414 by Peter.Knepley Back out changelist 3678336 #jira FORT-56512 Change 3683894 by Gil.Gribb UE4 - By default, do not check for illegal calls to MarkPendingKill in the garbage collector in test and shipping configuations. This was slow. Change 3683686 by peter.knepley Raise MTU from 512 to 1024 #jira FORT-56756 Change 3683343 by Rob.Cannaday Fixes insert disk popup #jira FORT-56500 Change 3683156 by Peter.Knepley Network optimizations to reduce alloc/free & memcpy churn saving about 10% of net tick time Change 3682234 by Guillaume.Abadie Cherrypick TAA refactor 3512696 and TAA fix 3668108 #jira FORT-56303 Change 3681494 by Bob.Tellez #UE4 IsLoadedByEditorPropertiesOnly is not working properly so I removed it from FullLoadAndSave Change 3681342 by Bob.Tellez #UE4 Added a FullLoadAndSave option to cooking, which simply loads all content then saves it to avoid the overhead of managing which packages need to be cooked. Large perf improvement for those who cook by the book and can fit the entire game in memory Change 3681014 by Yenal.Kal #jira FORT-56209 #jira FORT-56272 Fixed a bug in the ability system where the ability ended callbacks could cause the ability end to be called again in the same call stack even though the ability is activated only once. This was happening because we were broadcasting the event before we decrement the active count. Change 3680739 by Michael.Trepka Warn about NaN float literal values when translating HLSL to Metal instead of failing, plus added more detailed warning/error messages for NaN and unhandled values #jira FORT-56425 Change 3679237 by Bob.Tellez #UE4 Remove some debug logging Change 3679187 by Bob.Tellez #UE4 Dramatically imrpove speed of writing cookloadorder log file Change 3678926 by Bob.Tellez #UE4 Minor savepackage speed improvements Change 3678336 by Aaron.McLeran #jira UE-50650 Fix memory/event leak in USoundWave::AudioDecompressor Fix is to only delete the decompress/pre-cache task in game thread during FinishDestroy and not allow sounds to start playing unless the precache task has finished. Change 3676998 by Ben.Woodhouse Fix XGE shader compilation so it doesn't crash randomly Change 3676606 by Ori.Cohen Update GC to be 61.1 to avoid heartbeat collision Change 3676447 by Ori.Cohen Fix CIS warning Change 3676286 by Max.Preussner Fixed client Crash UMediaSoundWave::GeneratePCMData (FORT-56107) #jira FORT-56107 Change 3674591 by Ryan.Gerleve Don't filter out PendingKillPending actors from FNetworkObjectList::Find. This was causing actors that get destroyed while dormant on the server to never be destroyed on clients. #jira FORT-55802 Change 3674181 by Michael.Noland Framework: DLL export LogGameplayTags Change 3674138 by Billy.Bramer #jira FORT-56138, FORT-56139 - Duplicate CL 3396590 from //Orion/Main re: ranged-base for iteration ensure from montage changes Change 3672464 by Lukasz.Furman removed recast layers crash tracking code Change 3672153 by Daniel.Lamb Added some debugging code to help track down why shaders are hashing poorly. Change 3671498 by Luke.Thatcher [~] Modify new frame syncing to reduce performance regression seen when the game is running over budget. - Rather than forcing a flip sync after we kick off one frame early, we just continue to kick frames if we time out. This allows the game thread to get ahead when we're over budget. - The game thread will naturally resync with the vsync when we return to being in budget. #jira FORT-55842 Change 3671079 by Ryan.Gerleve Fix an edge case where the PackageMap on the server would try to resolve objects from default NetGUIDs even if their outer has already been garbage collected. This could lead to a completely unrelated object being returned instead of null, leading to asserts and potentially other issues. #jira FORT-55763 Change 3670487 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3670351 by Zak.Middleton Back out changelist 3669817 (networking optimizations). Would rather have more testing before it goes to Release-Next. Will resub just for main and RP. #jira FORT-55999 Change 3670344 by Josh.Markiewicz #UE4 - more verbose logging for SetExpectedClientLoginMsgType Change 3670323 by Wes.Hunt Fix for dedicated servers not flushing events in a timely manner. #jira FORT-56015 Doh, using GFrameNumber was NOT a good idea on servers... :-/ Change 3669817 by Zak.Middleton Optimize some low level details of UNetConnection::ClientHasInitializedLevelFor() and UNetDriver::IsLevelInitializedForActor(). Add cached WorldPackage for NetDriver to avoid repeated GetOuterMost() and Casts. Remove rendundant virtual GetWorld() calls, and mark UNetDriver's version "final" to let it optimize away virtual call. Made UNetConnection::ClientVisibleLevelNames a TSet instead of TArray, since it is searched frequently when there are streaming levels present. #jira FORT-55999 Change 3668416 by Michael.Noland Core: Changed FString::ParseIntoArray to use Reset instead of Empty on the passed in array, allowing it to be approximately resized #jira FORT-55887 Change 3668411 by Olaf.Piesche Always cache depth collision particle shader #jira FORT-51307 Change 3668361 by Aaron.McLeran #jira FORT-55628 Attempt to bypass crash and log an error if libvorbisdll fails to load. Change 3667892 by Rob.Cannaday libwebsocket libs to handle getprotobyname("TCP") failing the libwebsockets connection #jira FORT-55917 Touch LwsWebSocket.cpp to ensure the module gets built with the new libs Change 3667308 by Uriel.Doyon Postponed the release of IO requests when canceling mip updates to prevent threading issue. #jira FORT-54491 Change 3666835 by Lukasz.Furman fixed overlapping index buffers when static mesh exports both convex and simple collisions for navigation #jira UE-50370 Change 3665374 by Mike.Fricker Fixed server crashing after hotfixes have re-imported curve table data - The hotfix system is capable of replacing the content of a UCurveTable on the fly - If any systems had references to inner curves on that curve table, they would become invalid - This needs to be fixed in 1.6.4 (tonight) and also in 1.7 #jira FORT-55792 Change 3665063 by Daniel.Broder Fixed crash in GameplayTagQueryCustomization when choosing "Save and Close" on GameplayTagQuery after setting a query due to nullptr NotifyHook in CloseWidgetWindow. Added additional if (StructPropertyHandle.IsValid()) wrappers and one check(StructPropertyHandle.IsValid()); the former to be consistent with other code and prevent possible crashes, the latter to at least catch the cause of a possible crash properly without having to change the code more significantly to handle it gracefully. Also changed some if( X ) to if (X) to match coding standards and provide consistency within the file. Michael, I'm Reviewing you on this fix since you brought this change over from Framework. And Marc because you reviewed him on that change. #UE4 #NoReleaseNotes #RNX Change 3664948 by Lukasz.Furman reduced number of allocations in StorePathfindingDebugData, optimized path length calculations to avoid recursion #jira FORT-51111 Change 3664916 by John.Abercrombie Copy CLs 3383318 & 3388506 from //Orion/Main/Engine/Source/Runtime/Engine/... - Been testing with this for a while now - This change makes particle effects show up on the current frame's pose for skel meshes as well Removed my StopAllMontagesByGroupName temp hack CL 3383318 Delay dispatching of AnimEvents (Notifies and Montage Events) until after we receive an updated animation pose (if applicable). This fixes AnimNotifies playing particle effects using a socket location using last frame's pose. Now they use the current frame's pose. CL 3388506 Delay clearing of MontageInstances and triggering 'OnAllMontageInstancesEnded' until all Montage Events have been dispatched. Also fix SkelMeshComponent ticking on dedicated servers when rejoining in progress. #jira FORT-55102 - Server Crash UAnimInstance::StopAllMontagesByGroupName Change 3780616 by Gil.Gribb Fixed and reenabled r.DelaySceneRenderCompletion Change 3778979 by Gil.Gribb UE4 - Improved the performance of grass updates and added the ability to not do all of them every frame. Change 3778200 by Nick.Darnell UMG - Making it possible to cancel delays and all animations on widgets. Useful when destroying a widget and needing to stop any async state. Change 3777612 by Zak.Middleton Perf: Added option to CharacterMovementComponent to skip immediate forward prediction for proxies on the frame they receive a network update (bNetworkSkipProxyPredictionOnNetUpdate). This avoids all forward prediction sweeps and floor checks on those updates. Intermediate frames will interpolate with prediction. This can also be disabled globally with the CVar "p.NetEnableSkipProxyPredictionOnNetUpdate 0". Added NetworkSmoothingDisableProxyPredictionForPawnLOD to force disabling full simulation for LOD >= this value (currently 3, so bottom 75 pawns). This takes precedence over current distance and view angle checks for prediction (mesh interpolation is untouched). Change 3774338 by Ben.Woodhouse Convert the D3D12 PSO caches to use RwScopeLocks. This change is courtesy of a shelf from Gil, plus a couple of minor fixes. Saves up to a millsecond of frame time in CPU-bound scenarios Change 3773462 by Gil.Gribb UE4 - Add particle batching. This is disabled by default but can improve thread scheduling when there are lots of very fast particle systems. Change 3771375 by Hongyi.Yu Fixed the crash where ability components are unregistered and then re-registered, which usually happens in PIE. Change 3771368 by Ben.Zeigler #jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors. Change 3771173 by Seth.Weedin Auto manage attachment support for AudioComponent- An opt-in feature that allows AudioComponents to cache their AttachParent/AttachSocket and only attach themselves when playing audio, detaching after playback is completed. Set to false by default. Change 3768811 by Ori.Cohen Change animation scale collision code so that it uses the physics asset. Change 3768148 by Brian.Bekich Fix muting being unable to find remote player controller Change 3768117 by Ori.Cohen Prevent pawn collision from updating during animation Change 3766554 by Gil.Gribb UE4 - Added a new option to add and remove from static draw lists on demand. This is off by default. Change 3766427 by Nick.Darnell Slate - Finally adding Opacity to SWidget. Any widget can now be alpha animated at will, no more need to waste overhead by wrapping things with SBorder or making them userwidgets just to be able to animate a fade. Change 3761682 by nick.darnell Athena - Introducing a way to interrupt the request to scroll and item into view. In cases where you're animating, quickly showing and hiding, with the item widgets unavailable for a few frames, you enter cases where the deferred navigation is resolved after you've canceled showing a dialog stealing focus. Change 3761416 by Ben.Zeigler #jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory. Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful Change 3750998 by Ethan.Geller #jira FORT-60191 Allow -audiomixer command line arg to work on all platforms. Change 3749540 by Marc.Audy SignificanceManager now takes viewpoints in as TArrayView instead of const TArray& Change 3748102 by Marc.Audy Allow cheat cvars to work in Test builds by default Can be overriden by defining ALLOW_CHEAT_CVARS_IN_TEST as 0 in Target.cs files Change 3744756 by Bart.Hawthorne Upgrade Oodle to version 2.5.5. Also, iOS, Android, and Switch platforms have been added. The new dictionary has been generated with old and local captures. Change 3741168 by Max.Preussner MediaUtils: Fixed movies not playing properly in Shipping builds Change 3739256 by Jian.Ru Set distance field self-shadow bias without recreating all render states Change 3730756 by Ben.Woodhouse HISM optimization: Gil's change to skip trees with only one level of hierarchy (working around badly tuned content issues) Change vert threshold to 2K. 1-2ms renderthread win without impacting GPU when rendering point lights Change 3724029 by Zak.Middleton Increase allowed time for movement substep duration. Don't want to lower between 2 iterations, as this is not used much in practice other than deflection and movement mode changes, and that will change behavior (lose momentum). This new setting will absorb longer hitches in the common case (moving without collision or falling). Change 3723985 by Marc.Audy SignificanceManager PostSignificanceUpdate functions can now be executed sequentially on the game thread as well as concurrently in the parallel for (old behavior) Change 3722910 by Jian.Ru Amortize shadow cache update caused by resolution change Changed to use view distance vs. view space z when calculating whole scene shadow resolution which is less sensitive to camera rotation Change 3718247 by Yenal.Kal Fixed the bug where the gameplay effect durations can show incorrect values after rejoin or after server time drifting away from the client. Change 3716343 by Jamie.Dale Adding Korean and Turkish to the localization automation Change 3710534 by Uriel.Doyon Texture streaming optimization where a maximum texture resolution for each level streaming data is computed per view. This is used to cull irrelevant levels and reduce the async task number of iterations. The culled size is defined by the new r.Streaming.MinLevelTextureScreenSize. This requires to remove primitives with big UV density from the level data. Those primitives get moved to the dynamic lists. This is controlled by r.Streaming.MaxTextureUVDensity Change 3707207 by David.Ratti Remove look ahead-vectors prediction in FNetViewer. This (requires) a line trace which is not desirable or really accurate anymore. This saves us a line trace per connection per multicast rpc. unify reliable multicast rpc handling: these now do relevancy checks and are not sent to non relevant clients Change 3706272 by Thomas.Sarkanen Added utility/math functions to aid in optimizing anim blueprints Added VectorLengthXY to get the 2D length of a 3D vector. Avoids unecessary conversions. Added polar->cartesian->polar conversion helper functions for expensive frequently-used anim graph functionality. Change 3706159 by David.Ratti PlayerState/ASC replication optimizations from Polge: this puts the net update frequnecy on player state back to 1hz while forcing netupdates on the player state actor when the ability system component needs to update Change 3692891 by David.Ratti Optimizations for UNetConnection::ClientHasInitializedLevelFor: build acceleration map of actor outer's (ULevels) -> Visibility bool. Existing logic stays the same. Change 3691392 by Aaron.McLeran #jira UE-50628 Fix audio trying to sync load bulk data with EDL enabled - Fix log error in BulkData.cpp - Make the first stream chunk be force inline payload in bulk data flags so it loads immediately vs in async IO system - Make audio stream chunks get as close to 256 k chunks as it can, zero-pad rest to be 256 k aligned - Fix up DDC key, serialize AudioDataSize separately from chunk DataSize Change 3682683 by Zak.Middleton Add bOnlyTickMontageOnDedicatedServer variable to AnimInstance, to avoid anim bp updates on dedicated server. Turn on to fix hitching from queued ServerMove() calls, and some free perf during all montages on the server. Change 3678771 by Ori.Cohen Added the ability to turn on stack walk during hitching vs lightweight stats Change 3676363 by Ori.Cohen Added the ability to get callstacks as part of hitch detection Change 3674877 by Keith.Judge Move definition of GFailedToFindParamCollectionBufferQueue to ShaderBaseClasses.cpp so that all targets can successfully compile. Change 3672515 by Bob.Tellez Added code to play wind particle effects Change 3670909 by Zak.Middleton Fixed ForcePositionUpdate() not calling CheckJumpInput(). Added "p.NetForceClientServerMoveLossPercent" cvar to simulate loss of client->server movement RPCs (without hosing the rest of networking). [CL 3791033 by Marc Audy in Main branch]
2017-12-05 21:57:41 -05:00
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_UpdateBounds, FColor::Cyan);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
FPrimitiveSceneProxy* Proxy = SceneInfo->Proxy;
int32 PackedIndex = SceneInfo->PackedIndex;
if (Proxy->CastsDynamicIndirectShadow())
{
Scene->DynamicIndirectCasterPrimitives.Add(SceneInfo);
}
Scene->PrimitiveSceneProxies[PackedIndex] = Proxy;
Scene->PrimitiveTransforms[PackedIndex] = Proxy->GetLocalToWorld();
// Set bounds.
FPrimitiveBounds& PrimitiveBounds = Scene->PrimitiveBounds[PackedIndex];
FBoxSphereBounds BoxSphereBounds = Proxy->GetBounds();
PrimitiveBounds.BoxSphereBounds = BoxSphereBounds;
PrimitiveBounds.MinDrawDistance = Proxy->GetMinDrawDistance();
PrimitiveBounds.MaxDrawDistance = Proxy->GetMaxDrawDistance();
PrimitiveBounds.MaxCullDistance = PrimitiveBounds.MaxDrawDistance;
Scene->PrimitiveFlagsCompact[PackedIndex] = FPrimitiveFlagsCompact(Proxy);
// Store precomputed visibility ID.
int32 VisibilityBitIndex = Proxy->GetVisibilityId();
FPrimitiveVisibilityId& VisibilityId = Scene->PrimitiveVisibilityIds[PackedIndex];
VisibilityId.ByteIndex = VisibilityBitIndex / 8;
VisibilityId.BitMask = (1 << (VisibilityBitIndex & 0x7));
// Store occlusion flags.
uint8 OcclusionFlags = EOcclusionFlags::None;
if (Proxy->CanBeOccluded())
{
OcclusionFlags |= EOcclusionFlags::CanBeOccluded;
}
if (Proxy->HasSubprimitiveOcclusionQueries())
{
OcclusionFlags |= EOcclusionFlags::HasSubprimitiveQueries;
}
if (Proxy->AllowApproximateOcclusion()
// Allow approximate occlusion if attached, even if the parent does not have bLightAttachmentsAsGroup enabled
|| SceneInfo->LightingAttachmentRoot.IsValid())
{
OcclusionFlags |= EOcclusionFlags::AllowApproximateOcclusion;
}
if (VisibilityBitIndex >= 0)
{
OcclusionFlags |= EOcclusionFlags::HasPrecomputedVisibility;
}
Scene->PrimitiveOcclusionFlags[PackedIndex] = OcclusionFlags;
// Store occlusion bounds.
FBoxSphereBounds OcclusionBounds = BoxSphereBounds;
if (Proxy->HasCustomOcclusionBounds())
{
OcclusionBounds = Proxy->GetCustomOcclusionBounds();
}
OcclusionBounds.BoxExtent.X = OcclusionBounds.BoxExtent.X + OCCLUSION_SLOP;
OcclusionBounds.BoxExtent.Y = OcclusionBounds.BoxExtent.Y + OCCLUSION_SLOP;
OcclusionBounds.BoxExtent.Z = OcclusionBounds.BoxExtent.Z + OCCLUSION_SLOP;
OcclusionBounds.SphereRadius = OcclusionBounds.SphereRadius + OCCLUSION_SLOP;
Scene->PrimitiveOcclusionBounds[PackedIndex] = OcclusionBounds;
// Store the component.
Scene->PrimitiveComponentIds[PackedIndex] = SceneInfo->PrimitiveComponentId;
#if RHI_RAYTRACING
// Set group id
const int32 RayTracingGroupId = SceneInfo->Proxy->GetRayTracingGroupId();
if (RayTracingGroupId != -1)
{
Scene->PrimitiveRayTracingGroupIds[PackedIndex] = Scene->PrimitiveRayTracingGroups.FindId(RayTracingGroupId);
}
#endif
}
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_UpdateVirtualTexture, FColor::Emerald);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
FPrimitiveSceneProxy* Proxy = SceneInfo->Proxy;
// Store the runtime virtual texture flags.
SceneInfo->UpdateRuntimeVirtualTextureFlags();
Scene->PrimitiveVirtualTextureFlags[SceneInfo->PackedIndex] = SceneInfo->RuntimeVirtualTextureFlags;
// Store the runtime virtual texture Lod info.
if (SceneInfo->RuntimeVirtualTextureFlags.bRenderToVirtualTexture)
{
int8 MinLod, MaxLod;
GetRuntimeVirtualTextureLODRange(SceneInfo->StaticMeshRelevances, MinLod, MaxLod);
FPrimitiveVirtualTextureLodInfo& LodInfo = Scene->PrimitiveVirtualTextureLod[SceneInfo->PackedIndex];
LodInfo.MinLod = FMath::Clamp((int32)MinLod, 0, 15);
LodInfo.MaxLod = FMath::Clamp((int32)MaxLod, 0, 15);
LodInfo.LodBias = FMath::Clamp(Proxy->GetVirtualTextureLodBias() + FPrimitiveVirtualTextureLodInfo::LodBiasOffset, 0, 15);
LodInfo.CullMethod = Proxy->GetVirtualTextureMinCoverage() == 0 ? 0 : 1;
LodInfo.CullValue = LodInfo.CullMethod == 0 ? Proxy->GetVirtualTextureCullMips() : Proxy->GetVirtualTextureMinCoverage();
}
}
}
// Find lights that affect the primitive in the light octree.
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
Scene->CreateLightPrimitiveInteractionsForPrimitive(SceneInfo, bAsyncCreateLPIs);
FPrimitiveSceneProxy* Proxy = SceneInfo->Proxy;
INC_MEMORY_STAT_BY(STAT_PrimitiveInfoMemory, sizeof(*SceneInfo) + SceneInfo->StaticMeshes.GetAllocatedSize() + SceneInfo->StaticMeshRelevances.GetAllocatedSize() + Proxy->GetMemoryFootprint());
}
{
SCOPED_NAMED_EVENT(FPrimitiveSceneInfo_AddToScene_LevelNotifyPrimitives, FColor::Blue);
for (FPrimitiveSceneInfo* SceneInfo : SceneInfos)
{
if (SceneInfo->Proxy->ShouldNotifyOnWorldAddRemove())
{
TArray<FPrimitiveSceneInfo*>& LevelNotifyPrimitives = Scene->PrimitivesNeedingLevelUpdateNotification.FindOrAdd(SceneInfo->Proxy->GetLevelName());
SceneInfo->LevelUpdateNotificationIndex = LevelNotifyPrimitives.Num();
LevelNotifyPrimitives.Add(SceneInfo);
}
}
}
}
void FPrimitiveSceneInfo::RemoveStaticMeshes()
{
// Deallocate potential OIT dynamic index buffer
if (OIT::IsEnabled(EOITSortingType::SortedTriangles, GMaxRHIShaderPlatform))
{
for (int32 MeshIndex = 0; MeshIndex < StaticMeshes.Num(); MeshIndex++)
{
FStaticMeshBatch& Mesh = StaticMeshes[MeshIndex];
if (Mesh.Elements.Num() > 0 && Mesh.Elements[0].DynamicIndexBuffer.IsValid())
{
Scene->OITSceneData.Deallocate(Mesh.Elements[0].DynamicIndexBuffer.IndexBuffer);
}
}
}
// Remove static meshes from the scene.
StaticMeshes.Empty();
StaticMeshRelevances.Empty();
RemoveCachedMeshDrawCommands();
RemoveCachedNaniteDrawCommands();
#if RHI_RAYTRACING
RemoveCachedRayTracingPrimitives();
#endif
}
void FPrimitiveSceneInfo::RemoveFromScene(bool bUpdateStaticDrawLists)
{
check(IsInRenderingThread());
// implicit linked list. The destruction will update this "head" pointer to the next item in the list.
while (LightList)
{
FLightPrimitiveInteraction::Destroy(LightList);
}
// Remove the primitive from the octree.
check(OctreeId.IsValidId());
check(Scene->PrimitiveOctree.GetElementById(OctreeId).PrimitiveSceneInfo == this);
Scene->PrimitiveOctree.RemoveElement(OctreeId);
OctreeId = FOctreeElementId2();
if (LightmapDataOffset != INDEX_NONE && UseGPUScene(GMaxRHIShaderPlatform, Scene->GetFeatureLevel()))
{
Scene->GPUScene.LightmapDataAllocator.Free(LightmapDataOffset, NumLightmapDataEntries);
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3185985) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3170391 on 2016/10/21 by Ben.Woodhouse Remove the wait on end of frame ensure, because we can't rely on all the the underlying codepaths to never miss a call to flush RHI resources. The consequences of missing a flush on a given frame are not serious now, since we enforce the synchronisation with a fence, preventing the rendering thread from getting too far ahead. We will simply accumulate resources for an additional frame when this happens. #jira UE-37437 #fyi rolando.caloca, marcus.wassmer Change 3170659 on 2016/10/21 by Rolando.Caloca DR - vk - Prep work for state key changes Change 3170676 on 2016/10/21 by Rolando.Caloca DR - vk - Reworked blend state keys - Added depth/stencil to pipeline key Change 3170848 on 2016/10/21 by Daniel.Wright Level viewport 'show stats' option is now enabled by default, which avoids confusion with artists thinking lighting is built, when really the message is hidden. Change 3170849 on 2016/10/21 by Daniel.Wright Split FProjectedShadowInfo::RenderProjection into smaller functions which make the algorithm structure clear Change 3170995 on 2016/10/21 by Rolando.Caloca DR - vk - Show object on vulkan validation msgs Change 3171085 on 2016/10/21 by Rolando.Caloca DR - vk - Fix pipelines being used with incompatible renderpasses Change 3171159 on 2016/10/21 by Rolando.Caloca DR - vk - Fix layout when reading textures on CPU Change 3171167 on 2016/10/21 by Rolando.Caloca DR - vk - compile fix Change 3172462 on 2016/10/24 by Daniel.Wright Added a warning about shader compile times to the material tooltip Change 3172463 on 2016/10/24 by Daniel.Wright Reduced MinUnoccludedFraction to avoid artitfacts when a stationary light touches only a tiny part of a mesh Change 3172716 on 2016/10/24 by Brian.Karis Fix for crash UE-37369 when reimporting over a generated LOD. Change 3172967 on 2016/10/24 by Rolando.Caloca DR - vk - Fix writing buffers while GPU was using them Change 3174187 on 2016/10/25 by Olaf.Piesche UE-37020 Change 3174718 on 2016/10/26 by Rolando.Caloca DR - vk - Remove old timestamp queries, increase occlusion queries per pool to 4k Change 3175960 on 2016/10/26 by Rolando.Caloca DR - Added support for hlslcc header to have custom parsing Change 3176611 on 2016/10/27 by David.Hill DrawWireCone confusion: In response to a UDN, I'm updating confusing parameter names and comments for DrawWireCone() and DrawWireSphereCappedCone() Change 3177111 on 2016/10/27 by Rolando.Caloca DR - vk - Fix timestamps for frame Change 3177192 on 2016/10/27 by Arne.Schober DR - DitherLOD refactor - moved computation of the DepthStencil state out of SetMeshRenderState into GetDitheredLODTransitionState this is a prerequisite of further PSO work where we want to move up State setting in a similar war and reuse FMeshDrawingRenderState Change 3177278 on 2016/10/27 by Olaf.Piesche UE-37484 Change 3177297 on 2016/10/27 by Rolando.Caloca DR - vk - Enable GRHISupportsBaseVertexIndex Change 3177607 on 2016/10/27 by Rolando.Caloca DR - vk - SM4 UB prep Change 3178052 on 2016/10/28 by Arne.Schober DR - fix WebGL - the WebGL compiler is very picky on double underscores and does want the presission to be defined before any function definition. Change 3178156 on 2016/10/28 by Rolando.Caloca DR - vk - Added query timer - Fixed inline issues Change 3178158 on 2016/10/28 by Rolando.Caloca DR - vk - Fixes for out of stencil bits Change 3178462 on 2016/10/28 by Rolando.Caloca DR - vk - Fixes for Elemental Change 3179131 on 2016/10/28 by Rolando.Caloca DR - vk - Fix for r.Vulkan.UseRealUBs Change 3179139 on 2016/10/28 by Rolando.Caloca DR - vk - Move UB ring buffer to context Change 3179145 on 2016/10/28 by Rolando.Caloca DR - vk - Fix buffer barriers Change 3179888 on 2016/10/31 by Rolando.Caloca DR - vk - Align buffers to 16 bytes as we sometimes write to them with SIMD Change 3179923 on 2016/10/31 by Rolando.Caloca DR - vk - Wait for swapchain counter Change 3180430 on 2016/10/31 by Rolando.Caloca DR - vk - Properly wait for occlusion queries/cmd buffer - Actual log error if trying to use occlusion queries out of order Change 3180746 on 2016/10/31 by Rolando.Caloca DR - vk - Undo some waiting as it was on the wrong thread Change 3182115 on 2016/11/01 by Rolando.Caloca DR - hlslcc Linux path fix Change 3182118 on 2016/11/01 by Daniel.Wright Fixed global distance field seam artifacts from landscapes with no subsections Change 3182368 on 2016/11/01 by Daniel.Wright Dynamic Indirect Shadows for static meshes using distance fields * These Distance Field indirect shadows use the same tile culled and downsampled framework that capsule shadows use, with similar GPU cost * Individual StaticMesh assets can enable bGenerateMeshDistanceField to compute a distance field, without the memory cost of enabling for the whole project * New StaticMeshComponent properties bCastDynamicIndirectShadow and DynamicIndirectShadowMinVisibility * New WorldSettings property DynamicIndirectShadowsSelfShadowingIntensity which replaces the cvar * The GBuffer now stores HasDynamicIndirectShadowCasterRepresentation instead of HasHeightfieldRepresentation * DFAO from landscape is now done through the global distance field entirely. Landscape contribution to the global distance field is deferred to attempt to workaround texture streaming issues. Change 3182408 on 2016/11/01 by Rolando.Caloca DR - vk - Reworked occlusion queries, fixes flickering on AMD Change 3182585 on 2016/11/01 by Daniel.Wright PS4 compile fix Change 3183151 on 2016/11/02 by Rolando.Caloca DR - vk - Fix issue when processing super quick cmd buffers Change 3183160 on 2016/11/02 by Rolando.Caloca Dr - vk - Call reset queries outside render pass Change 3183182 on 2016/11/02 by Rolando.Caloca DR - Switch clear Change 3183194 on 2016/11/02 by Rolando.Caloca DR - Try to catch crash ahead of time Change 3183268 on 2016/11/02 by Rolando.Caloca DR - vk - Rename RenderPassState to TransitionState Change 3183440 on 2016/11/02 by Daniel.Wright Renamed 'Dynamic Indirect Shadow' to 'Distance Field Indirect Shadow' Change 3183793 on 2016/11/02 by Daniel.Wright Added ShadowResolutionScale to lightcomponent Change 3183796 on 2016/11/02 by Daniel.Wright Improved bSimulatePhysics comment, with info on why it might be greyed out Change 3183797 on 2016/11/02 by Daniel.Wright Precomputed shadowmaps no longer enable Force2To1Aspect, which is only needed for lightmaps. Improves shadowmap utilization. Change 3183915 on 2016/11/02 by Rolando.Caloca DR - vk - Remove redundant renderpasses Change 3183991 on 2016/11/02 by Daniel.Wright Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only Change 3184001 on 2016/11/02 by Daniel.Wright Better draw event for IndirectCapsuleShadows in stereo Change 3184096 on 2016/11/02 by Chris.Bunner HDR for D3D11 - NVAPI toggle and encoding, UI compositing. Removed some outdated tonemamping cvars and modes. Change 3184399 on 2016/11/02 by Daniel.Wright Static analysis workaround Change 3184455 on 2016/11/02 by Mark.Satterthwaite Fix missing log10 from FCompositePS on hlslcc shader platforms so that QA can continue their integration. #jira UE-38164 Change 3184953 on 2016/11/03 by Chris.Bunner Fixing CIS warnings. [CL 3186011 by Marcus Wassmer in Main branch]
2016-11-03 16:55:27 -04:00
if (Proxy->CastsDynamicIndirectShadow())
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3185985) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3170391 on 2016/10/21 by Ben.Woodhouse Remove the wait on end of frame ensure, because we can't rely on all the the underlying codepaths to never miss a call to flush RHI resources. The consequences of missing a flush on a given frame are not serious now, since we enforce the synchronisation with a fence, preventing the rendering thread from getting too far ahead. We will simply accumulate resources for an additional frame when this happens. #jira UE-37437 #fyi rolando.caloca, marcus.wassmer Change 3170659 on 2016/10/21 by Rolando.Caloca DR - vk - Prep work for state key changes Change 3170676 on 2016/10/21 by Rolando.Caloca DR - vk - Reworked blend state keys - Added depth/stencil to pipeline key Change 3170848 on 2016/10/21 by Daniel.Wright Level viewport 'show stats' option is now enabled by default, which avoids confusion with artists thinking lighting is built, when really the message is hidden. Change 3170849 on 2016/10/21 by Daniel.Wright Split FProjectedShadowInfo::RenderProjection into smaller functions which make the algorithm structure clear Change 3170995 on 2016/10/21 by Rolando.Caloca DR - vk - Show object on vulkan validation msgs Change 3171085 on 2016/10/21 by Rolando.Caloca DR - vk - Fix pipelines being used with incompatible renderpasses Change 3171159 on 2016/10/21 by Rolando.Caloca DR - vk - Fix layout when reading textures on CPU Change 3171167 on 2016/10/21 by Rolando.Caloca DR - vk - compile fix Change 3172462 on 2016/10/24 by Daniel.Wright Added a warning about shader compile times to the material tooltip Change 3172463 on 2016/10/24 by Daniel.Wright Reduced MinUnoccludedFraction to avoid artitfacts when a stationary light touches only a tiny part of a mesh Change 3172716 on 2016/10/24 by Brian.Karis Fix for crash UE-37369 when reimporting over a generated LOD. Change 3172967 on 2016/10/24 by Rolando.Caloca DR - vk - Fix writing buffers while GPU was using them Change 3174187 on 2016/10/25 by Olaf.Piesche UE-37020 Change 3174718 on 2016/10/26 by Rolando.Caloca DR - vk - Remove old timestamp queries, increase occlusion queries per pool to 4k Change 3175960 on 2016/10/26 by Rolando.Caloca DR - Added support for hlslcc header to have custom parsing Change 3176611 on 2016/10/27 by David.Hill DrawWireCone confusion: In response to a UDN, I'm updating confusing parameter names and comments for DrawWireCone() and DrawWireSphereCappedCone() Change 3177111 on 2016/10/27 by Rolando.Caloca DR - vk - Fix timestamps for frame Change 3177192 on 2016/10/27 by Arne.Schober DR - DitherLOD refactor - moved computation of the DepthStencil state out of SetMeshRenderState into GetDitheredLODTransitionState this is a prerequisite of further PSO work where we want to move up State setting in a similar war and reuse FMeshDrawingRenderState Change 3177278 on 2016/10/27 by Olaf.Piesche UE-37484 Change 3177297 on 2016/10/27 by Rolando.Caloca DR - vk - Enable GRHISupportsBaseVertexIndex Change 3177607 on 2016/10/27 by Rolando.Caloca DR - vk - SM4 UB prep Change 3178052 on 2016/10/28 by Arne.Schober DR - fix WebGL - the WebGL compiler is very picky on double underscores and does want the presission to be defined before any function definition. Change 3178156 on 2016/10/28 by Rolando.Caloca DR - vk - Added query timer - Fixed inline issues Change 3178158 on 2016/10/28 by Rolando.Caloca DR - vk - Fixes for out of stencil bits Change 3178462 on 2016/10/28 by Rolando.Caloca DR - vk - Fixes for Elemental Change 3179131 on 2016/10/28 by Rolando.Caloca DR - vk - Fix for r.Vulkan.UseRealUBs Change 3179139 on 2016/10/28 by Rolando.Caloca DR - vk - Move UB ring buffer to context Change 3179145 on 2016/10/28 by Rolando.Caloca DR - vk - Fix buffer barriers Change 3179888 on 2016/10/31 by Rolando.Caloca DR - vk - Align buffers to 16 bytes as we sometimes write to them with SIMD Change 3179923 on 2016/10/31 by Rolando.Caloca DR - vk - Wait for swapchain counter Change 3180430 on 2016/10/31 by Rolando.Caloca DR - vk - Properly wait for occlusion queries/cmd buffer - Actual log error if trying to use occlusion queries out of order Change 3180746 on 2016/10/31 by Rolando.Caloca DR - vk - Undo some waiting as it was on the wrong thread Change 3182115 on 2016/11/01 by Rolando.Caloca DR - hlslcc Linux path fix Change 3182118 on 2016/11/01 by Daniel.Wright Fixed global distance field seam artifacts from landscapes with no subsections Change 3182368 on 2016/11/01 by Daniel.Wright Dynamic Indirect Shadows for static meshes using distance fields * These Distance Field indirect shadows use the same tile culled and downsampled framework that capsule shadows use, with similar GPU cost * Individual StaticMesh assets can enable bGenerateMeshDistanceField to compute a distance field, without the memory cost of enabling for the whole project * New StaticMeshComponent properties bCastDynamicIndirectShadow and DynamicIndirectShadowMinVisibility * New WorldSettings property DynamicIndirectShadowsSelfShadowingIntensity which replaces the cvar * The GBuffer now stores HasDynamicIndirectShadowCasterRepresentation instead of HasHeightfieldRepresentation * DFAO from landscape is now done through the global distance field entirely. Landscape contribution to the global distance field is deferred to attempt to workaround texture streaming issues. Change 3182408 on 2016/11/01 by Rolando.Caloca DR - vk - Reworked occlusion queries, fixes flickering on AMD Change 3182585 on 2016/11/01 by Daniel.Wright PS4 compile fix Change 3183151 on 2016/11/02 by Rolando.Caloca DR - vk - Fix issue when processing super quick cmd buffers Change 3183160 on 2016/11/02 by Rolando.Caloca Dr - vk - Call reset queries outside render pass Change 3183182 on 2016/11/02 by Rolando.Caloca DR - Switch clear Change 3183194 on 2016/11/02 by Rolando.Caloca DR - Try to catch crash ahead of time Change 3183268 on 2016/11/02 by Rolando.Caloca DR - vk - Rename RenderPassState to TransitionState Change 3183440 on 2016/11/02 by Daniel.Wright Renamed 'Dynamic Indirect Shadow' to 'Distance Field Indirect Shadow' Change 3183793 on 2016/11/02 by Daniel.Wright Added ShadowResolutionScale to lightcomponent Change 3183796 on 2016/11/02 by Daniel.Wright Improved bSimulatePhysics comment, with info on why it might be greyed out Change 3183797 on 2016/11/02 by Daniel.Wright Precomputed shadowmaps no longer enable Force2To1Aspect, which is only needed for lightmaps. Improves shadowmap utilization. Change 3183915 on 2016/11/02 by Rolando.Caloca DR - vk - Remove redundant renderpasses Change 3183991 on 2016/11/02 by Daniel.Wright Added r.ReflectionEnvironmentLightmapMixLargestWeight, useful for restricting lightmap mixing to darkening only Change 3184001 on 2016/11/02 by Daniel.Wright Better draw event for IndirectCapsuleShadows in stereo Change 3184096 on 2016/11/02 by Chris.Bunner HDR for D3D11 - NVAPI toggle and encoding, UI compositing. Removed some outdated tonemamping cvars and modes. Change 3184399 on 2016/11/02 by Daniel.Wright Static analysis workaround Change 3184455 on 2016/11/02 by Mark.Satterthwaite Fix missing log10 from FCompositePS on hlslcc shader platforms so that QA can continue their integration. #jira UE-38164 Change 3184953 on 2016/11/03 by Chris.Bunner Fixing CIS warnings. [CL 3186011 by Marcus Wassmer in Main branch]
2016-11-03 16:55:27 -04:00
Scene->DynamicIndirectCasterPrimitives.RemoveSingleSwap(this);
}
IndirectLightingCacheAllocation = NULL;
if (Proxy->IsOftenMoving())
{
MarkIndirectLightingCacheBufferDirty();
}
DEC_MEMORY_STAT_BY(STAT_PrimitiveInfoMemory, sizeof(*this) + StaticMeshes.GetAllocatedSize() + StaticMeshRelevances.GetAllocatedSize() + Proxy->GetMemoryFootprint());
if (bUpdateStaticDrawLists)
{
if (IsIndexValid()) // PackedIndex
{
Scene->PrimitivesNeedingStaticMeshUpdate[PackedIndex] = false;
}
if (bNeedsStaticMeshUpdateWithoutVisibilityCheck)
{
Scene->PrimitivesNeedingStaticMeshUpdateWithoutVisibilityCheck.Remove(this);
bNeedsStaticMeshUpdateWithoutVisibilityCheck = false;
}
// IndirectLightingCacheUniformBuffer may be cached inside cached mesh draw commands, so we
// can't delete it unless we also update cached mesh command.
IndirectLightingCacheUniformBuffer.SafeRelease();
RemoveStaticMeshes();
}
if (bRegisteredVirtualTextureProducerCallback)
{
FVirtualTextureSystem::Get().RemoveAllProducerDestroyedCallbacks(this);
bRegisteredVirtualTextureProducerCallback = false;
}
if (Proxy->ShouldNotifyOnWorldAddRemove())
{
TArray<FPrimitiveSceneInfo*>* LevelNotifyPrimitives = Scene->PrimitivesNeedingLevelUpdateNotification.Find(Proxy->GetLevelName());
if (LevelNotifyPrimitives != nullptr)
{
checkSlow(LevelUpdateNotificationIndex != INDEX_NONE);
LevelNotifyPrimitives->RemoveAtSwap(LevelUpdateNotificationIndex, 1, false);
if (LevelNotifyPrimitives->Num() == 0)
{
Scene->PrimitivesNeedingLevelUpdateNotification.Remove(Proxy->GetLevelName());
}
else if (LevelUpdateNotificationIndex < LevelNotifyPrimitives->Num())
{
// Update swapped element's LevelUpdateNotificationIndex
((*LevelNotifyPrimitives)[LevelUpdateNotificationIndex])->LevelUpdateNotificationIndex = LevelUpdateNotificationIndex;
}
}
}
}
void FPrimitiveSceneInfo::UpdateRuntimeVirtualTextureFlags()
{
RuntimeVirtualTextureFlags.bRenderToVirtualTexture = false;
RuntimeVirtualTextureFlags.RuntimeVirtualTextureMask = 0;
if (Proxy->WritesVirtualTexture())
{
if (Proxy->IsNaniteMesh())
{
UE_LOG(LogRenderer, Warning, TEXT("Rendering a nanite mesh to a runtime virtual texture isn't yet supported. Please disable this option on primitive component : %s"), *Proxy->GetOwnerName().ToString());
}
else if (StaticMeshes.Num() == 0)
{
UE_LOG(LogRenderer, Warning, TEXT("Rendering a primitive in a runtime virtual texture implies that there is a mesh to render. Please disable this option on primitive component : %s"), *Proxy->GetOwnerName().ToString());
}
else
{
RuntimeVirtualTextureFlags.bRenderToVirtualTexture = true;
// Performance assumption: The arrays of runtime virtual textures are small (less that 5?) so that O(n^2) scan isn't expensive
for (TSparseArray<FRuntimeVirtualTextureSceneProxy*>::TConstIterator It(Scene->RuntimeVirtualTextures); It; ++It)
{
int32 SceneIndex = It.GetIndex();
if (SceneIndex < FPrimitiveVirtualTextureFlags::RuntimeVirtualTexture_BitCount)
{
URuntimeVirtualTexture* SceneVirtualTexture = (*It)->VirtualTexture;
if (Proxy->WritesVirtualTexture(SceneVirtualTexture))
{
RuntimeVirtualTextureFlags.RuntimeVirtualTextureMask |= 1 << SceneIndex;
}
}
}
}
}
}
bool FPrimitiveSceneInfo::NeedsUpdateStaticMeshes()
{
return Scene->PrimitivesNeedingStaticMeshUpdate[PackedIndex];
}
void FPrimitiveSceneInfo::UpdateStaticMeshes(FRHICommandListImmediate& RHICmdList, FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos, EUpdateStaticMeshFlags UpdateFlags, bool bReAddToDrawLists)
{
QUICK_SCOPE_CYCLE_COUNTER(STAT_FPrimitiveSceneInfo_UpdateStaticMeshes);
TRACE_CPUPROFILER_EVENT_SCOPE(FPrimitiveSceneInfo_UpdateStaticMeshes);
const bool bUpdateRayTracingCommands = EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RayTracingCommands) || !IsRayTracingEnabled();
const bool bUpdateAllCommands = EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RasterCommands) && bUpdateRayTracingCommands;
const bool bNeedsStaticMeshUpdate = !(bReAddToDrawLists && bUpdateAllCommands);
for (int32 Index = 0; Index < SceneInfos.Num(); Index++)
{
FPrimitiveSceneInfo* SceneInfo = SceneInfos[Index];
Scene->PrimitivesNeedingStaticMeshUpdate[SceneInfo->PackedIndex] = bNeedsStaticMeshUpdate;
if (!bNeedsStaticMeshUpdate && SceneInfo->bNeedsStaticMeshUpdateWithoutVisibilityCheck)
{
Scene->PrimitivesNeedingStaticMeshUpdateWithoutVisibilityCheck.Remove(SceneInfo);
SceneInfo->bNeedsStaticMeshUpdateWithoutVisibilityCheck = false;
}
if (EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RasterCommands))
{
SceneInfo->RemoveCachedMeshDrawCommands();
SceneInfo->RemoveCachedNaniteDrawCommands();
}
#if RHI_RAYTRACING
if (EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RayTracingCommands))
{
SceneInfo->RemoveCachedRayTracingPrimitives();
}
#endif
if (SceneInfo->Proxy && SceneInfo->Proxy->IsNaniteMesh())
{
// Make sure material table indirections are kept in sync with GPU Scene and cached Nanite MDCs
SceneInfo->RequestGPUSceneUpdate(EPrimitiveDirtyState::ChangedOther);
}
}
if (bReAddToDrawLists)
{
if (EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RasterCommands))
{
CacheMeshDrawCommands(RHICmdList, Scene, SceneInfos);
CacheNaniteDrawCommands(RHICmdList, Scene, SceneInfos);
}
#if RHI_RAYTRACING
if (EnumHasAnyFlags(UpdateFlags, EUpdateStaticMeshFlags::RayTracingCommands))
{
CacheRayTracingPrimitives(Scene, SceneInfos);
}
#endif
}
}
#if RHI_RAYTRACING
void FPrimitiveSceneInfo::UpdateCachedRaytracingData(FScene* Scene, const TArrayView<FPrimitiveSceneInfo*>& SceneInfos)
{
if (SceneInfos.Num() > 0)
{
for (int32 Index = 0; Index < SceneInfos.Num(); Index++)
{
FPrimitiveSceneInfo* SceneInfo = SceneInfos[Index];
// should have been marked dirty by calling UpdateCachedRayTracingState on the scene before
// scene info is being updated here
check(SceneInfo->bCachedRaytracingDataDirty);
SceneInfo->RemoveCachedRayTracingPrimitives();
SceneInfo->bCachedRaytracingDataDirty = false;
}
CacheRayTracingPrimitives(Scene, SceneInfos);
}
}
#endif //RHI_RAYTRACING
void FPrimitiveSceneInfo::UpdateUniformBuffer(FRHICommandListImmediate& RHICmdList)
{
checkSlow(bNeedsUniformBufferUpdate);
bNeedsUniformBufferUpdate = false;
Proxy->UpdateUniformBuffer();
// TODO: Figure out when and why this is called
Scene->GPUScene.AddPrimitiveToUpdate(PackedIndex, EPrimitiveDirtyState::ChangedAll);
}
void FPrimitiveSceneInfo::BeginDeferredUpdateStaticMeshes()
{
// Set a flag which causes InitViews to update the static meshes the next time the primitive is visible.
if (IsIndexValid()) // PackedIndex
{
Scene->PrimitivesNeedingStaticMeshUpdate[PackedIndex] = true;
}
}
void FPrimitiveSceneInfo::BeginDeferredUpdateStaticMeshesWithoutVisibilityCheck()
{
if (NeedsUpdateStaticMeshes() && !bNeedsStaticMeshUpdateWithoutVisibilityCheck)
{
bNeedsStaticMeshUpdateWithoutVisibilityCheck = true;
Scene->PrimitivesNeedingStaticMeshUpdateWithoutVisibilityCheck.Add(this);
}
}
void FPrimitiveSceneInfo::FlushRuntimeVirtualTexture()
{
if (RuntimeVirtualTextureFlags.bRenderToVirtualTexture)
{
uint32 RuntimeVirtualTextureIndex = 0;
uint32 Mask = RuntimeVirtualTextureFlags.RuntimeVirtualTextureMask;
while (Mask != 0)
{
if (Mask & 1)
{
Scene->RuntimeVirtualTextures[RuntimeVirtualTextureIndex]->Dirty(Proxy->GetBounds());
}
Mask >>= 1;
RuntimeVirtualTextureIndex++;
}
}
}
void FPrimitiveSceneInfo::LinkLODParentComponent()
{
if (LODParentComponentId.IsValid())
{
Scene->SceneLODHierarchy.AddChildNode(LODParentComponentId, this);
}
}
void FPrimitiveSceneInfo::UnlinkLODParentComponent()
{
if(LODParentComponentId.IsValid())
{
Scene->SceneLODHierarchy.RemoveChildNode(LODParentComponentId, this);
}
}
void FPrimitiveSceneInfo::LinkAttachmentGroup()
{
// Add the primitive to its attachment group.
if (LightingAttachmentRoot.IsValid())
{
FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(LightingAttachmentRoot);
if (!AttachmentGroup)
{
// If this is the first primitive attached that uses this attachment parent, create a new attachment group.
AttachmentGroup = &Scene->AttachmentGroups.Add(LightingAttachmentRoot, FAttachmentGroupSceneInfo());
}
AttachmentGroup->Primitives.Add(this);
}
else if (Proxy->LightAttachmentsAsGroup())
{
FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(PrimitiveComponentId);
if (!AttachmentGroup)
{
// Create an empty attachment group
AttachmentGroup = &Scene->AttachmentGroups.Add(PrimitiveComponentId, FAttachmentGroupSceneInfo());
}
AttachmentGroup->ParentSceneInfo = this;
}
}
void FPrimitiveSceneInfo::UnlinkAttachmentGroup()
{
// Remove the primitive from its attachment group.
if (LightingAttachmentRoot.IsValid())
{
FAttachmentGroupSceneInfo& AttachmentGroup = Scene->AttachmentGroups.FindChecked(LightingAttachmentRoot);
AttachmentGroup.Primitives.RemoveSwap(this);
if (AttachmentGroup.Primitives.Num() == 0 && AttachmentGroup.ParentSceneInfo == nullptr)
{
// If this was the last primitive attached that uses this attachment group and the root has left the building, free the group.
Scene->AttachmentGroups.Remove(LightingAttachmentRoot);
}
}
else if (Proxy->LightAttachmentsAsGroup())
{
FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(PrimitiveComponentId);
if (AttachmentGroup)
{
AttachmentGroup->ParentSceneInfo = NULL;
if (AttachmentGroup->Primitives.Num() == 0)
{
// If this was the owner and the group is empty, remove it (otherwise the above will remove when the last attached goes).
Scene->AttachmentGroups.Remove(PrimitiveComponentId);
}
}
}
}
bool FPrimitiveSceneInfo::RequestGPUSceneUpdate(EPrimitiveDirtyState PrimitiveDirtyState)
{
if (Scene && IsIndexValid())
{
Scene->GPUScene.AddPrimitiveToUpdate(GetIndex(), PrimitiveDirtyState);
return true;
}
return false;
}
void FPrimitiveSceneInfo::GatherLightingAttachmentGroupPrimitives(TArray<FPrimitiveSceneInfo*, SceneRenderingAllocator>& OutChildSceneInfos)
{
#if ENABLE_NAN_DIAGNOSTIC
// local function that returns full name of object
auto GetObjectName = [](const UPrimitiveComponent* InPrimitive)->FString
{
return (InPrimitive) ? InPrimitive->GetFullName() : FString(TEXT("Unknown Object"));
};
// verify that the current object has a valid bbox before adding it
const float& BoundsRadius = this->Proxy->GetBounds().SphereRadius;
if (ensureMsgf(!FMath::IsNaN(BoundsRadius) && FMath::IsFinite(BoundsRadius),
TEXT("%s had an ill-formed bbox and was skipped during shadow setup, contact DavidH."), *GetObjectName(this->ComponentForDebuggingOnly)))
{
OutChildSceneInfos.Add(this);
}
else
{
// return, leaving the TArray empty
return;
}
#else
// add self at the head of this queue
OutChildSceneInfos.Add(this);
#endif
if (!LightingAttachmentRoot.IsValid() && Proxy->LightAttachmentsAsGroup())
{
const FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(PrimitiveComponentId);
if (AttachmentGroup)
{
for (int32 ChildIndex = 0, ChildIndexMax = AttachmentGroup->Primitives.Num(); ChildIndex < ChildIndexMax; ChildIndex++)
{
FPrimitiveSceneInfo* ShadowChild = AttachmentGroup->Primitives[ChildIndex];
#if ENABLE_NAN_DIAGNOSTIC
// Only enqueue objects with valid bounds using the normality of the SphereRaduis as criteria.
const float& ShadowChildBoundsRadius = ShadowChild->Proxy->GetBounds().SphereRadius;
if (ensureMsgf(!FMath::IsNaN(ShadowChildBoundsRadius) && FMath::IsFinite(ShadowChildBoundsRadius),
TEXT("%s had an ill-formed bbox and was skipped during shadow setup, contact DavidH."), *GetObjectName(ShadowChild->ComponentForDebuggingOnly)))
{
checkSlow(!OutChildSceneInfos.Contains(ShadowChild))
OutChildSceneInfos.Add(ShadowChild);
}
#else
// enqueue all objects.
checkSlow(!OutChildSceneInfos.Contains(ShadowChild))
OutChildSceneInfos.Add(ShadowChild);
#endif
}
}
}
}
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
void FPrimitiveSceneInfo::GatherLightingAttachmentGroupPrimitives(TArray<const FPrimitiveSceneInfo*, SceneRenderingAllocator>& OutChildSceneInfos) const
{
OutChildSceneInfos.Add(this);
if (!LightingAttachmentRoot.IsValid() && Proxy->LightAttachmentsAsGroup())
{
const FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(PrimitiveComponentId);
if (AttachmentGroup)
{
for (int32 ChildIndex = 0, ChildIndexMax = AttachmentGroup->Primitives.Num(); ChildIndex < ChildIndexMax; ChildIndex++)
{
const FPrimitiveSceneInfo* ShadowChild = AttachmentGroup->Primitives[ChildIndex];
checkSlow(!OutChildSceneInfos.Contains(ShadowChild))
OutChildSceneInfos.Add(ShadowChild);
}
}
}
}
FBoxSphereBounds FPrimitiveSceneInfo::GetAttachmentGroupBounds() const
{
FBoxSphereBounds Bounds = Proxy->GetBounds();
if (!LightingAttachmentRoot.IsValid() && Proxy->LightAttachmentsAsGroup())
{
const FAttachmentGroupSceneInfo* AttachmentGroup = Scene->AttachmentGroups.Find(PrimitiveComponentId);
if (AttachmentGroup)
{
for (int32 ChildIndex = 0; ChildIndex < AttachmentGroup->Primitives.Num(); ChildIndex++)
{
FPrimitiveSceneInfo* AttachmentChild = AttachmentGroup->Primitives[ChildIndex];
Bounds = Bounds + AttachmentChild->Proxy->GetBounds();
}
}
}
return Bounds;
}
uint32 FPrimitiveSceneInfo::GetMemoryFootprint()
{
return( sizeof( *this ) + HitProxies.GetAllocatedSize() + StaticMeshes.GetAllocatedSize() + StaticMeshRelevances.GetAllocatedSize() );
}
void FPrimitiveSceneInfo::ApplyWorldOffset(FVector InOffset)
{
Proxy->ApplyWorldOffset(InOffset);
}
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
void FPrimitiveSceneInfo::UpdateIndirectLightingCacheBuffer(
const FIndirectLightingCache* LightingCache,
const FIndirectLightingCacheAllocation* LightingAllocation,
FVector VolumetricLightmapLookupPosition,
uint32 SceneFrameNumber,
FVolumetricLightmapSceneData* VolumetricLightmapSceneData)
{
FIndirectLightingCacheUniformParameters Parameters;
GetIndirectLightingCacheParameters(
Scene->GetFeatureLevel(),
Parameters,
LightingCache,
LightingAllocation,
VolumetricLightmapLookupPosition,
SceneFrameNumber,
VolumetricLightmapSceneData);
if (IndirectLightingCacheUniformBuffer)
{
IndirectLightingCacheUniformBuffer.UpdateUniformBufferImmediate(Parameters);
}
}
void FPrimitiveSceneInfo::UpdateIndirectLightingCacheBuffer()
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
{
if (bIndirectLightingCacheBufferDirty)
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
{
QUICK_SCOPE_CYCLE_COUNTER(STAT_UpdateIndirectLightingCacheBuffer);
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3503468 by Marcus.Wassmer Fix merge conflicts Change 3537059 by Ben.Marsh Fixing case of iOS directories, pt1 Change 3537060 by Ben.Marsh Fixing case of iOS directories, pt2 Change 3608300 by Chris.Bunner Added post process material to preview compile cache set to allow post process volume preview scene improvements. Change 3608302 by Chris.Bunner Fixed decal lifetime fading. #jira UE-48400 Change 3608303 by Chris.Bunner Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time). Fixed material instances returning their local data when not overridden. #jira UE-48254 Change 3608455 by Mark.Satterthwaite Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders. #jira UE-47372 Change 3608462 by Rolando.Caloca DR - Cloth vertex buffers no longer generate dummy vertices Copy from 3608349 and 3608407 Change 3608491 by Rolando.Caloca DR - hlsl - Fix crash when type was not found Change 3608513 by Rolando.Caloca DR - Default to real uniform buffers for Vulkan SM4 & SM5 Change 3608794 by Mark.Satterthwaite Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map. #jira UE-47614 Change 3608929 by Mark.Satterthwaite Fix ambiguous expression compile error. Change 3608991 by Mark.Satterthwaite Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes. Change 3609090 by Uriel.Doyon StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer. Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes. Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer. BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data. MipBias now behaves the same way in shipping than in other builds. Fixed texture resolution logic for editor tooltips and in game stats. Change 3609659 by Richard.Wallis Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia. #jira UE-48642 Change 3610552 by Mark.Satterthwaite Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac. Change 3610662 by Rolando.Caloca DR - hlsl - Fix for rwstructured buffer Fix for floats printed as ints Change 3610830 by Michael.Lentine ByteAddressBuffer does not have a subtype. Change 3610869 by Rolando.Caloca DR - hlsl - Fix disambiguation between 1.r and 1.0.r Change 3610982 by Mark.Satterthwaite Use the correct code to dump Metal shader text for debugging at runtime. Change 3610996 by Rolando.Caloca DR - hlsl - Actual fix for 0.r Change 3611312 by Rolando.Caloca DR - Integrate: Improve performance of bokeh depth of field. * Fewer instances with more work (higher quad count) per instance. * Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used). * Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter). Change 3611345 by Mark.Satterthwaite Missed the hash-table destructor in previous change. Change 3611372 by Rolando.Caloca DR - vk - New barrier/layout api Change 3611445 by Mark.Satterthwaite Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though. Change 3611686 by Mark.Satterthwaite Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling. #jira UE-48881 Change 3611743 by Mark.Satterthwaite Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present. Change 3611746 by Mark.Satterthwaite Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour. Change 3611756 by Mark.Satterthwaite Missed a header file in last commit. Change 3611836 by Mark.Satterthwaite Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended. Change 3611843 by Mark.Satterthwaite Tidy up the handling of when to increment the frame count for the Metal capture manager. Change 3612279 by Michael.Lentine Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen. Change 3612595 by Rolando.Caloca DR - hlslcc - Rebuilt with CL 3611345 Change 3612665 by Rolando.Caloca DR - Make cubemap mip barrier consistent with HZB mip barriers Change 3612758 by Daniel.Wright FColor usage comment Change 3612980 by Rolando.Caloca DR - hlsl - Do not overflow ints Change 3613068 by Rolando.Caloca DR - vk - Initial fix for transition validation warnings Change 3613115 by Daniel.Wright Volumetric lightmap voxels are now always cubes Bricks outside of any Lightmass Importance Volume will never be refined Change 3613124 by zachary.wilson Enabling Eye-Adaptation in TM-ShaderModels. Change 3613205 by Mark.Satterthwaite Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended. Change 3613208 by Mark.Satterthwaite Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors. Change 3613354 by zachary.wilson Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow. Change 3613409 by Rolando.Caloca DR - vk - Layout as part of descriptor writes Some access flag warning fixes Change 3613518 by Daniel.Wright Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar Change 3613610 by Daniel.Wright Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size Change 3613651 by Daniel.Wright [Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert. Also added shrinking for GDistanceFieldUploadData which saved 15Mb. Change 3613696 by Mark.Satterthwaite Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes. Change 3613697 by Rolando.Caloca DR - vk - Fix missing layout Change 3613922 by Rolando.Caloca DR - vk - Some fixes for layout/transitions - Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed Change 3614009 by Mark.Satterthwaite TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI. Change 3614015 by Mark.Satterthwaite Initial extensions to mtlpp: - Fixed over retention of alloc-init'd objects. - Added 10_13 & 11_0 availablity macros. - Started, but have not yet finished adding new Metal API function wrappers. Change 3614909 by Rolando.Caloca DR - Fix static analysis Change 3614916 by Michael.Lentine Add function to convert FP32 to FP16 Change 3614957 by Mark.Satterthwaite mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet. Change 3614995 by Mark.Satterthwaite Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo. Change 3615035 by Rolando.Caloca DR - Generate mips using shader for HZB Change 3615561 by Rolando.Caloca DR - Fix deprecation warning Change 3615787 by Mark.Satterthwaite Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that. #jira UE-48919 Change 3616317 by Mark.Satterthwaite Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory. Change 3616357 by Mark.Satterthwaite And fix some compile errors... Change 3616473 by Rolando.Caloca DR - Render pass api minor changes Change 3616518 by Mark.Satterthwaite Fix a merge snafu where dead code was retained where it shouldn't be. #jira UE-48472 Change 3616706 by Rolando.Caloca DR - Vulkan fixes (integration from Vulkan working branch) - Fix for editor outline - Fix for profilegpu Change 3616770 by Rolando.Caloca DR - vk - Mark GIsGPUCrashed on device lost Change 3616993 by Daniel.Wright IndirectLightingCacheQuality respects VolumetricLightingMethod Change 3616996 by Daniel.Wright Volumetric Lightmap show flag is respected by Volumetric Fog Change 3616999 by Daniel.Wright Fixed ObjectRadius in Volume domain materials Change 3617777 by Rolando.Caloca DR - Fix static analysis warning Change 3617863 by Guillaume.Abadie PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva) #jira UE-48159 Change 3618133 by Rolando.Caloca DR - vk - Set general layout for compute shader resources - Assume transitions to writable imply end render pass Change 3618292 by Michael.Lentine Add support for Expressions, Jump Statments, and Structs. Change 3618326 by Rolando.Caloca DR - vk - Fix transition flags Change 3618408 by Daniel.Wright Lightmass skylight solver improvements * Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing. * Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable. * The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners * Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%. * Added support for Embree packet tracing although no solver algorithms use it yet Change 3618413 by Daniel.Wright Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s. Change 3618439 by Mark.Satterthwaite Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic. Change 3618468 by Rolando.Caloca DR - vk - Fix copy to non render target surface Change 3618696 by Daniel.Wright Worked around Lightmass crash callstacks not getting reported back to the editor Change 3618779 by Mark.Satterthwaite mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes. Change 3618789 by Daniel.Wright Added missing file Change 3618816 by Daniel.Wright Another missing file Change 3618855 by Rolando.Caloca DR - vk - Show user debug markers when using dump layers - Remove old defines Change 3618887 by Rolando.Caloca DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan. Change 3618999 by Mark.Satterthwaite Definitions for Metal's new CaptureManager & CaptureScope classes. Change 3619790 by Jian.Ru Add some debug info #jira UE-48710 Change 3619834 by Rolando.Caloca DR - vk - static analysis fix Change 3619952 by Rolando.Caloca DR - vk - Static analysis not smart enough... Change 3620191 by Jian.Ru Revert 3584245 to prevent focus stealing #jira UE-49044 Change 3620402 by Mark.Satterthwaite Remaining Metal definitions for mtlpp. Change 3620803 by Brian.Karis Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly. Change 3620904 by Michael.Lentine Change the order of static and const Change 3620975 by Rolando.Caloca DR - Updated Vulkan headers to SDK 1.0.57.0 Change 3621026 by Rolando.Caloca DR - Remove unused type - Force recompile with new Vulkan headers Change 3621070 by Rolando.Caloca DR - glslang - Fix pdb option Change 3621157 by Arciel.Rekman Added files to cross-build glslang on Windows. (Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...) Change 3621194 by Rolando.Caloca DR - glslang - Update to 1.0.57.0 - Fix some tab/whitespace mismatch Change 3621225 by Rolando.Caloca DR - Revert glslang (Back out changelist 3621194) Change 3621254 by Mark.Satterthwaite Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL. Change 3621261 by Mark.Satterthwaite Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt. Change 3621262 by Mark.Satterthwaite Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that. Change 3621263 by Mark.Satterthwaite Don't mandate Mobile Metal for projects that have Metal MRT enabled. Change 3621301 by Rolando.Caloca DR - Unity build fix Change 3621349 by Mark.Satterthwaite Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth. Change 3621546 by Uriel.Doyon Refactor of the texture 2D mip update logic to offload more work on the async thread. #jira UE-45332 #jira UE-45789 Change 3622210 by Rolando.Caloca DR - Do not store DDC data if static mesh failed to build #jira UE-48358 Change 3622349 by Arciel.Rekman Better build script for Linux glslang and a bugfix. (Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...) Change 3622401 by Rolando.Caloca DR - vk - Integration - Support for r.Vulkan.ProfileCmdBuffers Change 3622506 by Rolando.Caloca DR - vk - Back out changelist 3622401 Change 3622521 by Mark.Satterthwaite Support disabling V-Sync in MetalRHI on macOS 10.13+. Change 3622910 by Rolando.Caloca DR - static analysis fix Change 3622964 by Mark.Satterthwaite Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk. #jira UE-48193 Change 3622986 by Mark.Satterthwaite A couple more trivial optimisations to MetalRHI for iOS: - Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost. - On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense. - No need to rebind uniform buffers if to the same slot - it just wastes cycles. Change 3623266 by Rolando.Caloca DR - Fix GL4 rendering #jira UE-49187 Change 3623377 by Daniel.Wright Volume materials applied to static meshes operate on the object's bounding sphere Change 3623427 by Mark.Satterthwaite Fix MetalViewport compile errors on Xode 8.3. #jira UE-49231 Change 3623443 by Daniel.Wright Fixed out of bounds crash in lightmass Change 3623751 by Daniel.Wright Volume materials on static meshes now voxelize the mesh's Object space bounding box Change 3625142 by Guillaume.Abadie PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav) Change 3625983 by Jian.Ru Fix a LPV race condtion due to parallel RSM draw-call submission #jira UE-48247 Change 3626015 by Jian.Ru Small fix to 3625983 Change 3626294 by Michael.Trepka Copy of CL 3535792 and 3576637 Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native. Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac. #jira UE-48018 Change 3626532 by Marcus.Wassmer Fix divide by 0 crash when GPU timing frequency not available for whatever reason. Change 3626548 by Ryan.Brucks KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings Change 3626874 by Mark.Satterthwaite Fix Metal 2.0 compilation. Change 3626997 by Rolando.Caloca DR - vk - cis fix - Initial RGBA16 readback Change 3627016 by Mark.Satterthwaite Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library. Change 3627040 by Brian.Karis Removed old rasterized deferred reflection env path. Removed reflection compute shader. Replaced with PS. Small perf gain. Change 3627055 by Mark.Satterthwaite No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution. Change 3627057 by Mark.Satterthwaite Make SCW's directcompile not fall over with Metal when there are compilation errors. Change 3627083 by Mark.Satterthwaite Invalidate Metal shaders so QA testing picks up the most recent changes. Change 3627788 by Chris.Bunner [Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression. Change 3627834 by Rolando.Caloca DR - cis fix Change 3627847 by Rolando.Caloca DR - 4th try to fix static analysis Change 3627877 by Guillaume.Abadie Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet. #jira UE-48063 Change 3628035 by Marcus.Wassmer Duplicate 3620990 Smarter scenecapture allocation behavior. Change 3628204 by Daniel.Wright Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps Change 3628217 by Mark.Satterthwaite Fix InfiltratorForward project defaults so that iOS will package. Change 3628515 by Arne.Schober DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled. #RB Marcus.Wassmer Change 3628550 by Chris.Bunner Merge fixes. Change 3628597 by Chris.Bunner Merge fixes. Change 3628656 by Michael.Trepka One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier. Change 3628685 by Daniel.Wright CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame. Change 3629094 by Ryan.Brucks Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks #RB none Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629491 by Rolando.Caloca DR - Revert back to emulated uniform buffers on SM4/SM5 Change 3629663 by Daniel.Wright Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting Change 3629664 by Daniel.Wright Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3629770 by Mark.Satterthwaite Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this). Change 3629793 by Daniel.Wright Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory Change 3629859 by Mark.Satterthwaite macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above. Change 3630790 by Mark.Satterthwaite Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within. Change 3630990 by Rolando.Caloca DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58) Change 3631071 by Mark.Satterthwaite Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache. #jira UE-49431 Change 3631076 by Rolando.Caloca DR - vk - Redo 3617574, reduce number of render pass objects created Change 3631250 by Mark.Satterthwaite Make another Metal warning a Verbose log instead as it isn't interesting unless you are me. Change 3631911 by Chris.Bunner Back out changelist 3628035. #jira UE-49364, UE-49365 Change 3632041 by Mark.Satterthwaite Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious. #jira UE-49439 Change 3632261 by Brian.Karis SM4 fallback for reflection captures. Change 3632281 by Mark.Satterthwaite Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation. Change 3632382 by Rolando.Caloca DR - vk - Fix clang warning Change 3633338 by Chris.Bunner Static analysis/Linux compile fix. #jira UE-49502 Change 3633616 by Jian.Ru Force alpha to 0xff for functional UI screenshot tests #jira UE-48266 Change 3633818 by Daniel.Wright Better indirection texture clamping and asserts Change 3634319 by Mark.Satterthwaite Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does. #jira UE-49381 Change 3634613 by Rolando.Caloca DR - Call discard on bulk data for textures #jira UE-49533 Change 3634654 by Mark.Satterthwaite Fixes for broken iOS builds: - Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while. - Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes. #jira UE-49381 Change 3634820 by Mark.Satterthwaite Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*. #jira UE-49381 Change 3634821 by Mark.Satterthwaite Force Metal shaders only to recompile by incrementing the format version. [CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
if (Scene->GetFeatureLevel() < ERHIFeatureLevel::SM5
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3503468 by Marcus.Wassmer Fix merge conflicts Change 3537059 by Ben.Marsh Fixing case of iOS directories, pt1 Change 3537060 by Ben.Marsh Fixing case of iOS directories, pt2 Change 3608300 by Chris.Bunner Added post process material to preview compile cache set to allow post process volume preview scene improvements. Change 3608302 by Chris.Bunner Fixed decal lifetime fading. #jira UE-48400 Change 3608303 by Chris.Bunner Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time). Fixed material instances returning their local data when not overridden. #jira UE-48254 Change 3608455 by Mark.Satterthwaite Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders. #jira UE-47372 Change 3608462 by Rolando.Caloca DR - Cloth vertex buffers no longer generate dummy vertices Copy from 3608349 and 3608407 Change 3608491 by Rolando.Caloca DR - hlsl - Fix crash when type was not found Change 3608513 by Rolando.Caloca DR - Default to real uniform buffers for Vulkan SM4 & SM5 Change 3608794 by Mark.Satterthwaite Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map. #jira UE-47614 Change 3608929 by Mark.Satterthwaite Fix ambiguous expression compile error. Change 3608991 by Mark.Satterthwaite Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes. Change 3609090 by Uriel.Doyon StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer. Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes. Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer. BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data. MipBias now behaves the same way in shipping than in other builds. Fixed texture resolution logic for editor tooltips and in game stats. Change 3609659 by Richard.Wallis Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia. #jira UE-48642 Change 3610552 by Mark.Satterthwaite Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac. Change 3610662 by Rolando.Caloca DR - hlsl - Fix for rwstructured buffer Fix for floats printed as ints Change 3610830 by Michael.Lentine ByteAddressBuffer does not have a subtype. Change 3610869 by Rolando.Caloca DR - hlsl - Fix disambiguation between 1.r and 1.0.r Change 3610982 by Mark.Satterthwaite Use the correct code to dump Metal shader text for debugging at runtime. Change 3610996 by Rolando.Caloca DR - hlsl - Actual fix for 0.r Change 3611312 by Rolando.Caloca DR - Integrate: Improve performance of bokeh depth of field. * Fewer instances with more work (higher quad count) per instance. * Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used). * Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter). Change 3611345 by Mark.Satterthwaite Missed the hash-table destructor in previous change. Change 3611372 by Rolando.Caloca DR - vk - New barrier/layout api Change 3611445 by Mark.Satterthwaite Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though. Change 3611686 by Mark.Satterthwaite Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling. #jira UE-48881 Change 3611743 by Mark.Satterthwaite Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present. Change 3611746 by Mark.Satterthwaite Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour. Change 3611756 by Mark.Satterthwaite Missed a header file in last commit. Change 3611836 by Mark.Satterthwaite Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended. Change 3611843 by Mark.Satterthwaite Tidy up the handling of when to increment the frame count for the Metal capture manager. Change 3612279 by Michael.Lentine Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen. Change 3612595 by Rolando.Caloca DR - hlslcc - Rebuilt with CL 3611345 Change 3612665 by Rolando.Caloca DR - Make cubemap mip barrier consistent with HZB mip barriers Change 3612758 by Daniel.Wright FColor usage comment Change 3612980 by Rolando.Caloca DR - hlsl - Do not overflow ints Change 3613068 by Rolando.Caloca DR - vk - Initial fix for transition validation warnings Change 3613115 by Daniel.Wright Volumetric lightmap voxels are now always cubes Bricks outside of any Lightmass Importance Volume will never be refined Change 3613124 by zachary.wilson Enabling Eye-Adaptation in TM-ShaderModels. Change 3613205 by Mark.Satterthwaite Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended. Change 3613208 by Mark.Satterthwaite Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors. Change 3613354 by zachary.wilson Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow. Change 3613409 by Rolando.Caloca DR - vk - Layout as part of descriptor writes Some access flag warning fixes Change 3613518 by Daniel.Wright Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar Change 3613610 by Daniel.Wright Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size Change 3613651 by Daniel.Wright [Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert. Also added shrinking for GDistanceFieldUploadData which saved 15Mb. Change 3613696 by Mark.Satterthwaite Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes. Change 3613697 by Rolando.Caloca DR - vk - Fix missing layout Change 3613922 by Rolando.Caloca DR - vk - Some fixes for layout/transitions - Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed Change 3614009 by Mark.Satterthwaite TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI. Change 3614015 by Mark.Satterthwaite Initial extensions to mtlpp: - Fixed over retention of alloc-init'd objects. - Added 10_13 & 11_0 availablity macros. - Started, but have not yet finished adding new Metal API function wrappers. Change 3614909 by Rolando.Caloca DR - Fix static analysis Change 3614916 by Michael.Lentine Add function to convert FP32 to FP16 Change 3614957 by Mark.Satterthwaite mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet. Change 3614995 by Mark.Satterthwaite Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo. Change 3615035 by Rolando.Caloca DR - Generate mips using shader for HZB Change 3615561 by Rolando.Caloca DR - Fix deprecation warning Change 3615787 by Mark.Satterthwaite Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that. #jira UE-48919 Change 3616317 by Mark.Satterthwaite Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory. Change 3616357 by Mark.Satterthwaite And fix some compile errors... Change 3616473 by Rolando.Caloca DR - Render pass api minor changes Change 3616518 by Mark.Satterthwaite Fix a merge snafu where dead code was retained where it shouldn't be. #jira UE-48472 Change 3616706 by Rolando.Caloca DR - Vulkan fixes (integration from Vulkan working branch) - Fix for editor outline - Fix for profilegpu Change 3616770 by Rolando.Caloca DR - vk - Mark GIsGPUCrashed on device lost Change 3616993 by Daniel.Wright IndirectLightingCacheQuality respects VolumetricLightingMethod Change 3616996 by Daniel.Wright Volumetric Lightmap show flag is respected by Volumetric Fog Change 3616999 by Daniel.Wright Fixed ObjectRadius in Volume domain materials Change 3617777 by Rolando.Caloca DR - Fix static analysis warning Change 3617863 by Guillaume.Abadie PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva) #jira UE-48159 Change 3618133 by Rolando.Caloca DR - vk - Set general layout for compute shader resources - Assume transitions to writable imply end render pass Change 3618292 by Michael.Lentine Add support for Expressions, Jump Statments, and Structs. Change 3618326 by Rolando.Caloca DR - vk - Fix transition flags Change 3618408 by Daniel.Wright Lightmass skylight solver improvements * Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing. * Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable. * The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners * Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%. * Added support for Embree packet tracing although no solver algorithms use it yet Change 3618413 by Daniel.Wright Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s. Change 3618439 by Mark.Satterthwaite Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic. Change 3618468 by Rolando.Caloca DR - vk - Fix copy to non render target surface Change 3618696 by Daniel.Wright Worked around Lightmass crash callstacks not getting reported back to the editor Change 3618779 by Mark.Satterthwaite mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes. Change 3618789 by Daniel.Wright Added missing file Change 3618816 by Daniel.Wright Another missing file Change 3618855 by Rolando.Caloca DR - vk - Show user debug markers when using dump layers - Remove old defines Change 3618887 by Rolando.Caloca DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan. Change 3618999 by Mark.Satterthwaite Definitions for Metal's new CaptureManager & CaptureScope classes. Change 3619790 by Jian.Ru Add some debug info #jira UE-48710 Change 3619834 by Rolando.Caloca DR - vk - static analysis fix Change 3619952 by Rolando.Caloca DR - vk - Static analysis not smart enough... Change 3620191 by Jian.Ru Revert 3584245 to prevent focus stealing #jira UE-49044 Change 3620402 by Mark.Satterthwaite Remaining Metal definitions for mtlpp. Change 3620803 by Brian.Karis Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly. Change 3620904 by Michael.Lentine Change the order of static and const Change 3620975 by Rolando.Caloca DR - Updated Vulkan headers to SDK 1.0.57.0 Change 3621026 by Rolando.Caloca DR - Remove unused type - Force recompile with new Vulkan headers Change 3621070 by Rolando.Caloca DR - glslang - Fix pdb option Change 3621157 by Arciel.Rekman Added files to cross-build glslang on Windows. (Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...) Change 3621194 by Rolando.Caloca DR - glslang - Update to 1.0.57.0 - Fix some tab/whitespace mismatch Change 3621225 by Rolando.Caloca DR - Revert glslang (Back out changelist 3621194) Change 3621254 by Mark.Satterthwaite Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL. Change 3621261 by Mark.Satterthwaite Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt. Change 3621262 by Mark.Satterthwaite Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that. Change 3621263 by Mark.Satterthwaite Don't mandate Mobile Metal for projects that have Metal MRT enabled. Change 3621301 by Rolando.Caloca DR - Unity build fix Change 3621349 by Mark.Satterthwaite Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth. Change 3621546 by Uriel.Doyon Refactor of the texture 2D mip update logic to offload more work on the async thread. #jira UE-45332 #jira UE-45789 Change 3622210 by Rolando.Caloca DR - Do not store DDC data if static mesh failed to build #jira UE-48358 Change 3622349 by Arciel.Rekman Better build script for Linux glslang and a bugfix. (Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...) Change 3622401 by Rolando.Caloca DR - vk - Integration - Support for r.Vulkan.ProfileCmdBuffers Change 3622506 by Rolando.Caloca DR - vk - Back out changelist 3622401 Change 3622521 by Mark.Satterthwaite Support disabling V-Sync in MetalRHI on macOS 10.13+. Change 3622910 by Rolando.Caloca DR - static analysis fix Change 3622964 by Mark.Satterthwaite Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk. #jira UE-48193 Change 3622986 by Mark.Satterthwaite A couple more trivial optimisations to MetalRHI for iOS: - Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost. - On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense. - No need to rebind uniform buffers if to the same slot - it just wastes cycles. Change 3623266 by Rolando.Caloca DR - Fix GL4 rendering #jira UE-49187 Change 3623377 by Daniel.Wright Volume materials applied to static meshes operate on the object's bounding sphere Change 3623427 by Mark.Satterthwaite Fix MetalViewport compile errors on Xode 8.3. #jira UE-49231 Change 3623443 by Daniel.Wright Fixed out of bounds crash in lightmass Change 3623751 by Daniel.Wright Volume materials on static meshes now voxelize the mesh's Object space bounding box Change 3625142 by Guillaume.Abadie PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav) Change 3625983 by Jian.Ru Fix a LPV race condtion due to parallel RSM draw-call submission #jira UE-48247 Change 3626015 by Jian.Ru Small fix to 3625983 Change 3626294 by Michael.Trepka Copy of CL 3535792 and 3576637 Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native. Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac. #jira UE-48018 Change 3626532 by Marcus.Wassmer Fix divide by 0 crash when GPU timing frequency not available for whatever reason. Change 3626548 by Ryan.Brucks KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings Change 3626874 by Mark.Satterthwaite Fix Metal 2.0 compilation. Change 3626997 by Rolando.Caloca DR - vk - cis fix - Initial RGBA16 readback Change 3627016 by Mark.Satterthwaite Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library. Change 3627040 by Brian.Karis Removed old rasterized deferred reflection env path. Removed reflection compute shader. Replaced with PS. Small perf gain. Change 3627055 by Mark.Satterthwaite No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution. Change 3627057 by Mark.Satterthwaite Make SCW's directcompile not fall over with Metal when there are compilation errors. Change 3627083 by Mark.Satterthwaite Invalidate Metal shaders so QA testing picks up the most recent changes. Change 3627788 by Chris.Bunner [Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression. Change 3627834 by Rolando.Caloca DR - cis fix Change 3627847 by Rolando.Caloca DR - 4th try to fix static analysis Change 3627877 by Guillaume.Abadie Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet. #jira UE-48063 Change 3628035 by Marcus.Wassmer Duplicate 3620990 Smarter scenecapture allocation behavior. Change 3628204 by Daniel.Wright Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps Change 3628217 by Mark.Satterthwaite Fix InfiltratorForward project defaults so that iOS will package. Change 3628515 by Arne.Schober DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled. #RB Marcus.Wassmer Change 3628550 by Chris.Bunner Merge fixes. Change 3628597 by Chris.Bunner Merge fixes. Change 3628656 by Michael.Trepka One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier. Change 3628685 by Daniel.Wright CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame. Change 3629094 by Ryan.Brucks Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks #RB none Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629491 by Rolando.Caloca DR - Revert back to emulated uniform buffers on SM4/SM5 Change 3629663 by Daniel.Wright Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting Change 3629664 by Daniel.Wright Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3629770 by Mark.Satterthwaite Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this). Change 3629793 by Daniel.Wright Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory Change 3629859 by Mark.Satterthwaite macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above. Change 3630790 by Mark.Satterthwaite Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within. Change 3630990 by Rolando.Caloca DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58) Change 3631071 by Mark.Satterthwaite Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache. #jira UE-49431 Change 3631076 by Rolando.Caloca DR - vk - Redo 3617574, reduce number of render pass objects created Change 3631250 by Mark.Satterthwaite Make another Metal warning a Verbose log instead as it isn't interesting unless you are me. Change 3631911 by Chris.Bunner Back out changelist 3628035. #jira UE-49364, UE-49365 Change 3632041 by Mark.Satterthwaite Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious. #jira UE-49439 Change 3632261 by Brian.Karis SM4 fallback for reflection captures. Change 3632281 by Mark.Satterthwaite Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation. Change 3632382 by Rolando.Caloca DR - vk - Fix clang warning Change 3633338 by Chris.Bunner Static analysis/Linux compile fix. #jira UE-49502 Change 3633616 by Jian.Ru Force alpha to 0xff for functional UI screenshot tests #jira UE-48266 Change 3633818 by Daniel.Wright Better indirection texture clamping and asserts Change 3634319 by Mark.Satterthwaite Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does. #jira UE-49381 Change 3634613 by Rolando.Caloca DR - Call discard on bulk data for textures #jira UE-49533 Change 3634654 by Mark.Satterthwaite Fixes for broken iOS builds: - Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while. - Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes. #jira UE-49381 Change 3634820 by Mark.Satterthwaite Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*. #jira UE-49381 Change 3634821 by Mark.Satterthwaite Force Metal shaders only to recompile by incrementing the format version. [CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
&& Scene->VolumetricLightmapSceneData.HasData()
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3809756) #rb None #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3761370 by Arne.Schober DR - Added CityHash to use with conatiners and stuff. It provides good performance and high quallity across multiple platforms. Change 3761437 by Guillaume.Abadie Optimises motion blur compute shader for consoles. Change 3761483 by Guillaume.Abadie Fixes D3D11 RHI lying to dynamic resolution heuristic with t.MaxFPS. Change 3761995 by Mark.Satterthwaite Add the Metal compiler path to the local .pch filename to avoid problems when Xcode moves. Change 3761996 by Mark.Satterthwaite Emit more details when a pixel shader is found to have no outputs at all which Metal doesn't permit. More likely this is a bug in the shader compiler not configuring the in-out mask correctly... #jira UE-52292 Change 3761999 by Mark.Satterthwaite No need to avoid tessellation for FMetalRHICommandContext::RHIEndDrawIndexedPrimitiveUP anymore - that was from back when the tessellation logic was replicated in each RHI*Draw* implementation. #jira UE-51937 Change 3762181 by Joe.Graf Changed MaxShaderJobBatchSize to 25 on Mac as it reduced shader compile time by 21% Change 3762607 by Mark.Satterthwaite Remove accidentally included changes from 3761995. Change 3762612 by Mark.Satterthwaite Enable the explicit sincos intrinsic for Metal to avoid instances of UE-52477 that can cause shaders to compile incorrectly through hlslcc. #jira UE-52477 Change 3762772 by Michael.Lentine Move RHI calls to render thread. Change 3763021 by Richard.Wallis Remove shader cache tool project and implementation. #jira UE-51613 Change 3763082 by Guillaume.Abadie More SceneTexture, SceneColor and SceneDepth automated tests Change 3763111 by Richard.Wallis Clone of CL 3763033 (Release-4.18): Fix for crash upon launching packaged game on Mac with Share Material Shader Code enabled. #jira UE-52121 Change 3763657 by Michael.Lentine Invalidate ddc for skeletal mesh render data so that the duplicated vertex render structures are properly serialized. Change 3763727 by Jian.Ru Fix Player Collision view mode. It is caused by checking an uninitialized vertex buffer so the check always fail. #jira UE-52052 Change 3763738 by Guillaume.Abadie Implements SSR input post process material location. Change 3764271 by Mark.Satterthwaite Allow ControlPointPatch lists to flow through MetalRHI as it was setup to handle this transparently - the VSHS compute shader will convert them to triangles to draw. Report the same warning as in the pipeline creation stage as this hasn't been formally validated. #jira UE-52454 Change 3764316 by Daniel.Wright Added AVolumetricLightmapDensityVolume - gives local control over Volumetric Lightmap density. Dropping the top mip outside of the play area in Monolith saves 20Mb (35Mb original). Volumetric Lightmap no longer refines around static translucent geometry - saves 5Mb in Monolith Reworked brick culling by error mechanism. Now compares error to interpolated parent lighting instead of the brick average - prevents dropping constant value bricks which are near a wall and cause leaking due to parent interpolation after being culled. Change 3764318 by Daniel.Wright Missing file Change 3764321 by Daniel.Wright Shader compiling memory optimizations * Editor memory: Sharing uniform buffer includes and GeneratedInstancedStereo.ush per FShaderType (was previously duplicated per FShader job) * SCW input size: Sharing uniform buffer includes and SharedEnvironment per batch * 7.6Gb of shader job inputs in memory -> .5Gb (13x less) when doing a full shader compile of Paragon Editor * 13.8Gb written into worker input files -> 2.9Gb (4.7x less). Global shaders are never batched when sent to SCW so unoptimized by these changes. Change 3764595 by Daniel.Wright Added VolumetricLightmapDensityVolume asset icons Change 3764701 by Michael.Lentine Add duplicated vertices merging for meshmerge. Change 3766002 by Guillaume.Abadie Fixes a crash in translucency. Change 3766007 by Guillaume.Abadie Oups.... Fixes compilation failure. Change 3766697 by Guillaume.Abadie Giant refactor of global shader interface for upcoming native support of permutation. CL generated by python script. Change 3767205 by Chris.Bunner Deferring FMaterial::RenderingThreadShaderMap update to render-thread rather than assumption commands have been flushed. #jira UE-50652 Change 3767207 by Chris.Bunner Clamp fetched texture coordinates to those available on the mesh. Change 3767209 by Chris.Bunner PR #4203: Early-outs in UMaterialInstance parameter setters (Contributed by stefanzimecki) #jira UE-52193 Change 3767772 by Mark.Satterthwaite MetalShaderFormat will no longer fallback to text shaders when you ask it to compile to bytecode but the bytecode compiler is not available (either locally or remotely) - this ensures that the DDC can't be poisoned by incorrectly configured clients. The Editor is already setup such that if the remote shader compiler is not configured & Xcode is not available locally the shader-compiler will be invoked to generate text shaders. #jira UE-52554 Change 3768604 by Guillaume.Abadie Polish up with new global shader function signature. Change 3768993 by Guillaume.Abadie Fixes r.Upscale.Panini cvars Change 3769478 by Mark.Satterthwaite Move the ue4_stdlib.metal & PCH into a temporary directory that exists for the lifetime of the SCW on the remote side as well as the local one and add this path as an include directory. #jira UE-52587 Change 3769703 by Mark.Satterthwaite For all Metal platforms >= Metal v1.2 transform mul(a,b) into fma(a,b,0) to prevent the Apple compiler reordering operations differently between the base & depth passes which results in variance in the position output. For iOS disable fast-math when the vertex-shader uses World-Position-Offset because there are additional problems on the iOS shader compiler that result in position variance even with the above fix - WPO performance will suffer but I don't have any alternatives. Remove the depth-offset hack from the depth-only vertex shader again. #jira UES-5651 Change 3769763 by Mark.Satterthwaite Handle swizzle's in the hlslcc fma identification pass so that we reduce the number of instructions and the platform compiler can't break the instructions up. Change 3769849 by Mark.Satterthwaite Fix CIS error. Change 3770517 by Richard.Wallis Fix for crash when creating a new media texture (AppleIntelHD5000GraphicsMTLDriver!SamplerStage::bindSamplerToTexture()). Missing texture resource for binding. Old InitDynamicRHI() code has been refactored out into seperate functions which leaves us on Mac with a NULL resource initially after creation which Metal doesn't like. This fix puts InitDynamicRHI down the default setup/clear path which inits default resources - I don't think we should use a global dummy in this instance as this is a render target. #jira UE-51940 Change 3770688 by Uriel.Doyon Fixed texture resolution returning 0 when running blueprint construction scripts at cook time. Change 3771115 by Mark.Satterthwaite Report errors from failed attempts to compile global shaders or we can't see why things fail on non-Windows platforms. Change 3771263 by Mark.Satterthwaite Change the way ManualVertexFetch is enabled on Metal platforms so that it is enabled when targeting Metal v1.2 and higher (macOS 10.12+/iOS 10+). This brings iOS in the Desktop Forward renderer back into line with the Mac. #jira UERNDR-300 Change 3773472 by Guillaume.Abadie Fixes a crash on PIE of SimpleComposure project. Change 3773475 by Guillaume.Abadie Fixes bug in editor viewport caused by SSR input changes. Change 3774677 by Arne.Schober DR - Deprecated SetLocal from the RHICmdlist Fixed some unnecessary PSO collisions. Change 3777037 by Mark.Satterthwaite Remove incorrect change that caused a reference to "accurate::sincos" to appear in some Metal shaders rather than "precise::sincos". Change 3777122 by Mark.Satterthwaite Back out changelist 3777037 - I'm blind and wasn't seeing the real problem was a stale shader cache... Change 3777196 by Mark.Satterthwaite Fix text-shader compilation on iOS 10 - maybe iOS 9 too (untested!). We need our own make_scalar type-trait template for ue4_stdlib.metal so that we still compile with older iOS runtime compilers and we can't use as_type to directly implement the packHalf2x16/unpackHalf2x16 intrinsics for these older runtime compilers either. Change 3779098 by Rolando.Caloca DR - vk - Fix query index Change 3779275 by Mark.Satterthwaite Silence the Metal runtime compiler warning caused by use of a deprecated enum value when running text shaders compiled for Metal v1.0/1.1 on a Metal v1.2+ OS. #jira UE-52554 Change 3779427 by Rolando.Caloca DR - vk - Fix for allocator contention Change 3779608 by Uriel.Doyon Fixed invalid access in the resave package commantlet when building texture streaming material data for materials enabling tesselation. Change 3784496 by Mark.Satterthwaite Temporarily disable USE_OBJECT_COMPOSITING_TILE_CULLING for Metal shader compilation only - other platforms are unaffected - as it isn't working properly for some reason. need to work out what's up but don't want Distance Fields to be completely snookered in the interim. #jira UE-52952 Change 3784608 by Rolando.Caloca DR - Copy 3784588 - Fix for drivers returning out of date swapchains during resizes Change 3784734 by Mark.Satterthwaite Real fix for UE-52952 - MetalShaderFormat wasn't propagating the full thread-group value. #jira UE-52952 Change 3784741 by Mark.Satterthwaite More Metal debugging commandline options "-metalfastmath" & "-metalnofastmath" to force fast-math on or off for all shaders, must be using runtime-compiled shaders (i.e. -metalshaderdebug or r.Shaders.Optimise=0) to take effect. Change 3787103 by Guillaume.Abadie Kills BuiltinSamplers UB Change 3787207 by Guillaume.Abadie Sorry, compile fix that were fine with local changes... Change 3787396 by Marcus.Wassmer PR #4271: UE-52901: Set VIS_Max meta to hidden (Contributed by projectgheist) Change 3788028 by Peter.Sumanaseni Working linear HDR exr output from sequencer Change 3788536 by Mark.Satterthwaite Track whether the Metal shader uses the discard_fragment function as when this is used but without any other outputs we know we need to bind at least one render-target or a depth-stencil surface but we don't know which. This lets us correctly error when we encounter a shader with no outputs at all which Metal doesn't permit. #jira UE-52292 Change 3788538 by Mark.Satterthwaite Let's try mitigating UE-46604 on Nvidia by retaining resource references in the command-buffer. This shouldn't be necessary and isn't typically on other vendors but we haven't been able to reproduce this reliably enough to get to the bottom of it. #jira UE-46604 Change 3789083 by Guillaume.Abadie Implements global shader permutations. Example in ScreenSpaceReflections.cpp. Change 3789090 by Guillaume.Abadie Fixes linux build. Change 3789106 by Guillaume.Abadie Fixes compilation failure in niagara plugin. Change 3789274 by Guillaume.Abadie Avoid hit proxies to clobber TAA's hitsory. #jira UE-52968 Change 3789380 by Guillaume.Abadie Back out changelist 3789083: global shader permutation because compilation failure in clang. Change 3789648 by Guillaume.Abadie Relands global shader permutation, with clang support. Change 3789712 by Guillaume.Abadie Fixes TestImage show flag with TAAU on. #jira UE-53061 Change 3791593 by Guillaume.Abadie Reinvalidates shaders with shader permutations. Change 3791884 by Daniel.Wright Added BP setter for LowerHemisphereColor Change 3791886 by Daniel.Wright Added LightmapType to PrimitiveComponent * ForceVolumetric allows forcing static geometry to use Volumetric Lightmaps, which can be useful on instanced foliage where seams are prevalent. Lightmass internal caching still requires lightmap UVs and reasonable lightmap resolution. * ForceSurface replaces bLightAsIfStatic Improvements to Volumetric Lightmap quality needed for static geometry * Stationary light shadowing is now dilated inside geometry * Now doing two dilation passes since samples near geometry see inside due to ray start bias * Refinement around geometry uses an expanded cell bounds when the geometry is going to use Volumetric Lightmaps, since cross-resolution stitching causes leaking Lightmass debug primitives are now tied to a swarm task instead of global - allows debugging of Volumetric Lightmap tasks Change 3792256 by Guillaume.Abadie Fixes a bug where permutation was not actually serialised in FShader, so was ending up recompiling shader at every load. Change 3792884 by Marcus.Wassmer Copying //UE4/Partner-AMD to Dev-Rendering (//UE4/Dev-Rendering) Change 3793200 by Marcus.Wassmer Copying //UE4/Partner-IDV-SpeedTree to Dev-Rendering (//UE4/Dev-Rendering) Speedtree 8 support Change 3793206 by Brian.Karis Added color grading control BlueCorrection to correct for artifacts with "electric" blues due to the ACEScg color space. Bright blue desaturates instead of going to violet. Added color grading control ExpandGamut which expands bright saturated colors outside the sRGB gamut to fake wide gamut rendering. ACES changes. Change 3793344 by Marcus.Wassmer Fix editortest compile Change 3794285 by Guillaume.Abadie Serializes PermutationId according to archive rendering version to avoid issues with old material that were serializing a shader map into UObject. Change 3794307 by Guillaume.Abadie Resaves uassets that were modified between 3789648 and 3794285 Change 3794627 by Mark.Satterthwaite Implement two components for MTLPP, an IMP cache for Objective-C selector implementations & an interposition framework for those same selectors: - imp_SelectorCache & friends provide the IMP caching for each of the Metal protocols which constitute most of the API, so far I've not covered the Metal classes used for the various descriptor/initializer types. Each type has its own IMPTable which caches the selector's implementation pointer and provides the mechanism to hook that implementation. As Objective-C is runtime dynamic this look up must be performed on the actual Class value returned by an object at runtime - you can't do this at compile time. Even things like NSString which appear compile-time static are really not as NSString is an alias for a class-cluster (NSString, NSMutableString, __NSInlineString and more). - The interpose directory contains MTI* files which are the framework for interposing all the functions in Metal's runtime API - I deliberately omit the descriptor classes & read-only functions as there's no benefit to interposing them - which I can build off to create a trace tool or a superior validation layer. Right now this is Mac only as there'll be some problems to solve for iOS/tvOS due to difference in linking requirements - not insurmountable. - Rebuild MTLPP's implementation of the C++ wrapper classes around the IMPTable's - this means we avoid all the objc_msgSend overhead for all the classes and functions whose implementations are cached. Right now the IMPTable is going to incur a look-up for all non-copy/move constructors which is suboptimal - ideally the Metal IMPTables would be cached in the Device object as they will be consistent within a single Device. - Sort out the MTLPP availability logic - it now exports the availability warnings to the caller and internally just blithely assumes it may call the functions, the caller is responsible for ensuring that calls are made only on appropriate devices & OSes. This reduces MTLPP complexity and better fits how MetalRHI works. - Fix a number of retain/release bugs that were lying dormant in MTLPP but exposed by the switch to IMPTables. - Add tvOS support. Next up, put this into MetalRHI and start fixing all the fallout. Change 3794631 by Mark.Satterthwaite Missed updating mtlpp's build.cs for TVOS. Change 3794651 by Uriel.Doyon UPointLightComponent::GetUnitsConversionFactor() now takes the cone angle as parameter. This allows to fix spotlight unit conversion when using lumens. Change 3794720 by Guillaume.Abadie Fixes a bug in Global{Bilinear,Trilinear}ClampedSampler that was actually doing a Point sampling. Change 3794749 by Mark.Satterthwaite Fix mtlpp.build.cs paths. Change 3794856 by Mark.Satterthwaite Fix some shadowing warnings. Change 3795484 by Daniel.Wright Implemented the Spherical Harmonic windowing algorithm from 'Stupid Spherical Harmonics (SH) Tricks' New WorldSettings Lightmass property VolumetricLightmapSphericalHarmonicSmoothing controls the global amount of smoothing applied Change 3795590 by Brian.Karis Area light fixes Fixed order of operations. This helps mixing of SourceRadius, SourceLength, and SoftSourceRadius. Change 3796832 by Marcus.Wassmer Correct shouldcache condition for new resolve shader Change 3796884 by Marcus.Wassmer Doing it right this time. Change 3797196 by Mark.Satterthwaite More updates to MTLPP to make things simpler and reduce the number of spurious Objective-C warnings that are emitted because of the way we are using the runtime. Change 3797200 by Daniel.Wright Lightmass now uses the highest density VolumetricLightmapDensityVolume settings that affect any part of a cell Change 3797221 by Daniel.Wright Reduced default SphericalHarmonicSmoothing based on RoboRecall tests. Now only active with strong direct lighting from static lights by default. Change 3797411 by Brian.Karis Disable ExpandGamut for old tone mapper. Change 3797462 by Mark.Satterthwaite More build warnings silenced after changing to the lowest possible deployment target OS for each library. Change 3797585 by Mark.Satterthwaite Range-based-For support in the NSArray wrapper. Change 3797836 by Mark.Satterthwaite Even more forward-declarations to avoid system headers poking through to the including code from mtlpp. Change 3798027 by Mark.Satterthwaite Fix handling of nil objects, on which no functions may be called, command-buffer retention and IMP declaration. Change 3798154 by Mark.Satterthwaite Fix some egregious memory leaks that rewriting to use mtlpp exposed before we carry on - don't want these slipping into 4.19. Change 3800990 by Mark.Satterthwaite Typedef all the completion-handler callback types in mtlpp to make future me's life easier. Change 3801400 by Chris.Bunner Improving automated test errors on failure to generate report data. Change 3801726 by Mark.Satterthwaite Correct some function availability and the command-buffer error status in mtlpp. Change 3801808 by Chris.Bunner Added DefaultScalability.ini to EngineTest that forces all quality levels to Engine default Epic for now to improve consistency. Change 3801862 by Marcus.Wassmer Update automated tests with color gamut change Change 3802214 by Chris.Bunner When running automated tests in and editor-locked PIE viewport, skip resizing as the editor can't handle this. Added bindable delegate called when ScreenshotRequest is processed - Useful to allow screenshots to override and restore settings per capture. #jira UE-53188 Change 3802243 by Chris.Bunner Added button to automated test screenshot browser to add or replace all outstanding test reports if appropriate. DeleteAllReports button is now only enabled whilst there are reports in the list. Change 3802372 by Chris.Bunner Updating more test screenshots. Change 3803683 by Chris.Bunner Adding more logging and multiple attempts to automated test report network save. Added small wait on repeated operations that are known to fail. Change 3803826 by Rolando.Caloca DR - vk - Fix merge issue Change 3804181 by Chris.Bunner Tentative fix for CIS test failure. Change 3804236 by Chris.Bunner Additional logging for case where file write silently fails, report platform-specific error. Change 3804303 by zachary.wilson Cleaning up assets in QAGame saved with empty engine versions to resolve warnings seen when launching on Change 3804410 by Chris.Bunner Added additional logging when automated screenshot test fails due to size mismatch. Mismatched bounds are colored red in the delta. Change 3804455 by Mark.Satterthwaite Fix a small number of persistent memory leaks on the Mac build that slowly consume more and more memory as you use the Editor - interacting with menu's was particularly egregious as each NSMenu would leak after you move away. #jira NA Change 3804667 by Chris.Bunner Speculative CIS fixes. Change 3806008 by Chris.Bunner Partially reimplementing backed-out CL 3804181 to improve consistency of how automated screenshot test settings are applied/restored. #tests CIS preflight job 8174412 Change 3806909 by Mark.Satterthwaite Use the vertex-shader's in-out mask to ensure that we only validate legitmate vertex-streams in Metal's DrawIndexedPrimitive implementation. #jira UE-53046 Change 3807059 by laz.matech Checking in QAGame Rendering Map, QA-PhysicalLightingUnits, for testing Physical Light Units. Wanted to get this in before copy up. #Jira none Change 3807726 by Chris.Bunner Removed a check that we can't fix up. The check hits unbound buffers which it assumes means a failure but is actually due to m.v.fetch. We don't have the information available to know which are which removed from the input without reading from the shader. #jira UE-53046 Change 3807800 by Guillaume.Abadie Fixes some warning in shader headers. Change 3807804 by Guillaume.Abadie Back out changelist 3807800 Change 3807807 by Guillaume.Abadie Relands shader header warnings. Change 3808046 by Chris.Bunner Dropping a new automated test error back to a warning as this may lead to genuine issues being ignored in the short term. Change 3809579 by Chris.Bunner Back out changelist 3774677. #jira UE-53483 Change 3809620 by Chris.Bunner Updating animated cloth test screenshot. Change 3803629 by Chris.Bunner Rebuilt CornellBox and DistanceField test maps, updated screenshots. Change 3787045 by Guillaume.Abadie Moves some global samplers to Common.ush Change 3809756 by Chris.Bunner Updating animated cloth test screenshot. [CL 3809764 by Chris Bunner in Main branch]
2017-12-15 12:47:47 -05:00
&& (Proxy->IsMovable() || Proxy->NeedsUnbuiltPreviewLighting() || Proxy->GetLightmapType() == ELightmapType::ForceVolumetric)
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3503468 by Marcus.Wassmer Fix merge conflicts Change 3537059 by Ben.Marsh Fixing case of iOS directories, pt1 Change 3537060 by Ben.Marsh Fixing case of iOS directories, pt2 Change 3608300 by Chris.Bunner Added post process material to preview compile cache set to allow post process volume preview scene improvements. Change 3608302 by Chris.Bunner Fixed decal lifetime fading. #jira UE-48400 Change 3608303 by Chris.Bunner Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time). Fixed material instances returning their local data when not overridden. #jira UE-48254 Change 3608455 by Mark.Satterthwaite Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders. #jira UE-47372 Change 3608462 by Rolando.Caloca DR - Cloth vertex buffers no longer generate dummy vertices Copy from 3608349 and 3608407 Change 3608491 by Rolando.Caloca DR - hlsl - Fix crash when type was not found Change 3608513 by Rolando.Caloca DR - Default to real uniform buffers for Vulkan SM4 & SM5 Change 3608794 by Mark.Satterthwaite Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map. #jira UE-47614 Change 3608929 by Mark.Satterthwaite Fix ambiguous expression compile error. Change 3608991 by Mark.Satterthwaite Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes. Change 3609090 by Uriel.Doyon StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer. Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes. Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer. BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data. MipBias now behaves the same way in shipping than in other builds. Fixed texture resolution logic for editor tooltips and in game stats. Change 3609659 by Richard.Wallis Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia. #jira UE-48642 Change 3610552 by Mark.Satterthwaite Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac. Change 3610662 by Rolando.Caloca DR - hlsl - Fix for rwstructured buffer Fix for floats printed as ints Change 3610830 by Michael.Lentine ByteAddressBuffer does not have a subtype. Change 3610869 by Rolando.Caloca DR - hlsl - Fix disambiguation between 1.r and 1.0.r Change 3610982 by Mark.Satterthwaite Use the correct code to dump Metal shader text for debugging at runtime. Change 3610996 by Rolando.Caloca DR - hlsl - Actual fix for 0.r Change 3611312 by Rolando.Caloca DR - Integrate: Improve performance of bokeh depth of field. * Fewer instances with more work (higher quad count) per instance. * Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used). * Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter). Change 3611345 by Mark.Satterthwaite Missed the hash-table destructor in previous change. Change 3611372 by Rolando.Caloca DR - vk - New barrier/layout api Change 3611445 by Mark.Satterthwaite Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though. Change 3611686 by Mark.Satterthwaite Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling. #jira UE-48881 Change 3611743 by Mark.Satterthwaite Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present. Change 3611746 by Mark.Satterthwaite Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour. Change 3611756 by Mark.Satterthwaite Missed a header file in last commit. Change 3611836 by Mark.Satterthwaite Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended. Change 3611843 by Mark.Satterthwaite Tidy up the handling of when to increment the frame count for the Metal capture manager. Change 3612279 by Michael.Lentine Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen. Change 3612595 by Rolando.Caloca DR - hlslcc - Rebuilt with CL 3611345 Change 3612665 by Rolando.Caloca DR - Make cubemap mip barrier consistent with HZB mip barriers Change 3612758 by Daniel.Wright FColor usage comment Change 3612980 by Rolando.Caloca DR - hlsl - Do not overflow ints Change 3613068 by Rolando.Caloca DR - vk - Initial fix for transition validation warnings Change 3613115 by Daniel.Wright Volumetric lightmap voxels are now always cubes Bricks outside of any Lightmass Importance Volume will never be refined Change 3613124 by zachary.wilson Enabling Eye-Adaptation in TM-ShaderModels. Change 3613205 by Mark.Satterthwaite Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended. Change 3613208 by Mark.Satterthwaite Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors. Change 3613354 by zachary.wilson Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow. Change 3613409 by Rolando.Caloca DR - vk - Layout as part of descriptor writes Some access flag warning fixes Change 3613518 by Daniel.Wright Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar Change 3613610 by Daniel.Wright Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size Change 3613651 by Daniel.Wright [Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert. Also added shrinking for GDistanceFieldUploadData which saved 15Mb. Change 3613696 by Mark.Satterthwaite Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes. Change 3613697 by Rolando.Caloca DR - vk - Fix missing layout Change 3613922 by Rolando.Caloca DR - vk - Some fixes for layout/transitions - Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed Change 3614009 by Mark.Satterthwaite TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI. Change 3614015 by Mark.Satterthwaite Initial extensions to mtlpp: - Fixed over retention of alloc-init'd objects. - Added 10_13 & 11_0 availablity macros. - Started, but have not yet finished adding new Metal API function wrappers. Change 3614909 by Rolando.Caloca DR - Fix static analysis Change 3614916 by Michael.Lentine Add function to convert FP32 to FP16 Change 3614957 by Mark.Satterthwaite mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet. Change 3614995 by Mark.Satterthwaite Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo. Change 3615035 by Rolando.Caloca DR - Generate mips using shader for HZB Change 3615561 by Rolando.Caloca DR - Fix deprecation warning Change 3615787 by Mark.Satterthwaite Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that. #jira UE-48919 Change 3616317 by Mark.Satterthwaite Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory. Change 3616357 by Mark.Satterthwaite And fix some compile errors... Change 3616473 by Rolando.Caloca DR - Render pass api minor changes Change 3616518 by Mark.Satterthwaite Fix a merge snafu where dead code was retained where it shouldn't be. #jira UE-48472 Change 3616706 by Rolando.Caloca DR - Vulkan fixes (integration from Vulkan working branch) - Fix for editor outline - Fix for profilegpu Change 3616770 by Rolando.Caloca DR - vk - Mark GIsGPUCrashed on device lost Change 3616993 by Daniel.Wright IndirectLightingCacheQuality respects VolumetricLightingMethod Change 3616996 by Daniel.Wright Volumetric Lightmap show flag is respected by Volumetric Fog Change 3616999 by Daniel.Wright Fixed ObjectRadius in Volume domain materials Change 3617777 by Rolando.Caloca DR - Fix static analysis warning Change 3617863 by Guillaume.Abadie PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva) #jira UE-48159 Change 3618133 by Rolando.Caloca DR - vk - Set general layout for compute shader resources - Assume transitions to writable imply end render pass Change 3618292 by Michael.Lentine Add support for Expressions, Jump Statments, and Structs. Change 3618326 by Rolando.Caloca DR - vk - Fix transition flags Change 3618408 by Daniel.Wright Lightmass skylight solver improvements * Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing. * Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable. * The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners * Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%. * Added support for Embree packet tracing although no solver algorithms use it yet Change 3618413 by Daniel.Wright Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s. Change 3618439 by Mark.Satterthwaite Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic. Change 3618468 by Rolando.Caloca DR - vk - Fix copy to non render target surface Change 3618696 by Daniel.Wright Worked around Lightmass crash callstacks not getting reported back to the editor Change 3618779 by Mark.Satterthwaite mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes. Change 3618789 by Daniel.Wright Added missing file Change 3618816 by Daniel.Wright Another missing file Change 3618855 by Rolando.Caloca DR - vk - Show user debug markers when using dump layers - Remove old defines Change 3618887 by Rolando.Caloca DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan. Change 3618999 by Mark.Satterthwaite Definitions for Metal's new CaptureManager & CaptureScope classes. Change 3619790 by Jian.Ru Add some debug info #jira UE-48710 Change 3619834 by Rolando.Caloca DR - vk - static analysis fix Change 3619952 by Rolando.Caloca DR - vk - Static analysis not smart enough... Change 3620191 by Jian.Ru Revert 3584245 to prevent focus stealing #jira UE-49044 Change 3620402 by Mark.Satterthwaite Remaining Metal definitions for mtlpp. Change 3620803 by Brian.Karis Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly. Change 3620904 by Michael.Lentine Change the order of static and const Change 3620975 by Rolando.Caloca DR - Updated Vulkan headers to SDK 1.0.57.0 Change 3621026 by Rolando.Caloca DR - Remove unused type - Force recompile with new Vulkan headers Change 3621070 by Rolando.Caloca DR - glslang - Fix pdb option Change 3621157 by Arciel.Rekman Added files to cross-build glslang on Windows. (Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...) Change 3621194 by Rolando.Caloca DR - glslang - Update to 1.0.57.0 - Fix some tab/whitespace mismatch Change 3621225 by Rolando.Caloca DR - Revert glslang (Back out changelist 3621194) Change 3621254 by Mark.Satterthwaite Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL. Change 3621261 by Mark.Satterthwaite Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt. Change 3621262 by Mark.Satterthwaite Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that. Change 3621263 by Mark.Satterthwaite Don't mandate Mobile Metal for projects that have Metal MRT enabled. Change 3621301 by Rolando.Caloca DR - Unity build fix Change 3621349 by Mark.Satterthwaite Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth. Change 3621546 by Uriel.Doyon Refactor of the texture 2D mip update logic to offload more work on the async thread. #jira UE-45332 #jira UE-45789 Change 3622210 by Rolando.Caloca DR - Do not store DDC data if static mesh failed to build #jira UE-48358 Change 3622349 by Arciel.Rekman Better build script for Linux glslang and a bugfix. (Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...) Change 3622401 by Rolando.Caloca DR - vk - Integration - Support for r.Vulkan.ProfileCmdBuffers Change 3622506 by Rolando.Caloca DR - vk - Back out changelist 3622401 Change 3622521 by Mark.Satterthwaite Support disabling V-Sync in MetalRHI on macOS 10.13+. Change 3622910 by Rolando.Caloca DR - static analysis fix Change 3622964 by Mark.Satterthwaite Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk. #jira UE-48193 Change 3622986 by Mark.Satterthwaite A couple more trivial optimisations to MetalRHI for iOS: - Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost. - On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense. - No need to rebind uniform buffers if to the same slot - it just wastes cycles. Change 3623266 by Rolando.Caloca DR - Fix GL4 rendering #jira UE-49187 Change 3623377 by Daniel.Wright Volume materials applied to static meshes operate on the object's bounding sphere Change 3623427 by Mark.Satterthwaite Fix MetalViewport compile errors on Xode 8.3. #jira UE-49231 Change 3623443 by Daniel.Wright Fixed out of bounds crash in lightmass Change 3623751 by Daniel.Wright Volume materials on static meshes now voxelize the mesh's Object space bounding box Change 3625142 by Guillaume.Abadie PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav) Change 3625983 by Jian.Ru Fix a LPV race condtion due to parallel RSM draw-call submission #jira UE-48247 Change 3626015 by Jian.Ru Small fix to 3625983 Change 3626294 by Michael.Trepka Copy of CL 3535792 and 3576637 Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native. Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac. #jira UE-48018 Change 3626532 by Marcus.Wassmer Fix divide by 0 crash when GPU timing frequency not available for whatever reason. Change 3626548 by Ryan.Brucks KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings Change 3626874 by Mark.Satterthwaite Fix Metal 2.0 compilation. Change 3626997 by Rolando.Caloca DR - vk - cis fix - Initial RGBA16 readback Change 3627016 by Mark.Satterthwaite Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library. Change 3627040 by Brian.Karis Removed old rasterized deferred reflection env path. Removed reflection compute shader. Replaced with PS. Small perf gain. Change 3627055 by Mark.Satterthwaite No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution. Change 3627057 by Mark.Satterthwaite Make SCW's directcompile not fall over with Metal when there are compilation errors. Change 3627083 by Mark.Satterthwaite Invalidate Metal shaders so QA testing picks up the most recent changes. Change 3627788 by Chris.Bunner [Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression. Change 3627834 by Rolando.Caloca DR - cis fix Change 3627847 by Rolando.Caloca DR - 4th try to fix static analysis Change 3627877 by Guillaume.Abadie Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet. #jira UE-48063 Change 3628035 by Marcus.Wassmer Duplicate 3620990 Smarter scenecapture allocation behavior. Change 3628204 by Daniel.Wright Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps Change 3628217 by Mark.Satterthwaite Fix InfiltratorForward project defaults so that iOS will package. Change 3628515 by Arne.Schober DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled. #RB Marcus.Wassmer Change 3628550 by Chris.Bunner Merge fixes. Change 3628597 by Chris.Bunner Merge fixes. Change 3628656 by Michael.Trepka One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier. Change 3628685 by Daniel.Wright CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame. Change 3629094 by Ryan.Brucks Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks #RB none Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629491 by Rolando.Caloca DR - Revert back to emulated uniform buffers on SM4/SM5 Change 3629663 by Daniel.Wright Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting Change 3629664 by Daniel.Wright Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3629770 by Mark.Satterthwaite Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this). Change 3629793 by Daniel.Wright Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory Change 3629859 by Mark.Satterthwaite macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above. Change 3630790 by Mark.Satterthwaite Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within. Change 3630990 by Rolando.Caloca DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58) Change 3631071 by Mark.Satterthwaite Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache. #jira UE-49431 Change 3631076 by Rolando.Caloca DR - vk - Redo 3617574, reduce number of render pass objects created Change 3631250 by Mark.Satterthwaite Make another Metal warning a Verbose log instead as it isn't interesting unless you are me. Change 3631911 by Chris.Bunner Back out changelist 3628035. #jira UE-49364, UE-49365 Change 3632041 by Mark.Satterthwaite Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious. #jira UE-49439 Change 3632261 by Brian.Karis SM4 fallback for reflection captures. Change 3632281 by Mark.Satterthwaite Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation. Change 3632382 by Rolando.Caloca DR - vk - Fix clang warning Change 3633338 by Chris.Bunner Static analysis/Linux compile fix. #jira UE-49502 Change 3633616 by Jian.Ru Force alpha to 0xff for functional UI screenshot tests #jira UE-48266 Change 3633818 by Daniel.Wright Better indirection texture clamping and asserts Change 3634319 by Mark.Satterthwaite Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does. #jira UE-49381 Change 3634613 by Rolando.Caloca DR - Call discard on bulk data for textures #jira UE-49533 Change 3634654 by Mark.Satterthwaite Fixes for broken iOS builds: - Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while. - Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes. #jira UE-49381 Change 3634820 by Mark.Satterthwaite Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*. #jira UE-49381 Change 3634821 by Mark.Satterthwaite Force Metal shaders only to recompile by incrementing the format version. [CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
&& Proxy->WillEverBeLit())
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
{
UpdateIndirectLightingCacheBuffer(
nullptr,
nullptr,
Proxy->GetBounds().Origin,
Scene->GetFrameNumber(),
&Scene->VolumetricLightmapSceneData);
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3503468 by Marcus.Wassmer Fix merge conflicts Change 3537059 by Ben.Marsh Fixing case of iOS directories, pt1 Change 3537060 by Ben.Marsh Fixing case of iOS directories, pt2 Change 3608300 by Chris.Bunner Added post process material to preview compile cache set to allow post process volume preview scene improvements. Change 3608302 by Chris.Bunner Fixed decal lifetime fading. #jira UE-48400 Change 3608303 by Chris.Bunner Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time). Fixed material instances returning their local data when not overridden. #jira UE-48254 Change 3608455 by Mark.Satterthwaite Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders. #jira UE-47372 Change 3608462 by Rolando.Caloca DR - Cloth vertex buffers no longer generate dummy vertices Copy from 3608349 and 3608407 Change 3608491 by Rolando.Caloca DR - hlsl - Fix crash when type was not found Change 3608513 by Rolando.Caloca DR - Default to real uniform buffers for Vulkan SM4 & SM5 Change 3608794 by Mark.Satterthwaite Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map. #jira UE-47614 Change 3608929 by Mark.Satterthwaite Fix ambiguous expression compile error. Change 3608991 by Mark.Satterthwaite Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes. Change 3609090 by Uriel.Doyon StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer. Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes. Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer. BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data. MipBias now behaves the same way in shipping than in other builds. Fixed texture resolution logic for editor tooltips and in game stats. Change 3609659 by Richard.Wallis Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia. #jira UE-48642 Change 3610552 by Mark.Satterthwaite Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac. Change 3610662 by Rolando.Caloca DR - hlsl - Fix for rwstructured buffer Fix for floats printed as ints Change 3610830 by Michael.Lentine ByteAddressBuffer does not have a subtype. Change 3610869 by Rolando.Caloca DR - hlsl - Fix disambiguation between 1.r and 1.0.r Change 3610982 by Mark.Satterthwaite Use the correct code to dump Metal shader text for debugging at runtime. Change 3610996 by Rolando.Caloca DR - hlsl - Actual fix for 0.r Change 3611312 by Rolando.Caloca DR - Integrate: Improve performance of bokeh depth of field. * Fewer instances with more work (higher quad count) per instance. * Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used). * Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter). Change 3611345 by Mark.Satterthwaite Missed the hash-table destructor in previous change. Change 3611372 by Rolando.Caloca DR - vk - New barrier/layout api Change 3611445 by Mark.Satterthwaite Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though. Change 3611686 by Mark.Satterthwaite Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling. #jira UE-48881 Change 3611743 by Mark.Satterthwaite Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present. Change 3611746 by Mark.Satterthwaite Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour. Change 3611756 by Mark.Satterthwaite Missed a header file in last commit. Change 3611836 by Mark.Satterthwaite Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended. Change 3611843 by Mark.Satterthwaite Tidy up the handling of when to increment the frame count for the Metal capture manager. Change 3612279 by Michael.Lentine Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen. Change 3612595 by Rolando.Caloca DR - hlslcc - Rebuilt with CL 3611345 Change 3612665 by Rolando.Caloca DR - Make cubemap mip barrier consistent with HZB mip barriers Change 3612758 by Daniel.Wright FColor usage comment Change 3612980 by Rolando.Caloca DR - hlsl - Do not overflow ints Change 3613068 by Rolando.Caloca DR - vk - Initial fix for transition validation warnings Change 3613115 by Daniel.Wright Volumetric lightmap voxels are now always cubes Bricks outside of any Lightmass Importance Volume will never be refined Change 3613124 by zachary.wilson Enabling Eye-Adaptation in TM-ShaderModels. Change 3613205 by Mark.Satterthwaite Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended. Change 3613208 by Mark.Satterthwaite Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors. Change 3613354 by zachary.wilson Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow. Change 3613409 by Rolando.Caloca DR - vk - Layout as part of descriptor writes Some access flag warning fixes Change 3613518 by Daniel.Wright Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar Change 3613610 by Daniel.Wright Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size Change 3613651 by Daniel.Wright [Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert. Also added shrinking for GDistanceFieldUploadData which saved 15Mb. Change 3613696 by Mark.Satterthwaite Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes. Change 3613697 by Rolando.Caloca DR - vk - Fix missing layout Change 3613922 by Rolando.Caloca DR - vk - Some fixes for layout/transitions - Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed Change 3614009 by Mark.Satterthwaite TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI. Change 3614015 by Mark.Satterthwaite Initial extensions to mtlpp: - Fixed over retention of alloc-init'd objects. - Added 10_13 & 11_0 availablity macros. - Started, but have not yet finished adding new Metal API function wrappers. Change 3614909 by Rolando.Caloca DR - Fix static analysis Change 3614916 by Michael.Lentine Add function to convert FP32 to FP16 Change 3614957 by Mark.Satterthwaite mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet. Change 3614995 by Mark.Satterthwaite Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo. Change 3615035 by Rolando.Caloca DR - Generate mips using shader for HZB Change 3615561 by Rolando.Caloca DR - Fix deprecation warning Change 3615787 by Mark.Satterthwaite Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that. #jira UE-48919 Change 3616317 by Mark.Satterthwaite Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory. Change 3616357 by Mark.Satterthwaite And fix some compile errors... Change 3616473 by Rolando.Caloca DR - Render pass api minor changes Change 3616518 by Mark.Satterthwaite Fix a merge snafu where dead code was retained where it shouldn't be. #jira UE-48472 Change 3616706 by Rolando.Caloca DR - Vulkan fixes (integration from Vulkan working branch) - Fix for editor outline - Fix for profilegpu Change 3616770 by Rolando.Caloca DR - vk - Mark GIsGPUCrashed on device lost Change 3616993 by Daniel.Wright IndirectLightingCacheQuality respects VolumetricLightingMethod Change 3616996 by Daniel.Wright Volumetric Lightmap show flag is respected by Volumetric Fog Change 3616999 by Daniel.Wright Fixed ObjectRadius in Volume domain materials Change 3617777 by Rolando.Caloca DR - Fix static analysis warning Change 3617863 by Guillaume.Abadie PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva) #jira UE-48159 Change 3618133 by Rolando.Caloca DR - vk - Set general layout for compute shader resources - Assume transitions to writable imply end render pass Change 3618292 by Michael.Lentine Add support for Expressions, Jump Statments, and Structs. Change 3618326 by Rolando.Caloca DR - vk - Fix transition flags Change 3618408 by Daniel.Wright Lightmass skylight solver improvements * Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing. * Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable. * The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners * Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%. * Added support for Embree packet tracing although no solver algorithms use it yet Change 3618413 by Daniel.Wright Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s. Change 3618439 by Mark.Satterthwaite Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic. Change 3618468 by Rolando.Caloca DR - vk - Fix copy to non render target surface Change 3618696 by Daniel.Wright Worked around Lightmass crash callstacks not getting reported back to the editor Change 3618779 by Mark.Satterthwaite mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes. Change 3618789 by Daniel.Wright Added missing file Change 3618816 by Daniel.Wright Another missing file Change 3618855 by Rolando.Caloca DR - vk - Show user debug markers when using dump layers - Remove old defines Change 3618887 by Rolando.Caloca DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan. Change 3618999 by Mark.Satterthwaite Definitions for Metal's new CaptureManager & CaptureScope classes. Change 3619790 by Jian.Ru Add some debug info #jira UE-48710 Change 3619834 by Rolando.Caloca DR - vk - static analysis fix Change 3619952 by Rolando.Caloca DR - vk - Static analysis not smart enough... Change 3620191 by Jian.Ru Revert 3584245 to prevent focus stealing #jira UE-49044 Change 3620402 by Mark.Satterthwaite Remaining Metal definitions for mtlpp. Change 3620803 by Brian.Karis Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly. Change 3620904 by Michael.Lentine Change the order of static and const Change 3620975 by Rolando.Caloca DR - Updated Vulkan headers to SDK 1.0.57.0 Change 3621026 by Rolando.Caloca DR - Remove unused type - Force recompile with new Vulkan headers Change 3621070 by Rolando.Caloca DR - glslang - Fix pdb option Change 3621157 by Arciel.Rekman Added files to cross-build glslang on Windows. (Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...) Change 3621194 by Rolando.Caloca DR - glslang - Update to 1.0.57.0 - Fix some tab/whitespace mismatch Change 3621225 by Rolando.Caloca DR - Revert glslang (Back out changelist 3621194) Change 3621254 by Mark.Satterthwaite Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL. Change 3621261 by Mark.Satterthwaite Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt. Change 3621262 by Mark.Satterthwaite Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that. Change 3621263 by Mark.Satterthwaite Don't mandate Mobile Metal for projects that have Metal MRT enabled. Change 3621301 by Rolando.Caloca DR - Unity build fix Change 3621349 by Mark.Satterthwaite Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth. Change 3621546 by Uriel.Doyon Refactor of the texture 2D mip update logic to offload more work on the async thread. #jira UE-45332 #jira UE-45789 Change 3622210 by Rolando.Caloca DR - Do not store DDC data if static mesh failed to build #jira UE-48358 Change 3622349 by Arciel.Rekman Better build script for Linux glslang and a bugfix. (Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...) Change 3622401 by Rolando.Caloca DR - vk - Integration - Support for r.Vulkan.ProfileCmdBuffers Change 3622506 by Rolando.Caloca DR - vk - Back out changelist 3622401 Change 3622521 by Mark.Satterthwaite Support disabling V-Sync in MetalRHI on macOS 10.13+. Change 3622910 by Rolando.Caloca DR - static analysis fix Change 3622964 by Mark.Satterthwaite Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk. #jira UE-48193 Change 3622986 by Mark.Satterthwaite A couple more trivial optimisations to MetalRHI for iOS: - Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost. - On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense. - No need to rebind uniform buffers if to the same slot - it just wastes cycles. Change 3623266 by Rolando.Caloca DR - Fix GL4 rendering #jira UE-49187 Change 3623377 by Daniel.Wright Volume materials applied to static meshes operate on the object's bounding sphere Change 3623427 by Mark.Satterthwaite Fix MetalViewport compile errors on Xode 8.3. #jira UE-49231 Change 3623443 by Daniel.Wright Fixed out of bounds crash in lightmass Change 3623751 by Daniel.Wright Volume materials on static meshes now voxelize the mesh's Object space bounding box Change 3625142 by Guillaume.Abadie PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav) Change 3625983 by Jian.Ru Fix a LPV race condtion due to parallel RSM draw-call submission #jira UE-48247 Change 3626015 by Jian.Ru Small fix to 3625983 Change 3626294 by Michael.Trepka Copy of CL 3535792 and 3576637 Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native. Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac. #jira UE-48018 Change 3626532 by Marcus.Wassmer Fix divide by 0 crash when GPU timing frequency not available for whatever reason. Change 3626548 by Ryan.Brucks KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings Change 3626874 by Mark.Satterthwaite Fix Metal 2.0 compilation. Change 3626997 by Rolando.Caloca DR - vk - cis fix - Initial RGBA16 readback Change 3627016 by Mark.Satterthwaite Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library. Change 3627040 by Brian.Karis Removed old rasterized deferred reflection env path. Removed reflection compute shader. Replaced with PS. Small perf gain. Change 3627055 by Mark.Satterthwaite No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution. Change 3627057 by Mark.Satterthwaite Make SCW's directcompile not fall over with Metal when there are compilation errors. Change 3627083 by Mark.Satterthwaite Invalidate Metal shaders so QA testing picks up the most recent changes. Change 3627788 by Chris.Bunner [Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression. Change 3627834 by Rolando.Caloca DR - cis fix Change 3627847 by Rolando.Caloca DR - 4th try to fix static analysis Change 3627877 by Guillaume.Abadie Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet. #jira UE-48063 Change 3628035 by Marcus.Wassmer Duplicate 3620990 Smarter scenecapture allocation behavior. Change 3628204 by Daniel.Wright Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps Change 3628217 by Mark.Satterthwaite Fix InfiltratorForward project defaults so that iOS will package. Change 3628515 by Arne.Schober DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled. #RB Marcus.Wassmer Change 3628550 by Chris.Bunner Merge fixes. Change 3628597 by Chris.Bunner Merge fixes. Change 3628656 by Michael.Trepka One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier. Change 3628685 by Daniel.Wright CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame. Change 3629094 by Ryan.Brucks Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks #RB none Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629491 by Rolando.Caloca DR - Revert back to emulated uniform buffers on SM4/SM5 Change 3629663 by Daniel.Wright Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting Change 3629664 by Daniel.Wright Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3629770 by Mark.Satterthwaite Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this). Change 3629793 by Daniel.Wright Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory Change 3629859 by Mark.Satterthwaite macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above. Change 3630790 by Mark.Satterthwaite Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within. Change 3630990 by Rolando.Caloca DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58) Change 3631071 by Mark.Satterthwaite Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache. #jira UE-49431 Change 3631076 by Rolando.Caloca DR - vk - Redo 3617574, reduce number of render pass objects created Change 3631250 by Mark.Satterthwaite Make another Metal warning a Verbose log instead as it isn't interesting unless you are me. Change 3631911 by Chris.Bunner Back out changelist 3628035. #jira UE-49364, UE-49365 Change 3632041 by Mark.Satterthwaite Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious. #jira UE-49439 Change 3632261 by Brian.Karis SM4 fallback for reflection captures. Change 3632281 by Mark.Satterthwaite Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation. Change 3632382 by Rolando.Caloca DR - vk - Fix clang warning Change 3633338 by Chris.Bunner Static analysis/Linux compile fix. #jira UE-49502 Change 3633616 by Jian.Ru Force alpha to 0xff for functional UI screenshot tests #jira UE-48266 Change 3633818 by Daniel.Wright Better indirection texture clamping and asserts Change 3634319 by Mark.Satterthwaite Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does. #jira UE-49381 Change 3634613 by Rolando.Caloca DR - Call discard on bulk data for textures #jira UE-49533 Change 3634654 by Mark.Satterthwaite Fixes for broken iOS builds: - Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while. - Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes. #jira UE-49381 Change 3634820 by Mark.Satterthwaite Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*. #jira UE-49381 Change 3634821 by Mark.Satterthwaite Force Metal shaders only to recompile by incrementing the format version. [CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
}
// The update is invalid if the lighting cache allocation was not in a functional state.
else if (IndirectLightingCacheAllocation && (Scene->IndirectLightingCache.IsInitialized() && IndirectLightingCacheAllocation->bHasEverUpdatedSingleSample))
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3503468 by Marcus.Wassmer Fix merge conflicts Change 3537059 by Ben.Marsh Fixing case of iOS directories, pt1 Change 3537060 by Ben.Marsh Fixing case of iOS directories, pt2 Change 3608300 by Chris.Bunner Added post process material to preview compile cache set to allow post process volume preview scene improvements. Change 3608302 by Chris.Bunner Fixed decal lifetime fading. #jira UE-48400 Change 3608303 by Chris.Bunner Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time). Fixed material instances returning their local data when not overridden. #jira UE-48254 Change 3608455 by Mark.Satterthwaite Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders. #jira UE-47372 Change 3608462 by Rolando.Caloca DR - Cloth vertex buffers no longer generate dummy vertices Copy from 3608349 and 3608407 Change 3608491 by Rolando.Caloca DR - hlsl - Fix crash when type was not found Change 3608513 by Rolando.Caloca DR - Default to real uniform buffers for Vulkan SM4 & SM5 Change 3608794 by Mark.Satterthwaite Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map. #jira UE-47614 Change 3608929 by Mark.Satterthwaite Fix ambiguous expression compile error. Change 3608991 by Mark.Satterthwaite Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes. Change 3609090 by Uriel.Doyon StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer. Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes. Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer. BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data. MipBias now behaves the same way in shipping than in other builds. Fixed texture resolution logic for editor tooltips and in game stats. Change 3609659 by Richard.Wallis Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia. #jira UE-48642 Change 3610552 by Mark.Satterthwaite Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac. Change 3610662 by Rolando.Caloca DR - hlsl - Fix for rwstructured buffer Fix for floats printed as ints Change 3610830 by Michael.Lentine ByteAddressBuffer does not have a subtype. Change 3610869 by Rolando.Caloca DR - hlsl - Fix disambiguation between 1.r and 1.0.r Change 3610982 by Mark.Satterthwaite Use the correct code to dump Metal shader text for debugging at runtime. Change 3610996 by Rolando.Caloca DR - hlsl - Actual fix for 0.r Change 3611312 by Rolando.Caloca DR - Integrate: Improve performance of bokeh depth of field. * Fewer instances with more work (higher quad count) per instance. * Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used). * Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter). Change 3611345 by Mark.Satterthwaite Missed the hash-table destructor in previous change. Change 3611372 by Rolando.Caloca DR - vk - New barrier/layout api Change 3611445 by Mark.Satterthwaite Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though. Change 3611686 by Mark.Satterthwaite Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling. #jira UE-48881 Change 3611743 by Mark.Satterthwaite Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present. Change 3611746 by Mark.Satterthwaite Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour. Change 3611756 by Mark.Satterthwaite Missed a header file in last commit. Change 3611836 by Mark.Satterthwaite Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended. Change 3611843 by Mark.Satterthwaite Tidy up the handling of when to increment the frame count for the Metal capture manager. Change 3612279 by Michael.Lentine Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen. Change 3612595 by Rolando.Caloca DR - hlslcc - Rebuilt with CL 3611345 Change 3612665 by Rolando.Caloca DR - Make cubemap mip barrier consistent with HZB mip barriers Change 3612758 by Daniel.Wright FColor usage comment Change 3612980 by Rolando.Caloca DR - hlsl - Do not overflow ints Change 3613068 by Rolando.Caloca DR - vk - Initial fix for transition validation warnings Change 3613115 by Daniel.Wright Volumetric lightmap voxels are now always cubes Bricks outside of any Lightmass Importance Volume will never be refined Change 3613124 by zachary.wilson Enabling Eye-Adaptation in TM-ShaderModels. Change 3613205 by Mark.Satterthwaite Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended. Change 3613208 by Mark.Satterthwaite Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors. Change 3613354 by zachary.wilson Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow. Change 3613409 by Rolando.Caloca DR - vk - Layout as part of descriptor writes Some access flag warning fixes Change 3613518 by Daniel.Wright Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar Change 3613610 by Daniel.Wright Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size Change 3613651 by Daniel.Wright [Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert. Also added shrinking for GDistanceFieldUploadData which saved 15Mb. Change 3613696 by Mark.Satterthwaite Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes. Change 3613697 by Rolando.Caloca DR - vk - Fix missing layout Change 3613922 by Rolando.Caloca DR - vk - Some fixes for layout/transitions - Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed Change 3614009 by Mark.Satterthwaite TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI. Change 3614015 by Mark.Satterthwaite Initial extensions to mtlpp: - Fixed over retention of alloc-init'd objects. - Added 10_13 & 11_0 availablity macros. - Started, but have not yet finished adding new Metal API function wrappers. Change 3614909 by Rolando.Caloca DR - Fix static analysis Change 3614916 by Michael.Lentine Add function to convert FP32 to FP16 Change 3614957 by Mark.Satterthwaite mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet. Change 3614995 by Mark.Satterthwaite Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo. Change 3615035 by Rolando.Caloca DR - Generate mips using shader for HZB Change 3615561 by Rolando.Caloca DR - Fix deprecation warning Change 3615787 by Mark.Satterthwaite Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that. #jira UE-48919 Change 3616317 by Mark.Satterthwaite Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory. Change 3616357 by Mark.Satterthwaite And fix some compile errors... Change 3616473 by Rolando.Caloca DR - Render pass api minor changes Change 3616518 by Mark.Satterthwaite Fix a merge snafu where dead code was retained where it shouldn't be. #jira UE-48472 Change 3616706 by Rolando.Caloca DR - Vulkan fixes (integration from Vulkan working branch) - Fix for editor outline - Fix for profilegpu Change 3616770 by Rolando.Caloca DR - vk - Mark GIsGPUCrashed on device lost Change 3616993 by Daniel.Wright IndirectLightingCacheQuality respects VolumetricLightingMethod Change 3616996 by Daniel.Wright Volumetric Lightmap show flag is respected by Volumetric Fog Change 3616999 by Daniel.Wright Fixed ObjectRadius in Volume domain materials Change 3617777 by Rolando.Caloca DR - Fix static analysis warning Change 3617863 by Guillaume.Abadie PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva) #jira UE-48159 Change 3618133 by Rolando.Caloca DR - vk - Set general layout for compute shader resources - Assume transitions to writable imply end render pass Change 3618292 by Michael.Lentine Add support for Expressions, Jump Statments, and Structs. Change 3618326 by Rolando.Caloca DR - vk - Fix transition flags Change 3618408 by Daniel.Wright Lightmass skylight solver improvements * Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing. * Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable. * The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners * Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%. * Added support for Embree packet tracing although no solver algorithms use it yet Change 3618413 by Daniel.Wright Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s. Change 3618439 by Mark.Satterthwaite Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic. Change 3618468 by Rolando.Caloca DR - vk - Fix copy to non render target surface Change 3618696 by Daniel.Wright Worked around Lightmass crash callstacks not getting reported back to the editor Change 3618779 by Mark.Satterthwaite mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes. Change 3618789 by Daniel.Wright Added missing file Change 3618816 by Daniel.Wright Another missing file Change 3618855 by Rolando.Caloca DR - vk - Show user debug markers when using dump layers - Remove old defines Change 3618887 by Rolando.Caloca DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan. Change 3618999 by Mark.Satterthwaite Definitions for Metal's new CaptureManager & CaptureScope classes. Change 3619790 by Jian.Ru Add some debug info #jira UE-48710 Change 3619834 by Rolando.Caloca DR - vk - static analysis fix Change 3619952 by Rolando.Caloca DR - vk - Static analysis not smart enough... Change 3620191 by Jian.Ru Revert 3584245 to prevent focus stealing #jira UE-49044 Change 3620402 by Mark.Satterthwaite Remaining Metal definitions for mtlpp. Change 3620803 by Brian.Karis Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly. Change 3620904 by Michael.Lentine Change the order of static and const Change 3620975 by Rolando.Caloca DR - Updated Vulkan headers to SDK 1.0.57.0 Change 3621026 by Rolando.Caloca DR - Remove unused type - Force recompile with new Vulkan headers Change 3621070 by Rolando.Caloca DR - glslang - Fix pdb option Change 3621157 by Arciel.Rekman Added files to cross-build glslang on Windows. (Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...) Change 3621194 by Rolando.Caloca DR - glslang - Update to 1.0.57.0 - Fix some tab/whitespace mismatch Change 3621225 by Rolando.Caloca DR - Revert glslang (Back out changelist 3621194) Change 3621254 by Mark.Satterthwaite Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL. Change 3621261 by Mark.Satterthwaite Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt. Change 3621262 by Mark.Satterthwaite Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that. Change 3621263 by Mark.Satterthwaite Don't mandate Mobile Metal for projects that have Metal MRT enabled. Change 3621301 by Rolando.Caloca DR - Unity build fix Change 3621349 by Mark.Satterthwaite Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth. Change 3621546 by Uriel.Doyon Refactor of the texture 2D mip update logic to offload more work on the async thread. #jira UE-45332 #jira UE-45789 Change 3622210 by Rolando.Caloca DR - Do not store DDC data if static mesh failed to build #jira UE-48358 Change 3622349 by Arciel.Rekman Better build script for Linux glslang and a bugfix. (Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...) Change 3622401 by Rolando.Caloca DR - vk - Integration - Support for r.Vulkan.ProfileCmdBuffers Change 3622506 by Rolando.Caloca DR - vk - Back out changelist 3622401 Change 3622521 by Mark.Satterthwaite Support disabling V-Sync in MetalRHI on macOS 10.13+. Change 3622910 by Rolando.Caloca DR - static analysis fix Change 3622964 by Mark.Satterthwaite Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk. #jira UE-48193 Change 3622986 by Mark.Satterthwaite A couple more trivial optimisations to MetalRHI for iOS: - Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost. - On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense. - No need to rebind uniform buffers if to the same slot - it just wastes cycles. Change 3623266 by Rolando.Caloca DR - Fix GL4 rendering #jira UE-49187 Change 3623377 by Daniel.Wright Volume materials applied to static meshes operate on the object's bounding sphere Change 3623427 by Mark.Satterthwaite Fix MetalViewport compile errors on Xode 8.3. #jira UE-49231 Change 3623443 by Daniel.Wright Fixed out of bounds crash in lightmass Change 3623751 by Daniel.Wright Volume materials on static meshes now voxelize the mesh's Object space bounding box Change 3625142 by Guillaume.Abadie PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav) Change 3625983 by Jian.Ru Fix a LPV race condtion due to parallel RSM draw-call submission #jira UE-48247 Change 3626015 by Jian.Ru Small fix to 3625983 Change 3626294 by Michael.Trepka Copy of CL 3535792 and 3576637 Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native. Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac. #jira UE-48018 Change 3626532 by Marcus.Wassmer Fix divide by 0 crash when GPU timing frequency not available for whatever reason. Change 3626548 by Ryan.Brucks KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings Change 3626874 by Mark.Satterthwaite Fix Metal 2.0 compilation. Change 3626997 by Rolando.Caloca DR - vk - cis fix - Initial RGBA16 readback Change 3627016 by Mark.Satterthwaite Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library. Change 3627040 by Brian.Karis Removed old rasterized deferred reflection env path. Removed reflection compute shader. Replaced with PS. Small perf gain. Change 3627055 by Mark.Satterthwaite No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution. Change 3627057 by Mark.Satterthwaite Make SCW's directcompile not fall over with Metal when there are compilation errors. Change 3627083 by Mark.Satterthwaite Invalidate Metal shaders so QA testing picks up the most recent changes. Change 3627788 by Chris.Bunner [Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression. Change 3627834 by Rolando.Caloca DR - cis fix Change 3627847 by Rolando.Caloca DR - 4th try to fix static analysis Change 3627877 by Guillaume.Abadie Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet. #jira UE-48063 Change 3628035 by Marcus.Wassmer Duplicate 3620990 Smarter scenecapture allocation behavior. Change 3628204 by Daniel.Wright Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps Change 3628217 by Mark.Satterthwaite Fix InfiltratorForward project defaults so that iOS will package. Change 3628515 by Arne.Schober DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled. #RB Marcus.Wassmer Change 3628550 by Chris.Bunner Merge fixes. Change 3628597 by Chris.Bunner Merge fixes. Change 3628656 by Michael.Trepka One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier. Change 3628685 by Daniel.Wright CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame. Change 3629094 by Ryan.Brucks Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks #RB none Change 3629223 by Rolando.Caloca DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847 Change 3629491 by Rolando.Caloca DR - Revert back to emulated uniform buffers on SM4/SM5 Change 3629663 by Daniel.Wright Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting Change 3629664 by Daniel.Wright Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role Change 3629708 by Rolando.Caloca DR - vk - Redo some changes from DevMobile 3601439 3604186 3606672 3617383 3617474 3617483 Change 3629770 by Mark.Satterthwaite Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this). Change 3629793 by Daniel.Wright Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory Change 3629859 by Mark.Satterthwaite macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above. Change 3630790 by Mark.Satterthwaite Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within. Change 3630990 by Rolando.Caloca DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58) Change 3631071 by Mark.Satterthwaite Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache. #jira UE-49431 Change 3631076 by Rolando.Caloca DR - vk - Redo 3617574, reduce number of render pass objects created Change 3631250 by Mark.Satterthwaite Make another Metal warning a Verbose log instead as it isn't interesting unless you are me. Change 3631911 by Chris.Bunner Back out changelist 3628035. #jira UE-49364, UE-49365 Change 3632041 by Mark.Satterthwaite Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious. #jira UE-49439 Change 3632261 by Brian.Karis SM4 fallback for reflection captures. Change 3632281 by Mark.Satterthwaite Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation. Change 3632382 by Rolando.Caloca DR - vk - Fix clang warning Change 3633338 by Chris.Bunner Static analysis/Linux compile fix. #jira UE-49502 Change 3633616 by Jian.Ru Force alpha to 0xff for functional UI screenshot tests #jira UE-48266 Change 3633818 by Daniel.Wright Better indirection texture clamping and asserts Change 3634319 by Mark.Satterthwaite Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does. #jira UE-49381 Change 3634613 by Rolando.Caloca DR - Call discard on bulk data for textures #jira UE-49533 Change 3634654 by Mark.Satterthwaite Fixes for broken iOS builds: - Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while. - Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes. #jira UE-49381 Change 3634820 by Mark.Satterthwaite Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*. #jira UE-49381 Change 3634821 by Mark.Satterthwaite Force Metal shaders only to recompile by incrementing the format version. [CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
{
UpdateIndirectLightingCacheBuffer(
&Scene->IndirectLightingCache,
IndirectLightingCacheAllocation,
FVector(0, 0, 0),
0,
nullptr);
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
}
else
{
// Fallback to the global empty buffer parameters
UpdateIndirectLightingCacheBuffer(nullptr, nullptr, FVector(0.0f, 0.0f, 0.0f), 0, nullptr);
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
}
bIndirectLightingCacheBufferDirty = false;
Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) #lockdown ben.marsh ========================== MAJOR FEATURES + CHANGES ========================== Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Capsule shadows * Capsule shadows excel at extremely soft area shadows caused by a large light source angle, but don't support accurate self-shadowing * Artists can setup a physics asset containing Spheres and Sphyls (capsules) for a skeletal mesh that will be used to represent the mesh's occlusion * These shapes can then be used for direct shadowing (bCastCapsuleDirectShadow) on a skeletal mesh component, whose softness depends on the light source angle / radius * The shapes can also be used to create an indirect shadow (bCastCapsuleIndirectShadow), whose direction and softness is derived from the precomputed sky occlusion (stationary sky light) or primary indirect lighting (static sky light) * Capsule shadowing is computed at half res and uses tiled deferred culling for efficiency - only implemented for PC SM5 + PS4 so far * Shadowing of movable skylights is not yet supported Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data Basepass drawlist are now merged within a single drawlist. Lighting policy parameters are now accessed through a uniform buffer. Changed the global resource initialization so that InitRHI now comes before InitDynamicRHI #codereview nick.penwarden Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams Remove unused RHI methods: RHIIsDrawingViewport RHIGpuTimeBegin RHIGpuTimeEnd Made default/empty versions of these calls and removed stubs from RHIs that don't use them: RHISuspendRendering RHIResumeRendering RHIIsRenderingSuspended Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lighting channels - each component and light can choose from 3 channels * Primitives output their channel mask to stencil during the base pass, the masks are copied to a texture after the base pass, deferred lighting passes compare the primitive mask against the light's mask * Dynamic shadow casting also respects the channels * Only works on opaque materials, direct lighting, dynamic lighting * Not implemented for tiled deferred atm * This will replace CastsShadowsFromCinematicObjectsOnly in the future #rb Martin.Mittring Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New First pass at separate Async Compute Context #codereview Lee.Clark,Daniel.Wright #rb Gil.Gribb Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering Removed a lot of complexity of the skeletal mesh motionblur code (better for multithreading, simpler, faster) but going from one large buffer to per mesh buffers. Upload of bones only needed once. * GPUSkinCache didn't even work before (in this branch) * tested BasePass velocity * tested split screen * tested editor pause * matinee camera cut (no need, invalidates velocity) * tested CPU Skin? (never has motionblur) * tested CreateSceneProxy (recreation is prevented in CreteSceneProxy unless bone count changes) * test ES2 -featureleveles2 #rb: Rolando.Caloca Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data Embree integration into Lightmass Can be enabled through Lightmass.ini [DevOptions.StaticLighting]bUseEmbree. Also [DevOptions.StaticLighting]bVerifyEmbree will compare ray casting results. Only usable on Win64 with this submit. #review daniel.wright Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering added SSAO CS version, can be enabled with r.AmbientOcclusion.Compute 1 Not optimized yet #rb:Olaf.Piesche Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Lightmass solver quality improvements * IndirectLightingScale is no longer applied to photons, avoids splotchy artifacts when using small scales * New 'Lightmass Portal' actor / component which tells the solver where to look for significant lighting. When lighting with a Static Skylight only, in a mostly indoor environment, setting up these portals is the only way to get high quality. * Skylight bounce lighting is now much more accurate and leverages adaptive sampling * Fixed a bug that effectively disabled adaptive sampling on high IndirectLightingQualities * Shadow penumbras are also improved by IndirectLightingQuality * Texel debugging is now a cvar 'r.TexelDebugging', instead of requiring a full recompile Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data Quad Complexity ViewMode (PCD3D_SM5 only). Shader Complexity with Quad Overhead ViewMode (PCD3D_SM5 only). Require ShaderComplexity ViewMode & Show.Visualize.QuadOverhead #review brian.karis Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering improved SSAO quality (less high frequency noise) to avoid TemporalAA smearing Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S DevRendering - Enable removing unused outputs on PS4 shader pipelines, disable by default removing unused on D3D (toggable with r.D3DRemoveUnusedInterpolators) #codereview Marcus.Wassmer Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev Submitting pull request from user Pierdek. Early out of particle collision module update if there are no active particles. #github #1614 Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Fixed the experimental r.RHICmdBalanceParallelLists 2 mode and renabled it for orion. Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Added a path so that texture streaming can avoid flushing the RHI thread. Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream Added new PrimitiveComponent setting bSingleSampleShadowFromStationaryLights * When enabled, shadowing of a movable component from a stationary directional light will come from the Volume Lighting Samples precomputed by Lightmass * This provides essentially free on/off shadow receiving on dynamic objects, with a fade over time between states * Lighting has to be rebuilt once for this to work #rb Rolando.Caloca Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering UE4 - Dynamically set stream source to avoid creating a separate drawing policy for each static mesh with vertex colors. #rb Daniel.Wright Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data Enabled Embree by default #review daniel.wright ========================== ALL CHANGELISTS ========================== Change 2720123 on 2015/10/07 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - 'integrate' Tem' Change 2721682 on 2015/10/08 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Eliminated a fatal error ' Change 2721815 on 2015/10/08 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - Fix crash exiti' Change 2724755 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix Tier' Change 2724781 on 2015/10/12 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - D3D12 Fix offse' Change 2728317 on 2015/10/14 by Rolando.Caloca@Rolando.Caloca_T4688_5331 'Dev-Rendering - hlslcc - Fix fo' Change 2729170 on 2015/10/14 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Force Lightmass volume sample g' Change 2732131 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed resource transition issue' Change 2732218 on 2015/10/16 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code cleanup ' Change 2733533 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Clear stencil to 0 after decals' Change 2733540 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Capsule shadows * Capsule shado' Change 2733546 on 2015/10/19 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Light shaft targets are only al' Change 2733602 on 2015/10/19 by Uriel.Doyon@uriel.doyon_office_data 'Decals not writing to Normal ca' Change 2733627 on 2015/10/19 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix for transition ensure. ' Change 2735292 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for dark lightmap precision' Change 2735298 on 2015/10/20 by Brian.Karis@Brian.Karis_T3247_Rendering 'Fix for speedtree LOD transitio' Change 2735460 on 2015/10/20 by Uriel.Doyon@uriel.doyon_office_data 'Basepass drawlist are now merge' Change 2737214 on 2015/10/21 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Expanded a warning when importi' Change 2738581 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Updated comment on stencil usag' Change 2738583 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Changed bound but not set scene' Change 2738584 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed skylight occlusion maps b' Change 2738589 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmap streaming fixes * Chan' Change 2738593 on 2015/10/22 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fix from licensee for race cond' Change 2738982 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Activating CanTickOnAnyThread f' Change 2739032 on 2015/10/22 by Olaf.Piesche@Olaf.Piesche_roaming 'Fixing compiler barf with Clang' Change 2741517 on 2015/10/26 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRindering - D3D12 - Integrat' Change 2743790 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed texel debugging on static' Change 2743958 on 2015/10/27 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comments ' Change 2744153 on 2015/10/27 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Unity compile fix ' Change 2744741 on 2015/10/28 by Nick.Penwarden@nickp_streams 'Remove unused RHI methods: RHI' Change 2745714 on 2015/10/28 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lighting channels - each compon' Change 2746242 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix crashes on init by swapping' Change 2746243 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'First pass at separate Async Co' Change 2746296 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Buffer label frees so we don't ' Change 2746297 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'updated comment ' Change 2746343 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746347 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2746811 on 2015/10/29 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Draw event for compute commandl' Change 2746989 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Removed a lot of complexity of ' Change 2747127 on 2015/10/29 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Improved game console printout ' Change 2747702 on 2015/10/30 by Chris.Bunner@Chris.Bunner_Dev_Stream 'Bumped Lightmass StaticMesh imp' Change 2747954 on 2015/10/30 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix SubmitDone not called TRC e' Change 2747979 on 2015/10/30 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'polish console autocomplete tex' Change 2750719 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Add Embree 2.7.0 for Win64 and ' Change 2750734 on 2015/11/02 by Uriel.Doyon@uriel.doyon_office_data 'Embree integration into Lightma' Change 2750872 on 2015/11/02 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2751934 on 2015/11/03 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Disambiguate template function ' Change 2752190 on 2015/11/03 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed assert relating to ' Change 2752333 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Shader pipeline ' Change 2752655 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - Fix Materials pa' Change 2752710 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added comment ' Change 2752711 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added better comment/help text ' Change 2752730 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'added SSAO CS version, can be e' Change 2752766 on 2015/11/03 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Lightmass solver quality improv' Change 2752869 on 2015/11/03 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Add shader pipel' Change 2752882 on 2015/11/03 by Rolando.Caloca@Rolando.Caloca_T3903_S 'DevRendering - hlslcc - Metal -' Change 2752899 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'small SSAO GPU optimization mov' Change 2752934 on 2015/11/03 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor GPU optimization for SSAO' Change 2753109 on 2015/11/03 by Uriel.Doyon@uriel.doyon_office_data 'Fixed final build ' Change 2753669 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed SM4 compiling ' Change 2754002 on 2015/11/04 by Nick.Penwarden@nickp_streams 'test change ' Change 2754018 on 2015/11/04 by Uriel.Doyon@uriel.doyon_office_data 'Quad Complexity ViewMode (PCD3D' Change 2754115 on 2015/11/04 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed end of frame update' Change 2754297 on 2015/11/04 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'PS4 compile fixes #codereview U' Change 2754405 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor SSAO ALU optimizations fi' Change 2754512 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'adjusted clamp for cvar ' Change 2754760 on 2015/11/04 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'improved SSAO quality (less hig' Change 2755572 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - PS4 warning fix ' Change 2755667 on 2015/11/05 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed UE-22742, leak in t' Change 2755722 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Remove unused co' Change 2755814 on 2015/11/05 by Nick.Penwarden@nickp_streams 'Merging //UE4/Dev-Main to Dev-R' Change 2755935 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Rebuild static m' Change 2756003 on 2015/11/05 by Uriel.Doyon@uriel.doyon_office_data 'Reduce the number of precompute' Change 2756145 on 2015/11/05 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Temp fix for GPU crash #rb none' Change 2756308 on 2015/11/05 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Enable removing ' Change 2756435 on 2015/11/05 by Olaf.Piesche@Olaf.Piesche_roaming 'Disabling a check, to fix OR-85' Change 2757063 on 2015/11/06 by Simon.Tovey@Simon.Tovey_Dev 'Submitting pull request from us' Change 2757340 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed the experimental r.' Change 2757341 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Changed the RHI thread di' Change 2757342 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed lazy uniform buffer' Change 2757343 on 2015/11/06 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Added a path so that text' Change 2757500 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Add FrameSync to externalprofil' Change 2757650 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'GBuffer should only be consider' Change 2757665 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'UE-22816 Instruction count is n' Change 2757834 on 2015/11/06 by Michael.Trepka@Michael.Trepka_a4202_Dev-Rendering 'Embree integration into Lightma' Change 2757930 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix UT ensure #rb Peter.Knepley' Change 2757931 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix Ocean ensure #rb josh.ander' Change 2757946 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Removed invalid Lightmass asser' Change 2757985 on 2015/11/06 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Added new PrimitiveComponent se' Change 2758049 on 2015/11/06 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'OR-8600 CRASH: AllocationLeveli' Change 2758059 on 2015/11/06 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'r.DumpTransitionsForResource #r' Change 2758082 on 2015/11/06 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix resource tra' Change 2758879 on 2015/11/09 by Rolando.Caloca@rolando.caloca_T3903_S 'DevRendering - Fix PSSL names f' Change 2758911 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Fixed accidental force di' Change 2758968 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled single frame buffer us' Change 2758991 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix togglerhithread crash #rb G' Change 2759058 on 2015/11/09 by Gil.Gribb@Gil.Gribb_Z2439_Dev-Rendering 'UE4 - Dynamically set stream so' Change 2759063 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'fixed UE-22368 CLONE - GitHub 1' Change 2759073 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'minor code quality improvements' Change 2759501 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix particle ensure. ' Change 2759522 on 2015/11/09 by Marcus.Wassmer@Marcus.Wassmer_DevRendering_New 'Fix decals using CustomStencil.' Change 2759610 on 2015/11/09 by Daniel.Wright@Daniel.Wright_G5038_RenderingStream 'Fixed line light source shadows' Change 2759634 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Refined GBufferA resolving when' Change 2759657 on 2015/11/09 by Martin.Mittring@Martin.Mittring_Z3941_Dev_Rendering 'Fixed ResourceTransition with r' Change 2759693 on 2015/11/09 by Rolando.Caloca@Rolando.Caloca_T4688_S 'DevRendering - Fixed global sha' Change 2759771 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Fixed editor hit proxy renderin' Change 2760188 on 2015/11/09 by Uriel.Doyon@uriel.doyon_office_data 'Disabled some more deferred dec' Change 2760523 on 2015/11/10 by Uriel.Doyon@uriel.doyon_office_data 'Enabled Embree by default #revi' [CL 2761339 by Nick Penwarden in Main branch]
2015-11-10 17:11:09 -05:00
}
}
Copying //UE4/Release-Staging-4.19 to //UE4/Dev-Main (Source: //UE4/Release-4.19 @ 3873914) ============================ MAJOR FEATURES & CHANGES ============================ Change 3873906 by Dan.Oconnor Revised fix for preventing delegate functions from appearing in context menu when using the compilation manager - needed to run after CallDelegateHandler changed statement type #jira UE-51726 Change 3873614 by Dan.Oconnor Prevent delegate functions from appearing in context menu when using the compilation manager and prevent crash if such a function is somehow compiled #jira UE-51726 Change 3873428 by Ben.Zeigler #jira UE-54753 Fix class pin on SpawnActorFromClass to correctly support browse. It was inherting from the wrong pin widget Copy of 3873408 Change 3873083 by Ethan.Geller [4.19]#jira UE-54865 fix seconds -> milliseconds conversion issue. #rb aaron.mcleran #lockdown cristina.riveron Change 3872714 by Dan.Oconnor Further revise fix for UE-53840, mistakenly reverted to old behavior when compiling synchronously #jira UE-53840 Change 3872648 by Ben.Zeigler #jira UE-54845 Fix crash in NextDebugTarget when there are no valid debug targets Copy of CL #3872636 Change 3872500 by Arne.Schober Back out changelist 3870283 #jira UE-54838 Change 3872412 by Mark.Satterthwaite Remove now unnecessary r.Metal.ManualVertexFetch from the device profiles. #jira UE-54853 Change 3872313 by Martin.Wilson Add UI to Live Link Client to warn live link users about background performance throttling #jira none Change 3872272 by Martin.Wilson Fix crash when clearing a skeletal mesh on a skeletal mesh component with an active Post Process Anim Instance #jira none Change 3872238 by Mark.Satterthwaite Duplicate CL #3871025 Make Manual Vertex Fetch a property of the shader platform for Metal - only the desktop platforms (METAL SM5/SM5_NoTess/MRT) will use manual vertex fetch. The mobile platforms use vertex descriptors. Prevents problems with cooked versions of games not working properly on Metal due to a mismatch between the runtime's Manual-Vertex-Fetch state versus the state used by the cooker when compiling shaders. #jira UE-54843 Change 3872087 by Yasiman.Ahsani Adding Python, libdisasm, musl, and LSS licenses. #JIRA n/a - adding licenses for new TPS Change 3872037 by Ben.Marsh BuildGraph: Add a task for compiling MSBuild projects. #jira Change 3871934 by Lina.Halper #jira: UE-54703 Change 3871595 by Michael.Trepka Fixed a problem with Mac editor not exiting with error code returned from GuardedMain function #jira UE-54830 Change 3870829 by Joe.Barnes Fix unintentional change to PhysX libs used in Debug builds. #jira ue-54817 Change 3870820 by Nick.Atamas Copying //Tasks/UE4/Dev-VR-4.19a@3870772 to Release-4.19 (//UE4/Release-4.19) #jira UE-54816 Change 3870755 by Chance.Ivey Min Android version set - should fix camera permissions issue found in #JIRA UE-54024 #rb none #fyi nick.atamas Change 3870547 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 3870546 by Krzysztof.Narkowicz Fixed tesselation shader tex/uniform initialization in OpenGL3/4 path #jira UE-54471 Change 3870284 by Ben.Zeigler #jira UE-54583 Fix issue where loading multiple already loaded assets via Async Load Asset node could return the wrong asset on the loaded pin. The assign variable node was happening at a slightly wrong time Copy of CL #3870279 Change 3870283 by Arne.Schober 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 #jira none Change 3870098 by Ben.Marsh Fix OptimizeCode = CodeOptimization.Always causing compile errors in Linux debug builds. bUseInlining was not set correctly on the global compile environment used to build shared PCHs. Also fixed other settings not being propogated down from the target correctly. #jira UE-53855 Change 3870013 by Ben.Marsh UBT: Add an error if a user attempts to clean a target through hot-reload, rather than just failing to delete DLLs because they are locked. #jira UE-54179 Change 3870010 by Ben.Marsh UBT: Add an option to format output messages in a form that can be parsed by MSBuild. Prevents errors showing as "EXEC: Error:", and displays them correctly in the error list window. #jira Change 3869814 by Ben.Marsh UBT: Unify command line arguments to use -Name=Value syntax. -Module <Name>, -ModuleWithSuffix <Name> <Suffix>, -Plugin <Path> and -Receipt <Path> are no longer supported. Also remove the RemoteRoot option, which was not used anywhere. #jira Change 3869786 by Martin.Wilson Fix Live Link Remove Source button not working #Jira UE-54652 Change 3869660 by Martin.Wilson Fix missing message bus sources in the live link client (not repolling for new sources) #Jira UE-54712 Change 3869659 by Guillaume.Abadie Fixes SimpleComposure's BP_AdvancedCompositing keep allocating memory every frame. Credits for fixing the issue to Ron Radeztsk. #jira UE-54780 Change 3869401 by Lauren.Ridge Adding to the conditional in FindAllAncestorNamedSlotHostWidgetsForContent #jira UE-51470 Change 3869384 by Brandon.Schaefer Open the project in the explorer when NullSourceCodeAccess is done creating the project #jira UE-54630 Change 3869308 by Ben.Marsh PR #4452: Fixed FindFilesRecursively in IPlatformFilePak (Contributed by user37337) #jira UE-54568 Change 3869265 by Martin.Wilson Fix crash and subsequently found issues with unloading/reloading Maya Live Link plugin -Crash on reload due to core code getting reinitialize, made this a one time only thing (as Maya never gets rid of the module from memory) -Added manual ticking of FTicker, allows message bus objects to be cleaned up properly (cannot do this as part of normal flow as it is in engine code which we dont have) -rebuild binaries for Engine/Extras #Jira UE-54643 Change 3869206 by Benn.Gallagher Fixed crash updating clothing paint mode after tab spawners have been destroyed by the hosting application. #jira UE-54116 Change 3869064 by Benn.Gallagher Resolved skeletal mesh data changes and clothing section disable changes after collision. Re-added ability to disable sections at the mesh level and removed the ability to strip editor sections as these are required for a number of other features to correctly function. #jira UE-52557 Change 3869062 by Guillaume.Abadie Fixes "dynamic resolution is not supported on this platform" warning message being always visible. #jira UE-54655 Change 3868202 by Lauren.Ridge Fix for assert on expanding vector param in layered material #jira UE-54737 Change 3868161 by zak.parrish Replacing FaceARDebugUI with a blank UI until a new one can be created, due to a crash bug. #rb none #JIRA UE-54639 Change 3867750 by Ethan.Geller [4.19] #jira UE-54725 Fix for Envelope attack and release values not being properly set on Synth Components #rb aaron.mcleran #lockdown cristina.riveron Change 3867657 by Lauren.Ridge Adding if with editor wrapper to new function #jira cis fix Change 3867646 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867340 by Lauren.Ridge Fixes to Material Layers from 4.19 preview feedback -Need to pass through base attributes better/have better default nodes in layer (optional Example Layers and Blends checkbox now enables this in Experimental Settings) -Parent in function should be editable -Enforce only two layers in a blend -Mat layer should warn if it has incorrect output in the layer itself -Enforce not being able to delete outputs -Warn about creating a MAL node inside a function #jira UETOOL-1312 Change 3867317 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867000 by Lauren.Ridge Fix for folder favorites possibly becoming very large #jira UE-54704 Change 3866892 by Martin.Wilson Fix crash if clicking ok on message bus add source without having a source selected #jira UE-54572 Change 3866391 by Matt.Kuhlenschmidt Fix static analysis #jira UE-53379 Change 3866241 by Ryan.Vance #jira UE-54681 Fixed missing Vulkan texture GetNativeResource implementation that was lost in a bad merge. Change 3866071 by Nick.Shin UDN 412414 update HTMl5 readme file #jira none Change 3866005 by Max.Preussner Messaging: Preventing dangling references when removing message subscribers #jira UE-54680 Change 3865988 by Simon.Tourangeau Fix static analysis warnings #jira none Change 3865895 by zachary.wilson Renaming QA-PhysicalLightUnits to TM-PhysicalLightUnits in QAGame. #JIRA UE-29618 Change 3865469 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3865461 by Chris.Babcock Add a wait for audio thread to pause audio on going to background #jira UE-54301 #ue4 #android Change 3865350 by Matt.Kuhlenschmidt Fix issue where cascade emitter UI would disapper #jira UE-53379 Change 3865336 by Arne.Schober REL - Fix UE-52356 Bone Weight #jira UE-52356 Change 3865257 by Ben.Marsh Fix editor failing to load content-only projects when compiled in DebugGame. #jira UE-54661 Change 3865238 by Simon.Tovey Pulling Olaf's fix from 3832595 over to release #tests EngineTests boots in vulkan #JIRA UE-54394 Change 3865191 by Sorin.Gradinaru UE-54317 DXT apps fail on first launch when 'For Distribution' enabled, Unsupported Texture Format #jira UE-54317 #Android #4.19 From //Dev-Mobile/3863322 Change 3865190 by Sorin.Gradinaru UE-54175 Selecting For Distribution no longer sets configuration to Shipping #UE4 #4.19 #jira UE-54175 From //Dev-Mobile/3863371 "For Distribution" enable-> reset "Build COnfiguration" to Shipping and force serialization to DefaultGame.ini (see UE-52845) Change 3865056 by Jamie.Dale Fixed culture being incorrect when added via the Localization Dashboard #jira none Change 3864826 by Max.Preussner WmfMedia: Added missing scope lock #jira UE-54365 Change 3864055 by Aaron.McLeran #jira UE-54213 Crash fix for GC'd plugin settings objects. Adding to AddReferencedObjects. Change 3863775 by Andrew.Porter MediaFrameworkTest: Removing Platform Media Source TVOS test content #jira UE-29618 Change 3863714 by Dan.Oconnor Make array, set, and map nodes no longer switch object type when a pin is disconnected. Also, you can no longer attach unrelated map types to the MakeMap node if only the value pin has been inferred #jira UE-54634 Change 3863696 by Max.Chen Sequencer: Fix crash open a new sequence while another is still active. #jira UE-54620 #jira UE-54624 Change 3863638 by Dan.Oconnor Make sure all blueprints that are skeleton compiled get a BroadcastChanged notification, also run BroadcastChanged after reinstancing, matching pre compilation manager behavior #jira UE-54193 Change 3863494 by Jamie.Dale Ensure Py_SetPythonHome is set correctly before the embedded Python interpreter is initialized #jira UE-54345 Change 3863433 by Max.Preussner MediaPlayerEditor: Removed tvOS from list of available platforms in Platform Media Source assets tvOS currently reports itself as iOS, so it cannot have its own setting. #jira UE-54559 Change 3863406 by Lauren.Ridge Fix for a crash when filtering a dropdown with no set value #jira UE-54631 Change 3863238 by Michael.Kirzinger #jira UE-52730: Fix mac voip crash Change 3862586 by Marc.Audy Clean up rendering thread heartbeat checks that got mangled in various integrations #jira Change 3862247 by Guillaume.Abadie Fixes editor lines that were using a simple element blending mode that was generating an incorrect alpha channel. #jira UE-53830 Change 3862120 by Guillaume.Abadie Fixes USceneCaptureComponent::HiddenActors always staying gray out in world editor. #jira UE-51458 Change 3861363 by Jamie.Dale Static analysis fixes #jira none Change 3861150 by Matt.Kuhlenschmidt Fix static mesh editor displaying 0 for all stats on LODs > 0 #jira UE-53776 Change 3860990 by Dan.Oconnor Clear subobjects not recreated on load, e.g. because we're running with -game and the subobject was created using CreateEditorOnlySubobject #jira UE-54551 Change 3860972 by Nick.Shin HTML5 - detect "SyntaxError: " and do a forced reload - an actual syntax error would be caught during compile time - this is usually error condition is usually seen when browser is running "old/partial" cached data and it's fairly safe to just reload the page #jira UE-54017 QAGame fails to launch properly on HTML5 Firefox 64 bit Change 3860951 by Arne.Schober Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer. #jira UE-54587 Change 3860950 by tim.gautier QAGame: Updating ML_Stone to include Texture Coordinate and Panner functions #jira UE-29618 Change 3860833 by Michael.Dupuis #jira UE-54181: Repopulate the foliage list when existing simulate mode Let the GC know that internal struct hold UObject ptr Change 3860762 by Jamie.Dale Ensure we invoke the correct version of Python from UBT #jira UE-54345 Change 3860676 by Simon.Tourangeau Remove DirectoryWatcher warning in output log #jira UEENT-846 Change 3860598 by Lauren.Ridge Fix for crash on opening new material instance #jira UE-54589 Change 3860338 by Michael.Lentine Integrate changes for fixing MorphTargets. #jira 54398 Change 3860215 by Ben.Marsh UAT: Fix exception consturcting target rules assembly inside UAT, now that there's an abstract TargetRules class. #jira UE-54578 Change 3860186 by Matt.Kuhlenschmidt Fix crash top 10 with the font editor shutting down and then a dpi event occuring #jira UE-54543 Change 3859854 by Graeme.Thornton PR #4124: VSCode: Changed VisualStudioCodeSourceCodeAccessor to work with non-default VSCode install paths on Linux (Contributed by christopherreed) #jira UE-51289 Change 3859848 by Graeme.Thornton Fix crypto.cs reading the wrong ini setting names for uasset encryption settings #jira UE-54566 Change 3859684 by Ben.Marsh PR #4436: Fix compile error when building BlankProgram because incorrect directory path (Contributed by windkey) #jira UE-54392 Change 3859657 by Ben.Marsh Fix FTransform being passed by value, causing alignment error when compiling for Win32. #jira Change 3859312 by nick.bullard Updating AEOverviewMan to remove reference to sub-level AEOverviewSWP which was deleted in 3859278 Still need to update menu to remove selection #jira UE-50784 Change 3859278 by Nick.Bullard Deleteing AEOverviewSWP.umap per request of Developer. Also updated TM-AnimPhys which refereneced this map as well. "This test map is a custom C++ implementation of a "procedural sound wave". This code is super janky and not worth fixing up. I'm sure there's a legit thread safety problem in there but the code is in QAGame only. We've since implemented "synth components" which do what this test does in a much safer/better way and maintaining/testing this old thing is *not* worth the time." #jira UE-50784 Change 3859124 by Dan.Oconnor Fix long standing crash when duplicating a blueprint that is missing its parent class. Entries in CrashReport go back to 4.16 #jira UE-54468 Change 3859086 by Ryan.Vance #jira UE-54470 We need to set the viewport in both cases. Change 3859006 by Dan.Oconnor Revise fix for archetype lookup when reinstancing. During compilation we do not want to force use of the up to date class #jira UE-54541 Change 3858990 by mason.seay Cleaned up blueprints to remove compile errors #jira UE-29618 Change 3858945 by Aaron.McLeran #jira UE-54265 PR #4428: Fixing Envelope Bug in AudioMixer (Contributed by Chrispykins) Change 3858719 by Aaron.McLeran #jira UE-54552 Fix for sample buffer reader Change 3858647 by Ethan.Geller PR #4439: Removes ambiX -> FuMa conversion (Contributed by mgorzel) #jira UE-54407 Change 3858364 by Michael.Dupuis #jira UE-52049: There was a case where adding and removing multiple time would lead to reordering the instances and this would cause the regeneration of the random stream for all the reorded instances. Change 3858268 by Dan.Oconnor Prevent postload logic running on REINST and SKEL classes #jira UE-54531 Change 3858205 by Mitchell.Wilson Removed particle looping from some emitters to resolve anim notify warnings. #jira UE-53823 Change 3858148 by Lauren.Ridge Changes based on Material Layer Feedback from previews - (Temporary) Disabled being able to create a layer or blend in the asset dropdown - Sections of the stack that have been disabled now inactivate that part of the UI - Create Function Instance now indicates if you are making a layer or a blend - Parent dropdown has been removed from layers and blends. Where relevant, a filter button has been added instead. #jira UETOOL-1328 Change 3857933 by Michael.Dupuis #jira UE-45854: Properly unregister callback when replacing foliage type with another one Change 3857898 by Michael.Dupuis #jira UE-54396: Remove the Ensure as it could be possible that the Landscape Info is invalid during an undo operation Change 3857878 by Max.Chen Sequencer: Assign the sequence id after the template is compiled. Copy from Dev-Sequencer #jira UE-54462 Change 3857808 by Michael.Dupuis #jira UE-54421: Prevent edition during Simulate when clicking on actor Change 3857786 by Rolando.Caloca UE4.19 - Fix recompute tangents and skin cache for OpenGL #jira UE-42108 PR #3271 Change 3857549 by Lina.Halper another jittering issue due to revision number change clear the motion vector after compile #jira: UE-53930 Change 3857439 by Lina.Halper Clear motion vector when end of sequencer when in editor world #jira:UE-54057 Change 3857384 by Graeme.Thornton Restore fix for visual studio source code accessor not correctly determining that a content project has no solution and opening a fresh instance of visual studio #jira UE-50020 Change 3856596 by Chris.Babcock Fix ResonanceAudioApi Android library architecture filtering #jira UE-54478 #ue4 #android Change 3856449 by Michael.Dupuis #jira UE-35097: Various cosmetic changes that were done in phase 2 that help improve clarity of the design. Change 3856415 by Dan.Oconnor Fix regression when loading instances that have had their class deleted. Issue detected by static analysis #jira UE-54467 Change 3856332 by Ben.Marsh Resaving TP_HandheldARBP assets to fix version again. #jira Change 3856319 by Ben.Marsh Back out changelist 3855588 Causes build failure in UFE because it introduces a dependency on the Engine module. UFE compiles with WITH_ENGINE = 0. #jira UE-54472 Change 3856292 by Ben.Marsh Fix app-local dependencies not being included in binary builds, and only working for code projects in source builds. #jira UE-54448 Change 3856190 by Martin.Wilson Fix bone access mismatch between raw mesh bones and final bones (that include virtual bones too) #jira UE-54266 Change 3856169 by Ben.Marsh Tag XGEControlWorker.exe as a build product, so it's included in the binary distro. #jira UE-54283 Change 3856123 by Chris.Babcock Fix missing ARCore file #jira UE-54453 #ue4 #android Change 3856005 by Richard.Wallis Clone of Dev-Rendering CL 3855993 - turn off FShaderCache. #jira UE-52928 Change 3855961 by Jian.Ru Copy 3855047 - fix DFAO Nan problem #jira UE-54403 Change 3855811 by Martin.Wilson Add build process for Maya Live Link plugin (standalone, manually triggered) + add built binaries to Engine/Extras (Maya 2016, Maya 2017, Maya 2018) #jira none Change 3855758 by Cosmin.Sulea UE-53569 - tvOS does not package or launch-on #jira UE-53569 Change 3855727 by Ben.Marsh Resaving assets with a versioned build in the editor, to fix warnings building DDC. #jira Change 3855626 by Adrian.Siminciuc https://jira.it.epicgames.net/browse/UE-50979 (MP4 doesn't resume playback when iOS 11 device wakes from sleep) #jira UE-50979 Change 3855588 by Graeme.Thornton Fix visual studio solution path being incorrect for content projects #jira UE-50020 Change 3855283 by Ben.Marsh Fix race condition where stdout/stderr write handles could be inherited by multiple processes, resulting in them not being closed (and the process exit being detected) until all processes that inherited them had been closed. Improves performance of ParallelExecutor. #jira Change 3855009 by Chance.Ivey Resaving with version number. #JIRA-54330 #rb none Change 3854943 by Dan.Oconnor Fix archetype lookup when searching hierarchy that has been partially reinstanced #jira UE-53840 Change 3854882 by Ryan.Vance #jira UE-54438 Removing vr related references to screen percentage. Removing previously removed gvr screen percentage code that came back in an integration from google. Change 3854806 by Mike.Beach Mirroring part of CL 3802176 to fix a crash that can occur when users try to use the default 'DisplayModel' on MotionController components. Also provided users a better error message to explain why a model might not be showing up. #jira UE-54214 Change 3854680 by Chance.Ivey Saving assets with version number#JIRA UE-54330 #rb none Change 3854652 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 3854605 by Dan.Oconnor Make sure we don't create objects outered to a placeholder object, also make sure that archetypes that are reinstanced on load are relinked in to the linker table so that they are postload'd (and the old instance isn't) #jira UE-53954 Change 3854274 by Brandon.Schaefer Changes in CL 3842286 changed the function glslang::GlslangToSpv and requires a rebuild on Linux #jira UE-54302 #codeview Arciel.Rekman Change 3854255 by Phillip.Kavan Fix a scoping issue for local instanced subobject references in nativized Blueprint C++ code. Also, don't emit redundant assignment statements for instanced subobject reference properties. - Mirrored from //UE4/Dev-Framework (3853349). #jira UE-53960 Change 3854177 by Ethan.Geller #jira UE-54415 set EnabledByDefault to false for Resonance Audio Change 3854123 by Ethan.Geller #jira UE-54410 set AudioComponentID Change 3853775 by Lauren.Ridge Minor cleanup #jira UE-54054 Change 3853772 by Lauren.Ridge Don't create widgets when just testing if the selected widget is a replacement candidate #jira UE-54054 Change 3853715 by Rolando.Caloca UE4.19 - Fix for OpenGL overwriting texture units #jira UE-54401 Change 3853655 by Ben.Marsh Add a retry loop on creating the first directory before copying files. Attempt to work around problems copying to shared folders. #jira Change 3853535 by Ben.Marsh Expose the engine compatible changelist to Perforce. If EnginePatchVersion > 0, this will be the changelist of the original .0 release. #jira Change 3852583 by Nick.Atamas Resaved assets so they don't produce DDC warnings. #jira none Change 3852552 by Uriel.Doyon Fixed Pre-Exposure shader compilation and Temporal AA issue. #jira UE-54276 Change 3852354 by Nick.Atamas Hopefully fixes the static analysis warning from jira issue. #jira UE-54332 Change 3852281 by Nick.Atamas Merging CL 3851690 from //Tasks/UE4/Dev-VR-4.19a/... to //UE4/Telease-4.19/... #jira UE-54331 Change 3852274 by Simon.Tourangeau Back out changelist 3851041 until Win7 issue is resolved. #jira UE-54354 Change 3852208 by Jamie.Dale Merging CL# 3821754 from //UE4/Dev-Enterprise Class property conversion now goes through NativizeClass/PythonizeClass This allows it to coerce from Python wrapped object types #jira none Change 3852202 by Jamie.Dale More explicit handling of EngineDir for Python SDK #jira UE-54345 Change 3851982 by Brandon.Schaefer Workaround using a hardcoded path #jira UE-54136 Change 3851748 by Michael.Dupuis #jira UE-53904: Put the code back to what it was before, as we really only want to perform this code if bIsLayerThumbnail is true, it was changed to fix another issue complaining about a missing shader, that end up being added to the existing functions Change 3851545 by Marc.Audy Remove debugging code that slipped in #jira none Change 3851461 by Ben.Marsh Fix #includes with backslashes from crashing UBT. #jira UE-53996 Change 3851391 by Jamie.Dale Updated Python to prefer our TPS SDK #jira UE-54345 Change 3851372 by Jamie.Dale Added bat file to copy the Python SDK into TPS #jira UE-54345 Change 3851218 by Ben.Marsh Add missing template to installed engine build. #jira UE-54339 Change 3851117 by andrew.porter QAGame: Removing duplicate map #jira UE-29618 Change 3851041 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3850548 by Ben.Marsh Add TP_HandheldARBP to installed engine build. #jira Change 3850424 by Ben.Zeigler Fix reported memory for asset registry to be correct, extracted from a larger change #jira none Change 3850324 by Ryan.Vance #jira UEVR-1050 Hook up the Rift dynamic res to the new IDynamicResolutionState framework Change 3849819 by JeanLuc.Corenthin Unhide Datasmith plugins in "regular" projects to allow easy project conversion #jira UEENT-795 Change 3849302 by Martin.Wilson Live Link is no longer experimental in 4.19 (moved from experimental folder to Animation) #jira none Change 3849238 by Max.Chen Sequencer: Remove bKeepStaleTracks so that stale tracks are now always purged. #jira UE-54248 Change 3849211 by Michael.Dupuis #jira UE-54181: Prevent foliage edition during PIE or simulate mode #coderevire jack.porter Change 3849123 by Benn.Gallagher Fixed crash in clothing actor creation when the clothing simulation mesh has no simulated vertices #jira UE-53741 Change 3849120 by Benn.Gallagher Fixed crash adding empty materials to destructible meshes in the destructible mesh editor #jira UE-53938 Change 3849047 by Jurre.deBaare Move material baking out of experimental #fix follow-up also remove the entry from experimental settings #jira UE-52685 Change 3848808 by Michael.Dupuis #jira UE-35097: Remove IncludeTessellationInShadowLOD & RestrictTessellationToShadowCascade from 4.19 as there is currently a bug regarding this in the dynamic rendering code path and would be too risky to fix for now. Fixed dynamic shadow code path issue vs static code path Change 3848659 by Lina.Halper Fix issue with animation resetting in the sequencer #jira: UE-54047 Change 3848635 by Rolando.Caloca UE4.19 - Fix static analysis #jira UE-50449 Change 3848515 by Sorin.Gradinaru Unshelved from pending changelist '3843541': WebBrowser Android crash on 4.4.3 #jira UE-53247 #Android #4.19 Crash on Android 4.x.x caused by a call to a Api Level 21 method Change 3848514 by Jurre.deBaare Moving over: CL 3832173 "Failed to import Alembic files #jira UE-53941 #fix Change Alembic thirdparty library setup - Removed old unused library files - Updated batch files for building HDF5 ILMBase and Alembic libraries to use new AlembicDeploy path - HDF5 is now build as a Dynamic library (which also enableds multi-threading) - Added DLLs for HDF5 to build.cs file CL 3838053 "Adding missing hdf5 dynamic libraries Change 3848245 by Ben.Marsh Downgrade warning about not using XGE shader compilation to a log message. Build machines do not have XGE. #jira UE-54237 Change 3847300 by Phillip.Kavan Fix shadowed local variable. #jira UE-54141 Change 3846922 by Max.Preussner ImgMedia: Fixed image media player never finished initialization if loading failed Copied from Dev-Sequencer CL# 3846902 #jira UE-54247 Change 3846831 by Arciel.Rekman Linux: only use lld for x86_64 (UE-54144). - lld support for other architectures seems to not ready for prime time. #jira UE-54144 Change 3846771 by Lauren.Ridge Material window now uses the background color set in preview scene. #jira UE-52215 Change 3846705 by Ben.Marsh Fix batch file paths not being quoted correctly when run through XGE. #jira Change 3846550 by Lauren.Ridge Toggling Show Background now updates the background as well #jira UE-52250 Change 3846417 by Matt.Kuhlenschmidt Fix crash resizing shootergame window #jira UE-53137 Change 3846295 by Rolando.Caloca UE4.19 - New Vulkan descriptor pooling mechanism (enabled on non-android) #jira UE-50449 Change 3846273 by tim.gautier QAGame: Updating Material Layer test assets to include more Params - Added temp assets, quicker repros for bugs #jira UE-54176, UE-54165 Change 3846255 by Lauren.Ridge Parameter tab is the primary tab for material instances #jira UE-54092 Change 3846086 by Chris.Babcock Add missing SecureHash.h include #jira UE-54026 #PR #4417 #ue4 #android Change 3846049 by Martin.Wilson Fix Set Root Motion Enabled Anim Data Modifier node (previously didn't set the enabled flag) #jira UE-54220 Change 3846033 by Martin.Wilson Fix root motion being repeatedly applied ( Clear() call only clears bHasRootMotion flag, not the transform itself ) #Jira UE-54219 Change 3845991 by andrew.porter QAGame: Updating bindings on activechannels sequencer test content #jira UE-29618 Change 3845933 by Lauren.Ridge Check for original material being valid #jira UE-54166 Change 3845920 by Martin.Wilson Optimized redundant key removal #jira UE-51303 Change 3845812 by Matt.Kuhlenschmidt Fix not being able to change BSP brush shape #jira UE-53738 Change 3845790 by Martin.Wilson Fix for assert failure when accumulating root motion in debug. #jira UE-53955 Change 3845730 by JeanLuc.Corenthin Fix build breakage warning: resaved disc.uasset with 4.19.0 preview #1 failure: set the correct default mesh for AreaLightStruct.uasset #jira none Change 3845693 by Lina.Halper Fix issue with previewing pose asset with curve data #jira: UE-53967 Change 3845533 by Andrew.Rodham Sequencer: Fixed sub sequences potentially being loaded during AddReferencedObjects #jira UE-54173 Change 3845472 by Thomas.Sarkanen Prevented debug object selection dropdown from displaying objects with pending kill outers #jira UE-54045 - Animation Blueprint Editor Crashes on Compile if the Debug Instance Selection is Other Than No Object or Preview Instance Change 3845401 by Yannick.Lange Reverting thumbnail capture from viewport. #jira UE-53775 #jira UE-53701 Change 3844693 by JeanMichel.Dignard Changed IES texture brightness to be the max candela value and set the texture multiplier to be 1. This fixes the IES lights intensity being too high. #jira UEENT-632 Change 3844689 by JeanLuc.Corenthin Update Datasmith content assets to latest Copying fix from Dev-Enterprise by Jean-Luc Corenthin CL 3809803 Updated assets with correct release version Cleanup some paths on static meshes and texture #jira UEENT-759 #jira UEENT-657 Change 3844571 by Martin.Wilson Fix motion controller motion source pin still showing when pin is connected to something #Jira UE-53236 Change 3844564 by Martin.Wilson Due to previously fixed bug some anim blueprint nodes could have duplicated guids, this fixes them #Jira UE-54174 Change 3844545 by Jamie.Dale No longer attempt to parse group separators for numeric inputs This avoids some ambiguity when parsing numbers for languages such as German #jira UE-54170 Change 3844221 by Nick.Shin HTML5 - filter out "windows/super" keys - these are not used in UE4 - but, keycode are not the expected "91 or 92" values, SDL keys are "227 & 231" instead... #jira UE-54056 HTML5 crashes inside browser upon pressing windows key Change 3843937 by JeanMichel.Dignard Fixed a crash when right clicking on a static mesh for which its AssetImportData class is currently unavailable (ie: in an unloaded plugin). #jira UEENT-764 Change 3843929 by Peter.Sauerbrei pull over fix for bad directory when copying launch images #jira UE-53177 Change 3843658 by Thomas.Sarkanen Text is red again in anim viewports #jira UE-53224 - Colouring removed from "Animation is being edited" warning messages Change 3843657 by Thomas.Sarkanen Enable picking via Enter for details panel asset pickers The previous (4.18) behavior was to only allow selection of the previous/next item in the list with arrow keys. A fix (CL 3783114) for pickers with many assets broke this. This change now allows for selection of any item by navigating with arrow keys and pressing Enter, as suggested in the Jira. #jira UE-53440 - Unable to select assets within modal Asset Selection dropdowns after navigating with keyboard entry Change 3843120 by Dan.Oconnor Avoid fixing component template games outside the editor, this logic does not work for games that have been nativized #jira UE-54009 Change 3842841 by Ben.Zeigler #jira UE-50020 Switch visual studio module back to using absolute paths so go to definition works, broken in CL #3796157 Change 3842582 by Lauren.Ridge Guards against the widget passed to scrollwidgetintoview being null #jira UE-54037 Change 3842575 by Max.Chen Sequence Recorder: Stop recording if the preview window is destroyed. #jira UE-49778 Change 3842551 by Michael.Dupuis #jira UE-35097: Minor bug fix, documentation, etc. to the landscape optim that was done in the phase 2 that have 0 risk. Change 3842371 by Max.Preussner Media: Merged 4.19 fixes from Dev-Sequencer CL 3807293 WmfMedia: Fixed YUY2 video format strides CL 3827988 MediaPlayerAssets: Fixed Media Texture is not linked to Media Player when created together CL 3805414 MediaAssets: Setting valid GUID when initializing media texture resource CL 3804183 MediaAssets: Added missing lock in media sound component CL 3831580 MfMedia: Media open events generated in same order as on other platforms CL 3807193 WmfMedia: Fixed incorrect buffer stride for RGB32 video tracks #jira UE-53532 #jira UE-53328 Change 3842356 by Max.Preussner ImgMedia: Fixed ensure when cooking project that uses ImgMediaSource #jira UE-51631 Change 3842335 by Aaron.McLeran #jira UE-54087 PR #4419: Fixes a crash due to nullptr dereference (Contributed by mgorzel) Change 3842286 by Rolando.Caloca UE4.19 - Fix for static analysis - Glslang 1.0.65.1 #jira UE-54128 Change 3842222 by andrew.porter QAGame: Updating framerate of EXR_Sequence #jira UE-29618 Change 3842211 by Ben.Marsh Fix determination of Windows version string. The manifest for UE4 applications declares compatibility with Windows 10 nowadays, so we get accurate version numbers returned from GetOSVersionInfo(). #jira UE-54035 Change 3842163 by Cosmin.Sulea UE-53303 - We do not check for remote connection before attempting remote shader compile, causing crashes when misconfigured #jira UE-53303 Change 3841770 by Max.Chen Sequencer: Fix to allow keying of an arbitrarily deep property path. #jira UE-54095 Change 3841758 by Max.Chen Sequencer: Fix unbound possessable components when pasting spawnables. #jira UE-54104 Change 3841415 by Lauren.Ridge Renaming a material layer or material layer blend will no longer cause the asset to appear removed from the stack #jira UE-53942 Change 3841327 by Arciel.Rekman Linux: fix Debug build (UE-53855) - A workaround. UBT should be using proper PCH files instead. #jira UE-53855 Change 3840975 by Rolando.Caloca UE4.19 - Updated VulkanRHI - Fixes for GPU frame time - Fixes for CPU performance #jira UE-50449 Change 3840838 by Michael.Dupuis #jira UE-53944: Make sure the LOD generated is in the valid range to prevent the crash Change 3840693 by Ben.Zeigler #jira UE-53923 Fix regression in 4.19 where PrintScriptCallstack is not always safe to call from the immediate window. I narrowed down the issue to some confusing optimized code so I turned off optimization Copy of CL #3840692 Change 3840680 by Aaron.McLeran Bringing fixes from Dev-AnimPhys to 4.19. #jira UE-53903 crash on load with oculus audio and old audio engine #jira UE-52786, UE-53910 Fix for broken spatialization on xaudio2, old audio engine. Change 3840663 by Rolando.Caloca UE4.19 - Fix for layout ensure on HMD projects on Vulkan #jira UE-50265 Change 3840577 by Rolando.Caloca UE4.19 - Fix for CPUs with more than 16 cores #jira UE-53434 Change 3840551 by andrew.porter QAGame: Setting Allow Bindings from Asset to false #jira UE-29618 Change 3840491 by Ben.Zeigler #jira UE-31662 Fix regression with renaming parent inherited function. It was not correctly searching the parent's skeleton class during the child's recompile so it was erroneously detecting the parent function as missing Copy of CL #3840489 Change 3840297 by Max.Chen Sequencer: Fix copy/paste crash for lights #jira UE-54084 Change 3840284 by Michael.Dupuis #jira UE-53053: Was having a mismatch between the remove reorder and the actual remove Change 3840215 by Sorin.Gradinaru Unshelved from pending changelist '3812852': UE-53550 Level doesn't render on Lenovo 939 UE-53592 Assertion right after rendering scene on Lenovo S939 #jira UE-53550 #jira UE-53592 #4.19 #Android UE-53550 Removed force disabling texture2DLodEXT and textureCubeLodEXT on Mali-400 devices The problem was that the shader compiler complains about code lines before the #extension directives. Placeholder // end extensions in the original shader code - to be replaced with round() functions UE-53592 Always use a new task for devices that have GIsThreadedRendering=false, even when the call is from the rendering thread Change 3840048 by Michael.Dupuis #jira UE-52975: Was always performing the equivalent of an Add, so now we use the Transform during the duplicate Change 3840005 by Richard.Wallis Clone of CL 3835252 Fix for shader library not working with iterative cooking, also fixes native Metal library not working with iterative cook. This works by saving a "backup" of the shader library file - this is reloaded only during iterative cook and adds back in shaders that are missing from the current cook. Fix for extracting/searching .metal files in different directories so debug tgz archiving wasn't working correctly and also support iterative cook. Includes first pass code review suggestions by Mark Sat and Dmitriy Dyomin. #jira UE-53815 Change 3839968 by Michael.Dupuis #jira UE-52289: When OnRegister is called on the component make sure our PerInstanceRenderData is up to date Prevent a possible crash if ClearInstanceSelection was called on a component with no PerInstanceRenderData existing ##codereview jack.porter Change 3839924 by Richard.Wallis Clone of CL 3838093 Fix for rewind / seek bugs in AvfMediaPlayer. - Don't initialise and send audio buffers that have a duration of Zero from the audio tap. This chokes the audio sink and adds overhead we don't need. - Don't faff around with current play rates during loop operation - normal seek doesn't do this so loop seek shouldn't either. - SetRate() should not required to be passed to media tracks - should be enough to do this on audio track select only. #jira UE-54019, UE-53027 Change 3839321 by andrew.porter QAGame: Adding missing bookmark to QA-Sequencer_Blending #jira UE-29618 Change 3839286 by Marcus.Wassmer Duplicate CL: 3823296 #jira UE-52784 Change 3839229 by Brandon.Schaefer Fix audio clean up crash when exiting PIE #jira UE-54050 #review-3839109 @Arciel.Rekman, @Aaron.McLeran Change 3839223 by andrew.porter QAGame: Rebinding pointlight actor to sequences #jira UE-29618 Change 3839098 by andrew.porter QAGame: Fixing missing sequencer blending test content #jira UE-29618 Change 3838919 by Mike.Erwin glTF: binary format's BIN chunk is not necessarily right after the JSON chunk. Discussed this with glTF spec authors. See https://github.com/KhronosGroup/glTF/issues/1177 Rearranged how we read "chunks" from the file since they are not fixed in number or order, besides JSON always being first. #jira UE-50695 Change 3838909 by Mike.Erwin glTF: base64 decoding of data buffers and images Data can be encoded inside the glTF JSON as a Base64 data URI. This CL addresses a known limitation of initial commit CL 3793018. I added this after because base64 is expected to be uncommon in the wild. Authoring software will typically use external BIN files (.gltf) or a BIN chunk (.glb) to store data. #jira UE-50695 Change 3838812 by Uriel.Doyon Integrated CL 3838576, 3838581 and 3831760 from DevRendering, fixing issues with texture streaming. #jira none Change 3838773 by Lauren.Ridge Fixing material layer filters #jira UE-54064 Change 3838748 by Michael.Trepka Fixed EngineTest runtime warning caused by CL 3838626 #jira UE-53893 Change 3838730 by Max.Chen Sequencer: Add notification when the blend type is changed. #jira UE-54046 Change 3838626 by Michael.Trepka Changed FMacMenu to store MultiBox and MenuEntryBox as weak pointers instead of shared pointers. This way we avoid a situation where FMacMenu would try to release them on the main Cocoa thread or where we'd try to execute a menu action for menu items that Slate considers released. #jira UE-53893 Change 3838392 by Arciel.Rekman Fix assert on a policy removal (UE-54042). - Applying Gil's safe fix which just sweeps the problem under the rug. #jira UE-54042 Change 3838162 by Arciel.Rekman Linux: fix crash due to lambda lifetime issues (UE-54040). - The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+). #jira UE-54040 (Edigrating 3819174 to Release-4.19) Change 3838156 by Rolando.Caloca UE4.19 - Support for Vulkan devices that have no cached memory type #jira UE-54039 Change 3838096 by Brandon.Schaefer Set sound to unfocused volume multiplier if not focused #jira UE-51327 #review-3835736 arciel.rekman Change 3838087 by Brandon.Schaefer Fix arm server building. A fix from CL 3617084 remove inheriting from IHeadMountedDisplayVulkanExtensions. Remove overrides #jira UE-53901 #review-3838088 arciel.rekman Change 3837072 by Phillip.Kavan Fix for a build failure that could occur with Blueprint nativization enabled and EDL disabled. This was a regression introduced in 4.18. - Mirrored from //UE4/Dev-Framework (3836768). #jira UE-53908 Change 3837071 by Phillip.Kavan Emit proper syntax for set/map fields containing converted assets to generated C++ Blueprint class headers when Blueprint nativization is enabled. - Mirrored from //UE4/Dev-Framework (3835944, 3835965). #jira UE-42614 Change 3837070 by Phillip.Kavan #4202 - Blueprint nativization bug fixes (PR). - Mirrored from //UE4/Dev-Framework (3830562, 3832292). #jira UE-52188 Change 3836507 by Ryan.Vance #jira UE-53992 Due to hijacking the depth target directly from the scene context, we can't support depth compositing if it's being scaled by screen percentage since it wont match our color render target dimensions. Change 3836390 by Dan.Oconnor Fix failure to resolve archetype when using the compilation manager #jira UE-53840 Change 3836251 by Ryan.Vance #jira UE-53992 Change 3835852 by Mark.Satterthwaite 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 3835802 by JeanMichel.Dignard UBT changes for Enterprise deployment - Allow building enterprise against an installed engine version - Added enterprise to the cleanup process if its not installed #jira UEENT-748 Change 3835625 by Bogdan.Vasilache UE-50257 --> (Skeletal meshes silently fail to render if they have more than 75 bones) --> changed logged error with a warning #jira UE-50257 Change 3833649 by Mike.Beach Enabling debug layer when multiview is enabled. #jira UE-49954 Change 3833525 by Ethan.Geller Fix copyright in ActiveSound.cpp #jira none #rb none Change 3642649 by Stewart.Lynch Renamed loctext key to stop it clashing with an existing entry #jira UE-49432 Change 3644762 by Stewart.Lynch LLM update: Added Total, Untracked and FMalloc Unused to LLMFULL stat page. Fixed occasionally missing allocs/frees. Removed platform csv. * removed CheckSize arg from OnLowLevelFree * show a warning in LLM Map when replacing existing value. This means that there has been an alloc/free mismatch. * minor optimization in LLMMap::GetMaxIndex - cache Mask value * added Total and Untracked stats to LLMFULL. LLMFULL now tracks almost all of the memory that LLMPlatform does, so there is no real need to use LLMPlatform. Removed the LLMPlatform csv. * added FMalloc Unused stat to LLMFULL to account for memory Binned2 has allocated internally. This can be used to track Binned2 fragmentation over time. * renamed Binned stats to FMemory to make it more general * added Default tracking to CustomVirtualAlloc and disable it where necessary. This catches the few VirtualAlloc calls that were missed. * added AllocType arg to all allocation tracking. This was needed in order to track the FMalloc total, and also to fix the pausing * fixed a bug in pausing where alloc/frees were being missed. Now only pauses a specific allocation type. * Trackers now maintain totals for each enum tag * tracking of Texture and mesh allocation on Windows D3D11 & D3D12 Change 3651334 by Joe.Barnes Fix misspelled function name. #jira 39441 #3016 Change 3653857 by Ben.Woodhouse Integrate from //UE4/Main/...@3653675 to //UE4/Dev-Console/... Change 3656553 by Joe.Barnes Add path for SCS_DeviceDepth. Change 3662703 by Ben.Woodhouse Merging CL 3659069 from //Fortnite/Main/... to to //ue4/dev-console/...: [FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame. - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe. - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency. Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup. A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index. In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread. [~] Unified platform specific sync interval CVars into one: rhi.SyncInterval - 1 == 60Hz - 2 == 30Hz - 3 == 20Hz Change 3675239 by Keith.Judge Fixed thread priorities for Windows so that BelowNormal and SlightlyBelowNormal are the same. Bumped Lowest down a notch so they all fit. #jira UE-50626 Change 3676709 by Ben.Woodhouse Integrate from //UE4/Main/...@3675008 to //UE4/Dev-Console/... Change 3689712 by Ben.Woodhouse Integrate from //UE4/Main/...@3687781 to //UE4/Dev-Console/... Change 3701778 by Ben.Woodhouse Integrate from //UE4/Main/...@3699491 to //UE4/Dev-Console/... Change 3677043 by Ben.Woodhouse From StewartL: I also found that on Windows Fortnite is overflowing int32 values due to the number of allocations. I changed LLMArray and LLMMap to use uint32 and it seems to be Ok now. I didn't want to check this in at the last minute, so here's the shelf: 3645336 Change 3726532 by Luke.Thatcher [CONSOLE] [~] Enable XGE shader compilation by default. - Also set XGE mode to "force interception". With XGE on by default, we don't want people with an old Incredibuild version using the old system inadvertently. Change 3726554 by Luke.Thatcher [CONSOLE] [+] Improved Scoped Named Events - Added SCOPED_NAMED_EVENT(_FSTRING/_TEXT/_F) macros to allow use of string literals, FString and printf in scoped named event strings. - Replaced explicit use of FPlatformMisc::Begin/EndNamedEvent throughout the engine with macros, so the events can be compiled out. - Fixed performance issues on various platforms with named events. SCOPED_NAMED_EVENT macros were not considering whether the platform uses wide or ansi char strings. Change 3751378 by Ben.Woodhouse Integrate from //UE4/Main/...@3748735 to //UE4/Dev-Console/... Change 3751812 by Ben.Woodhouse Integrate from //UE4/Main/...@3750870 to //UE4/Dev-Console/... Change 3728571 by Luke.Thatcher [CONSOLE] [!] Drop another XGE controller warning to log. Change 3747150 by Joe.Barnes Add AuthoringToolHelper.bat file to installed build copy list. Change 3768585 by Ben.Woodhouse Integrate from //UE4/Main/...@3767531 to //UE4/Dev-Console/... Change 3772333 by Ben.Woodhouse Integrate from //UE4/Main/...@3771573 to //UE4/Dev-Console/... Change 3786872 by Ben.Woodhouse Integrate from //UE4/Main/...@3786785 to //UE4/Dev-Console/... Change 3787279 by Luke.Thatcher [CONSOLE] [~] Unified present threshold CVars. - CVars are now in RHIUtilities.cpp, and are renamed to rhi.PresentThreshold.Top and rhi.PresentThreshold.Bottom. - Platform implementations will be checked in shortly. Change 3787445 by Luke.Thatcher [CONSOLE] [^] Merging (as edit) improvements to low-latency frame syncing from //Fortnite/Main to //UE4/Dev-Console Original CLs - 3708949 - Added rhi.SyncSlackMS cvar to allow an offset of the game thread sync time by a number of milliseconds. - 3712693 - Fix for crash on startup in new frame syncing. - 3735765 - Fix r.GTSyncType logic when vsync is disabled (falls back to old behaviour when vsync is off). Change 3788417 by Ben.Woodhouse Duplicate from FN CL 3712515 CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3807818 by Ben.Woodhouse Integrate from //UE4/Main/...@3803271 to //UE4/Dev-Console/... Change 3818577 by Ben.Woodhouse Integrate from //UE4/Main/...@3812936 to //UE4/Dev-Console/... Change 3821198 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820127 to //UE4/Dev-Console/... Change 3821519 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820753 to //UE4/Dev-Console/... #robomerge none Change 3813513 by Ben.Woodhouse CSV profiler refactor+ bug fix - Move the CSV profiler to core, so we can use it in modules other than engine - Profiler no longer enqueues RT commands - this is handled by a new core delegate type - Make begin/end requests more robust, enqueued via a command queue and processed in order - Defer end capture requests by a frame. This ensures stats on threads other than the gamethread (e.g. renderthread etc) are complete, so the last frame is not truncated - Fix long-standing bug with multiple captures where old/stale frames would appear in the first <128 frames of captures - Move unit stats and dynamic resolution out of the profiler itself and into the engine. Only frametime is recorded in the profiler now - Fix longstanding bug in first frame renderthread time in the engine Change 3814039 by Ben.Woodhouse More Csvprofiler improvements - Event support (via CSV_EVENT macros). These appear in the "EVENTS" column of the CSV and can be used to add context to the stat data - Reduced memory overhead for timestamps through bit-packing (now 16 bytes per marker instead of 24), and splitting stats into different types Change 3814041 by Ben.Woodhouse Integrate as edit CL 3796390 from Fortnite/Main: Fix CsvProfiler not compiling in shipping for now Change 3814229 by Ben.Woodhouse Integrate + refactor of CL 3792591 to reduce complexity and fix bugs Original changelist description: CSV profiler improvements: - The CSV profiler is now always compiled in on the server - The CSV profiler can now handle both int32 and float stats - In BeginCapture, the function can take additional arguments for some customization of filenames Fixes to the above: - Remove FCustomValue class - Fixes bug where all timestamp values from CSV_SCOPED_STATs were garbage (due to issues resulting from FCustomValue type ambiguity when adding values together) - FCsvCustomStat now just uses simple union + bitfield flag to reduce size and complexity (4 bytes instead of 8 per value) - FCsvColumn class modified to use doubles, which can represent both ints and floats without loss of precision - this class is not memory or time critical - Replace multiple overrides used by the server for filenameprefix/folder/postfix etc with a single FilenameOverride Change 3814242 by Ben.Woodhouse Disable CSV unit stats on the dedicated server Change 3817339 by Ben.Woodhouse Duplicate from 3816641: CSV profiler improvements - Added a low-pri processing thread to compress raw timing data into a much more efficient format - Reduces memory usage for 15 minute 30k frame capture with GPU stats enabled from 110MB to 3.4MB - Processing time : 0.1ms per frame - Improved name handling for char literal stats. We now use the string as the ID rather than the pointer so multiple stat uses of the same name string apply only to a single stat - Reworked thread data access to eliminate locking for anything time-critical. Frame boundaries now handled via a lock-free helper class - Fixed bug with queue implementation where 1 in 128 reads would duplicate the last block of stat data - Reduced #include dependencies for CSVProfiler.h - Removed AccumulateMax because it doesn't work, and implementing properly would add a lot of complexity - Added a simple test harness Change 3817582 by Ben.Woodhouse Fix android compile warning Change 3823242 by Ben.Woodhouse Integrate as edit from Fortnite/Main 3820067: Fix threading issue with D3D12 pipeline state caches for windows. This was caused by the usage of FRwScopeLock::RaiseLockToWrite. A pointer read before RaiseLockToWrite was called was invalidated because RaiseLockToWrite has to release the read lock before acquiring the write lock. Rename FRwScopeLock::RaiseLockToWrite to ReleaseReadOnlyLockAndAcquireWriteLock_USE_WITH_CAUTION to make it more explicit what's happening. As the comment says: // This function should be used with caution. // It releases the read lock _before_ acquiring a new write lock. This is not an atomic operation and the caller should // not treat it as such. // E.g. Pointers read from protected data structures prior to this call may be invalid after the function is called. Change 3823840 by Ben.Woodhouse Edigrate from 3823816 Fix an issue where the csvprofile console commands would sometimes result in an empty CSV. The root cause was GFrameNumber incrementing between the console command being read and FCSVProfiler::EndFrame(). We now use our own frame counter which is updated in EndFrame, so this can't happen Also fix an issue where calling csvprofile stop twice would cause all further commands to be ignored. Change 3827787 by Ben.Woodhouse Integrate-as-edit CL 3820678 from Fortnite/Main Allow the CSV Profiler to be compiled in to shipping dedicated server builds Change 3827842 by Ben.Woodhouse Integrate-as-edit CL 3827079 from Fortnite/Main CSV profiler category support Change 3827918 by Luke.Thatcher [CONSOLE] [!] Fix compile error in CSV custom stats. Change 3827964 by Luke.Thatcher [CONSOLE] [!] Fix inverted logic and spelling of boolean. - Functionally, the boolean did the correct thing, but the logic was backwards inside the build tool. Change 3831661 by Ben.Woodhouse Integrate-as-edit CL 3830630 from Fortnite/Main Fix CSVProfiler assert in dev builds on XB1 Change 3860300 by Joe.Barnes Use same method for src and dest rect calculation as other post processing passes so rects match between passes. Prevents read of unprocessed pixels. Change 3860347 by Joe.Barnes Delete existing SourceConfigFile before allocating a new one to prevent them leaking. Change 3860348 by Joe.Barnes Completely encapsulate GetLLMAlloc() in #ifdef. Change 3861772 by Ben.Woodhouse Integrate-as-edit CL 3861688 from Fortnite/Main: Forward lighting GPU crash fixes Change 3861774 by Ben.Woodhouse Integrate as edit CL 3833918 from dev-rendering (courtesy of DanielW): D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC. 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 3862214 by Ben.Woodhouse Integrate-as-edit CL 3859637 from Fortnite/Main Dynamic resolution console tweaks - Dynamic resolution high level switch driven by a cvar instead of code - Disable user settings dynamic resolution handling on non-desktop platforms. DynamicRes as a user setting does not make sense on consoles/mobile - we'll drive it from device profiles/scalability - Modify naming of GPUHeadRoom to make it clear that it's a percentage, not millseconds Change 3863919 by Ben.Woodhouse [Copy] Integrate console dynamic resolution interface changes from CL 3863354, 3862754, 3862639 Change 3864347 by Ben.Woodhouse Fix the editor build. This will need a proper fix before 4.19 ships. #lockdown Nick.Penwarden #rb none [CL 3913399 by Ben Marsh in Main branch]
2018-02-27 17:30:35 -05:00
void FPrimitiveSceneInfo::GetStaticMeshesLODRange(int8& OutMinLOD, int8& OutMaxLOD) const
{
OutMinLOD = MAX_int8;
OutMaxLOD = 0;
for (int32 MeshIndex = 0; MeshIndex < StaticMeshRelevances.Num(); ++MeshIndex)
Copying //UE4/Release-Staging-4.19 to //UE4/Dev-Main (Source: //UE4/Release-4.19 @ 3873914) ============================ MAJOR FEATURES & CHANGES ============================ Change 3873906 by Dan.Oconnor Revised fix for preventing delegate functions from appearing in context menu when using the compilation manager - needed to run after CallDelegateHandler changed statement type #jira UE-51726 Change 3873614 by Dan.Oconnor Prevent delegate functions from appearing in context menu when using the compilation manager and prevent crash if such a function is somehow compiled #jira UE-51726 Change 3873428 by Ben.Zeigler #jira UE-54753 Fix class pin on SpawnActorFromClass to correctly support browse. It was inherting from the wrong pin widget Copy of 3873408 Change 3873083 by Ethan.Geller [4.19]#jira UE-54865 fix seconds -> milliseconds conversion issue. #rb aaron.mcleran #lockdown cristina.riveron Change 3872714 by Dan.Oconnor Further revise fix for UE-53840, mistakenly reverted to old behavior when compiling synchronously #jira UE-53840 Change 3872648 by Ben.Zeigler #jira UE-54845 Fix crash in NextDebugTarget when there are no valid debug targets Copy of CL #3872636 Change 3872500 by Arne.Schober Back out changelist 3870283 #jira UE-54838 Change 3872412 by Mark.Satterthwaite Remove now unnecessary r.Metal.ManualVertexFetch from the device profiles. #jira UE-54853 Change 3872313 by Martin.Wilson Add UI to Live Link Client to warn live link users about background performance throttling #jira none Change 3872272 by Martin.Wilson Fix crash when clearing a skeletal mesh on a skeletal mesh component with an active Post Process Anim Instance #jira none Change 3872238 by Mark.Satterthwaite Duplicate CL #3871025 Make Manual Vertex Fetch a property of the shader platform for Metal - only the desktop platforms (METAL SM5/SM5_NoTess/MRT) will use manual vertex fetch. The mobile platforms use vertex descriptors. Prevents problems with cooked versions of games not working properly on Metal due to a mismatch between the runtime's Manual-Vertex-Fetch state versus the state used by the cooker when compiling shaders. #jira UE-54843 Change 3872087 by Yasiman.Ahsani Adding Python, libdisasm, musl, and LSS licenses. #JIRA n/a - adding licenses for new TPS Change 3872037 by Ben.Marsh BuildGraph: Add a task for compiling MSBuild projects. #jira Change 3871934 by Lina.Halper #jira: UE-54703 Change 3871595 by Michael.Trepka Fixed a problem with Mac editor not exiting with error code returned from GuardedMain function #jira UE-54830 Change 3870829 by Joe.Barnes Fix unintentional change to PhysX libs used in Debug builds. #jira ue-54817 Change 3870820 by Nick.Atamas Copying //Tasks/UE4/Dev-VR-4.19a@3870772 to Release-4.19 (//UE4/Release-4.19) #jira UE-54816 Change 3870755 by Chance.Ivey Min Android version set - should fix camera permissions issue found in #JIRA UE-54024 #rb none #fyi nick.atamas Change 3870547 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 3870546 by Krzysztof.Narkowicz Fixed tesselation shader tex/uniform initialization in OpenGL3/4 path #jira UE-54471 Change 3870284 by Ben.Zeigler #jira UE-54583 Fix issue where loading multiple already loaded assets via Async Load Asset node could return the wrong asset on the loaded pin. The assign variable node was happening at a slightly wrong time Copy of CL #3870279 Change 3870283 by Arne.Schober 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 #jira none Change 3870098 by Ben.Marsh Fix OptimizeCode = CodeOptimization.Always causing compile errors in Linux debug builds. bUseInlining was not set correctly on the global compile environment used to build shared PCHs. Also fixed other settings not being propogated down from the target correctly. #jira UE-53855 Change 3870013 by Ben.Marsh UBT: Add an error if a user attempts to clean a target through hot-reload, rather than just failing to delete DLLs because they are locked. #jira UE-54179 Change 3870010 by Ben.Marsh UBT: Add an option to format output messages in a form that can be parsed by MSBuild. Prevents errors showing as "EXEC: Error:", and displays them correctly in the error list window. #jira Change 3869814 by Ben.Marsh UBT: Unify command line arguments to use -Name=Value syntax. -Module <Name>, -ModuleWithSuffix <Name> <Suffix>, -Plugin <Path> and -Receipt <Path> are no longer supported. Also remove the RemoteRoot option, which was not used anywhere. #jira Change 3869786 by Martin.Wilson Fix Live Link Remove Source button not working #Jira UE-54652 Change 3869660 by Martin.Wilson Fix missing message bus sources in the live link client (not repolling for new sources) #Jira UE-54712 Change 3869659 by Guillaume.Abadie Fixes SimpleComposure's BP_AdvancedCompositing keep allocating memory every frame. Credits for fixing the issue to Ron Radeztsk. #jira UE-54780 Change 3869401 by Lauren.Ridge Adding to the conditional in FindAllAncestorNamedSlotHostWidgetsForContent #jira UE-51470 Change 3869384 by Brandon.Schaefer Open the project in the explorer when NullSourceCodeAccess is done creating the project #jira UE-54630 Change 3869308 by Ben.Marsh PR #4452: Fixed FindFilesRecursively in IPlatformFilePak (Contributed by user37337) #jira UE-54568 Change 3869265 by Martin.Wilson Fix crash and subsequently found issues with unloading/reloading Maya Live Link plugin -Crash on reload due to core code getting reinitialize, made this a one time only thing (as Maya never gets rid of the module from memory) -Added manual ticking of FTicker, allows message bus objects to be cleaned up properly (cannot do this as part of normal flow as it is in engine code which we dont have) -rebuild binaries for Engine/Extras #Jira UE-54643 Change 3869206 by Benn.Gallagher Fixed crash updating clothing paint mode after tab spawners have been destroyed by the hosting application. #jira UE-54116 Change 3869064 by Benn.Gallagher Resolved skeletal mesh data changes and clothing section disable changes after collision. Re-added ability to disable sections at the mesh level and removed the ability to strip editor sections as these are required for a number of other features to correctly function. #jira UE-52557 Change 3869062 by Guillaume.Abadie Fixes "dynamic resolution is not supported on this platform" warning message being always visible. #jira UE-54655 Change 3868202 by Lauren.Ridge Fix for assert on expanding vector param in layered material #jira UE-54737 Change 3868161 by zak.parrish Replacing FaceARDebugUI with a blank UI until a new one can be created, due to a crash bug. #rb none #JIRA UE-54639 Change 3867750 by Ethan.Geller [4.19] #jira UE-54725 Fix for Envelope attack and release values not being properly set on Synth Components #rb aaron.mcleran #lockdown cristina.riveron Change 3867657 by Lauren.Ridge Adding if with editor wrapper to new function #jira cis fix Change 3867646 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867340 by Lauren.Ridge Fixes to Material Layers from 4.19 preview feedback -Need to pass through base attributes better/have better default nodes in layer (optional Example Layers and Blends checkbox now enables this in Experimental Settings) -Parent in function should be editable -Enforce only two layers in a blend -Mat layer should warn if it has incorrect output in the layer itself -Enforce not being able to delete outputs -Warn about creating a MAL node inside a function #jira UETOOL-1312 Change 3867317 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867000 by Lauren.Ridge Fix for folder favorites possibly becoming very large #jira UE-54704 Change 3866892 by Martin.Wilson Fix crash if clicking ok on message bus add source without having a source selected #jira UE-54572 Change 3866391 by Matt.Kuhlenschmidt Fix static analysis #jira UE-53379 Change 3866241 by Ryan.Vance #jira UE-54681 Fixed missing Vulkan texture GetNativeResource implementation that was lost in a bad merge. Change 3866071 by Nick.Shin UDN 412414 update HTMl5 readme file #jira none Change 3866005 by Max.Preussner Messaging: Preventing dangling references when removing message subscribers #jira UE-54680 Change 3865988 by Simon.Tourangeau Fix static analysis warnings #jira none Change 3865895 by zachary.wilson Renaming QA-PhysicalLightUnits to TM-PhysicalLightUnits in QAGame. #JIRA UE-29618 Change 3865469 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3865461 by Chris.Babcock Add a wait for audio thread to pause audio on going to background #jira UE-54301 #ue4 #android Change 3865350 by Matt.Kuhlenschmidt Fix issue where cascade emitter UI would disapper #jira UE-53379 Change 3865336 by Arne.Schober REL - Fix UE-52356 Bone Weight #jira UE-52356 Change 3865257 by Ben.Marsh Fix editor failing to load content-only projects when compiled in DebugGame. #jira UE-54661 Change 3865238 by Simon.Tovey Pulling Olaf's fix from 3832595 over to release #tests EngineTests boots in vulkan #JIRA UE-54394 Change 3865191 by Sorin.Gradinaru UE-54317 DXT apps fail on first launch when 'For Distribution' enabled, Unsupported Texture Format #jira UE-54317 #Android #4.19 From //Dev-Mobile/3863322 Change 3865190 by Sorin.Gradinaru UE-54175 Selecting For Distribution no longer sets configuration to Shipping #UE4 #4.19 #jira UE-54175 From //Dev-Mobile/3863371 "For Distribution" enable-> reset "Build COnfiguration" to Shipping and force serialization to DefaultGame.ini (see UE-52845) Change 3865056 by Jamie.Dale Fixed culture being incorrect when added via the Localization Dashboard #jira none Change 3864826 by Max.Preussner WmfMedia: Added missing scope lock #jira UE-54365 Change 3864055 by Aaron.McLeran #jira UE-54213 Crash fix for GC'd plugin settings objects. Adding to AddReferencedObjects. Change 3863775 by Andrew.Porter MediaFrameworkTest: Removing Platform Media Source TVOS test content #jira UE-29618 Change 3863714 by Dan.Oconnor Make array, set, and map nodes no longer switch object type when a pin is disconnected. Also, you can no longer attach unrelated map types to the MakeMap node if only the value pin has been inferred #jira UE-54634 Change 3863696 by Max.Chen Sequencer: Fix crash open a new sequence while another is still active. #jira UE-54620 #jira UE-54624 Change 3863638 by Dan.Oconnor Make sure all blueprints that are skeleton compiled get a BroadcastChanged notification, also run BroadcastChanged after reinstancing, matching pre compilation manager behavior #jira UE-54193 Change 3863494 by Jamie.Dale Ensure Py_SetPythonHome is set correctly before the embedded Python interpreter is initialized #jira UE-54345 Change 3863433 by Max.Preussner MediaPlayerEditor: Removed tvOS from list of available platforms in Platform Media Source assets tvOS currently reports itself as iOS, so it cannot have its own setting. #jira UE-54559 Change 3863406 by Lauren.Ridge Fix for a crash when filtering a dropdown with no set value #jira UE-54631 Change 3863238 by Michael.Kirzinger #jira UE-52730: Fix mac voip crash Change 3862586 by Marc.Audy Clean up rendering thread heartbeat checks that got mangled in various integrations #jira Change 3862247 by Guillaume.Abadie Fixes editor lines that were using a simple element blending mode that was generating an incorrect alpha channel. #jira UE-53830 Change 3862120 by Guillaume.Abadie Fixes USceneCaptureComponent::HiddenActors always staying gray out in world editor. #jira UE-51458 Change 3861363 by Jamie.Dale Static analysis fixes #jira none Change 3861150 by Matt.Kuhlenschmidt Fix static mesh editor displaying 0 for all stats on LODs > 0 #jira UE-53776 Change 3860990 by Dan.Oconnor Clear subobjects not recreated on load, e.g. because we're running with -game and the subobject was created using CreateEditorOnlySubobject #jira UE-54551 Change 3860972 by Nick.Shin HTML5 - detect "SyntaxError: " and do a forced reload - an actual syntax error would be caught during compile time - this is usually error condition is usually seen when browser is running "old/partial" cached data and it's fairly safe to just reload the page #jira UE-54017 QAGame fails to launch properly on HTML5 Firefox 64 bit Change 3860951 by Arne.Schober Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer. #jira UE-54587 Change 3860950 by tim.gautier QAGame: Updating ML_Stone to include Texture Coordinate and Panner functions #jira UE-29618 Change 3860833 by Michael.Dupuis #jira UE-54181: Repopulate the foliage list when existing simulate mode Let the GC know that internal struct hold UObject ptr Change 3860762 by Jamie.Dale Ensure we invoke the correct version of Python from UBT #jira UE-54345 Change 3860676 by Simon.Tourangeau Remove DirectoryWatcher warning in output log #jira UEENT-846 Change 3860598 by Lauren.Ridge Fix for crash on opening new material instance #jira UE-54589 Change 3860338 by Michael.Lentine Integrate changes for fixing MorphTargets. #jira 54398 Change 3860215 by Ben.Marsh UAT: Fix exception consturcting target rules assembly inside UAT, now that there's an abstract TargetRules class. #jira UE-54578 Change 3860186 by Matt.Kuhlenschmidt Fix crash top 10 with the font editor shutting down and then a dpi event occuring #jira UE-54543 Change 3859854 by Graeme.Thornton PR #4124: VSCode: Changed VisualStudioCodeSourceCodeAccessor to work with non-default VSCode install paths on Linux (Contributed by christopherreed) #jira UE-51289 Change 3859848 by Graeme.Thornton Fix crypto.cs reading the wrong ini setting names for uasset encryption settings #jira UE-54566 Change 3859684 by Ben.Marsh PR #4436: Fix compile error when building BlankProgram because incorrect directory path (Contributed by windkey) #jira UE-54392 Change 3859657 by Ben.Marsh Fix FTransform being passed by value, causing alignment error when compiling for Win32. #jira Change 3859312 by nick.bullard Updating AEOverviewMan to remove reference to sub-level AEOverviewSWP which was deleted in 3859278 Still need to update menu to remove selection #jira UE-50784 Change 3859278 by Nick.Bullard Deleteing AEOverviewSWP.umap per request of Developer. Also updated TM-AnimPhys which refereneced this map as well. "This test map is a custom C++ implementation of a "procedural sound wave". This code is super janky and not worth fixing up. I'm sure there's a legit thread safety problem in there but the code is in QAGame only. We've since implemented "synth components" which do what this test does in a much safer/better way and maintaining/testing this old thing is *not* worth the time." #jira UE-50784 Change 3859124 by Dan.Oconnor Fix long standing crash when duplicating a blueprint that is missing its parent class. Entries in CrashReport go back to 4.16 #jira UE-54468 Change 3859086 by Ryan.Vance #jira UE-54470 We need to set the viewport in both cases. Change 3859006 by Dan.Oconnor Revise fix for archetype lookup when reinstancing. During compilation we do not want to force use of the up to date class #jira UE-54541 Change 3858990 by mason.seay Cleaned up blueprints to remove compile errors #jira UE-29618 Change 3858945 by Aaron.McLeran #jira UE-54265 PR #4428: Fixing Envelope Bug in AudioMixer (Contributed by Chrispykins) Change 3858719 by Aaron.McLeran #jira UE-54552 Fix for sample buffer reader Change 3858647 by Ethan.Geller PR #4439: Removes ambiX -> FuMa conversion (Contributed by mgorzel) #jira UE-54407 Change 3858364 by Michael.Dupuis #jira UE-52049: There was a case where adding and removing multiple time would lead to reordering the instances and this would cause the regeneration of the random stream for all the reorded instances. Change 3858268 by Dan.Oconnor Prevent postload logic running on REINST and SKEL classes #jira UE-54531 Change 3858205 by Mitchell.Wilson Removed particle looping from some emitters to resolve anim notify warnings. #jira UE-53823 Change 3858148 by Lauren.Ridge Changes based on Material Layer Feedback from previews - (Temporary) Disabled being able to create a layer or blend in the asset dropdown - Sections of the stack that have been disabled now inactivate that part of the UI - Create Function Instance now indicates if you are making a layer or a blend - Parent dropdown has been removed from layers and blends. Where relevant, a filter button has been added instead. #jira UETOOL-1328 Change 3857933 by Michael.Dupuis #jira UE-45854: Properly unregister callback when replacing foliage type with another one Change 3857898 by Michael.Dupuis #jira UE-54396: Remove the Ensure as it could be possible that the Landscape Info is invalid during an undo operation Change 3857878 by Max.Chen Sequencer: Assign the sequence id after the template is compiled. Copy from Dev-Sequencer #jira UE-54462 Change 3857808 by Michael.Dupuis #jira UE-54421: Prevent edition during Simulate when clicking on actor Change 3857786 by Rolando.Caloca UE4.19 - Fix recompute tangents and skin cache for OpenGL #jira UE-42108 PR #3271 Change 3857549 by Lina.Halper another jittering issue due to revision number change clear the motion vector after compile #jira: UE-53930 Change 3857439 by Lina.Halper Clear motion vector when end of sequencer when in editor world #jira:UE-54057 Change 3857384 by Graeme.Thornton Restore fix for visual studio source code accessor not correctly determining that a content project has no solution and opening a fresh instance of visual studio #jira UE-50020 Change 3856596 by Chris.Babcock Fix ResonanceAudioApi Android library architecture filtering #jira UE-54478 #ue4 #android Change 3856449 by Michael.Dupuis #jira UE-35097: Various cosmetic changes that were done in phase 2 that help improve clarity of the design. Change 3856415 by Dan.Oconnor Fix regression when loading instances that have had their class deleted. Issue detected by static analysis #jira UE-54467 Change 3856332 by Ben.Marsh Resaving TP_HandheldARBP assets to fix version again. #jira Change 3856319 by Ben.Marsh Back out changelist 3855588 Causes build failure in UFE because it introduces a dependency on the Engine module. UFE compiles with WITH_ENGINE = 0. #jira UE-54472 Change 3856292 by Ben.Marsh Fix app-local dependencies not being included in binary builds, and only working for code projects in source builds. #jira UE-54448 Change 3856190 by Martin.Wilson Fix bone access mismatch between raw mesh bones and final bones (that include virtual bones too) #jira UE-54266 Change 3856169 by Ben.Marsh Tag XGEControlWorker.exe as a build product, so it's included in the binary distro. #jira UE-54283 Change 3856123 by Chris.Babcock Fix missing ARCore file #jira UE-54453 #ue4 #android Change 3856005 by Richard.Wallis Clone of Dev-Rendering CL 3855993 - turn off FShaderCache. #jira UE-52928 Change 3855961 by Jian.Ru Copy 3855047 - fix DFAO Nan problem #jira UE-54403 Change 3855811 by Martin.Wilson Add build process for Maya Live Link plugin (standalone, manually triggered) + add built binaries to Engine/Extras (Maya 2016, Maya 2017, Maya 2018) #jira none Change 3855758 by Cosmin.Sulea UE-53569 - tvOS does not package or launch-on #jira UE-53569 Change 3855727 by Ben.Marsh Resaving assets with a versioned build in the editor, to fix warnings building DDC. #jira Change 3855626 by Adrian.Siminciuc https://jira.it.epicgames.net/browse/UE-50979 (MP4 doesn't resume playback when iOS 11 device wakes from sleep) #jira UE-50979 Change 3855588 by Graeme.Thornton Fix visual studio solution path being incorrect for content projects #jira UE-50020 Change 3855283 by Ben.Marsh Fix race condition where stdout/stderr write handles could be inherited by multiple processes, resulting in them not being closed (and the process exit being detected) until all processes that inherited them had been closed. Improves performance of ParallelExecutor. #jira Change 3855009 by Chance.Ivey Resaving with version number. #JIRA-54330 #rb none Change 3854943 by Dan.Oconnor Fix archetype lookup when searching hierarchy that has been partially reinstanced #jira UE-53840 Change 3854882 by Ryan.Vance #jira UE-54438 Removing vr related references to screen percentage. Removing previously removed gvr screen percentage code that came back in an integration from google. Change 3854806 by Mike.Beach Mirroring part of CL 3802176 to fix a crash that can occur when users try to use the default 'DisplayModel' on MotionController components. Also provided users a better error message to explain why a model might not be showing up. #jira UE-54214 Change 3854680 by Chance.Ivey Saving assets with version number#JIRA UE-54330 #rb none Change 3854652 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 3854605 by Dan.Oconnor Make sure we don't create objects outered to a placeholder object, also make sure that archetypes that are reinstanced on load are relinked in to the linker table so that they are postload'd (and the old instance isn't) #jira UE-53954 Change 3854274 by Brandon.Schaefer Changes in CL 3842286 changed the function glslang::GlslangToSpv and requires a rebuild on Linux #jira UE-54302 #codeview Arciel.Rekman Change 3854255 by Phillip.Kavan Fix a scoping issue for local instanced subobject references in nativized Blueprint C++ code. Also, don't emit redundant assignment statements for instanced subobject reference properties. - Mirrored from //UE4/Dev-Framework (3853349). #jira UE-53960 Change 3854177 by Ethan.Geller #jira UE-54415 set EnabledByDefault to false for Resonance Audio Change 3854123 by Ethan.Geller #jira UE-54410 set AudioComponentID Change 3853775 by Lauren.Ridge Minor cleanup #jira UE-54054 Change 3853772 by Lauren.Ridge Don't create widgets when just testing if the selected widget is a replacement candidate #jira UE-54054 Change 3853715 by Rolando.Caloca UE4.19 - Fix for OpenGL overwriting texture units #jira UE-54401 Change 3853655 by Ben.Marsh Add a retry loop on creating the first directory before copying files. Attempt to work around problems copying to shared folders. #jira Change 3853535 by Ben.Marsh Expose the engine compatible changelist to Perforce. If EnginePatchVersion > 0, this will be the changelist of the original .0 release. #jira Change 3852583 by Nick.Atamas Resaved assets so they don't produce DDC warnings. #jira none Change 3852552 by Uriel.Doyon Fixed Pre-Exposure shader compilation and Temporal AA issue. #jira UE-54276 Change 3852354 by Nick.Atamas Hopefully fixes the static analysis warning from jira issue. #jira UE-54332 Change 3852281 by Nick.Atamas Merging CL 3851690 from //Tasks/UE4/Dev-VR-4.19a/... to //UE4/Telease-4.19/... #jira UE-54331 Change 3852274 by Simon.Tourangeau Back out changelist 3851041 until Win7 issue is resolved. #jira UE-54354 Change 3852208 by Jamie.Dale Merging CL# 3821754 from //UE4/Dev-Enterprise Class property conversion now goes through NativizeClass/PythonizeClass This allows it to coerce from Python wrapped object types #jira none Change 3852202 by Jamie.Dale More explicit handling of EngineDir for Python SDK #jira UE-54345 Change 3851982 by Brandon.Schaefer Workaround using a hardcoded path #jira UE-54136 Change 3851748 by Michael.Dupuis #jira UE-53904: Put the code back to what it was before, as we really only want to perform this code if bIsLayerThumbnail is true, it was changed to fix another issue complaining about a missing shader, that end up being added to the existing functions Change 3851545 by Marc.Audy Remove debugging code that slipped in #jira none Change 3851461 by Ben.Marsh Fix #includes with backslashes from crashing UBT. #jira UE-53996 Change 3851391 by Jamie.Dale Updated Python to prefer our TPS SDK #jira UE-54345 Change 3851372 by Jamie.Dale Added bat file to copy the Python SDK into TPS #jira UE-54345 Change 3851218 by Ben.Marsh Add missing template to installed engine build. #jira UE-54339 Change 3851117 by andrew.porter QAGame: Removing duplicate map #jira UE-29618 Change 3851041 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3850548 by Ben.Marsh Add TP_HandheldARBP to installed engine build. #jira Change 3850424 by Ben.Zeigler Fix reported memory for asset registry to be correct, extracted from a larger change #jira none Change 3850324 by Ryan.Vance #jira UEVR-1050 Hook up the Rift dynamic res to the new IDynamicResolutionState framework Change 3849819 by JeanLuc.Corenthin Unhide Datasmith plugins in "regular" projects to allow easy project conversion #jira UEENT-795 Change 3849302 by Martin.Wilson Live Link is no longer experimental in 4.19 (moved from experimental folder to Animation) #jira none Change 3849238 by Max.Chen Sequencer: Remove bKeepStaleTracks so that stale tracks are now always purged. #jira UE-54248 Change 3849211 by Michael.Dupuis #jira UE-54181: Prevent foliage edition during PIE or simulate mode #coderevire jack.porter Change 3849123 by Benn.Gallagher Fixed crash in clothing actor creation when the clothing simulation mesh has no simulated vertices #jira UE-53741 Change 3849120 by Benn.Gallagher Fixed crash adding empty materials to destructible meshes in the destructible mesh editor #jira UE-53938 Change 3849047 by Jurre.deBaare Move material baking out of experimental #fix follow-up also remove the entry from experimental settings #jira UE-52685 Change 3848808 by Michael.Dupuis #jira UE-35097: Remove IncludeTessellationInShadowLOD & RestrictTessellationToShadowCascade from 4.19 as there is currently a bug regarding this in the dynamic rendering code path and would be too risky to fix for now. Fixed dynamic shadow code path issue vs static code path Change 3848659 by Lina.Halper Fix issue with animation resetting in the sequencer #jira: UE-54047 Change 3848635 by Rolando.Caloca UE4.19 - Fix static analysis #jira UE-50449 Change 3848515 by Sorin.Gradinaru Unshelved from pending changelist '3843541': WebBrowser Android crash on 4.4.3 #jira UE-53247 #Android #4.19 Crash on Android 4.x.x caused by a call to a Api Level 21 method Change 3848514 by Jurre.deBaare Moving over: CL 3832173 "Failed to import Alembic files #jira UE-53941 #fix Change Alembic thirdparty library setup - Removed old unused library files - Updated batch files for building HDF5 ILMBase and Alembic libraries to use new AlembicDeploy path - HDF5 is now build as a Dynamic library (which also enableds multi-threading) - Added DLLs for HDF5 to build.cs file CL 3838053 "Adding missing hdf5 dynamic libraries Change 3848245 by Ben.Marsh Downgrade warning about not using XGE shader compilation to a log message. Build machines do not have XGE. #jira UE-54237 Change 3847300 by Phillip.Kavan Fix shadowed local variable. #jira UE-54141 Change 3846922 by Max.Preussner ImgMedia: Fixed image media player never finished initialization if loading failed Copied from Dev-Sequencer CL# 3846902 #jira UE-54247 Change 3846831 by Arciel.Rekman Linux: only use lld for x86_64 (UE-54144). - lld support for other architectures seems to not ready for prime time. #jira UE-54144 Change 3846771 by Lauren.Ridge Material window now uses the background color set in preview scene. #jira UE-52215 Change 3846705 by Ben.Marsh Fix batch file paths not being quoted correctly when run through XGE. #jira Change 3846550 by Lauren.Ridge Toggling Show Background now updates the background as well #jira UE-52250 Change 3846417 by Matt.Kuhlenschmidt Fix crash resizing shootergame window #jira UE-53137 Change 3846295 by Rolando.Caloca UE4.19 - New Vulkan descriptor pooling mechanism (enabled on non-android) #jira UE-50449 Change 3846273 by tim.gautier QAGame: Updating Material Layer test assets to include more Params - Added temp assets, quicker repros for bugs #jira UE-54176, UE-54165 Change 3846255 by Lauren.Ridge Parameter tab is the primary tab for material instances #jira UE-54092 Change 3846086 by Chris.Babcock Add missing SecureHash.h include #jira UE-54026 #PR #4417 #ue4 #android Change 3846049 by Martin.Wilson Fix Set Root Motion Enabled Anim Data Modifier node (previously didn't set the enabled flag) #jira UE-54220 Change 3846033 by Martin.Wilson Fix root motion being repeatedly applied ( Clear() call only clears bHasRootMotion flag, not the transform itself ) #Jira UE-54219 Change 3845991 by andrew.porter QAGame: Updating bindings on activechannels sequencer test content #jira UE-29618 Change 3845933 by Lauren.Ridge Check for original material being valid #jira UE-54166 Change 3845920 by Martin.Wilson Optimized redundant key removal #jira UE-51303 Change 3845812 by Matt.Kuhlenschmidt Fix not being able to change BSP brush shape #jira UE-53738 Change 3845790 by Martin.Wilson Fix for assert failure when accumulating root motion in debug. #jira UE-53955 Change 3845730 by JeanLuc.Corenthin Fix build breakage warning: resaved disc.uasset with 4.19.0 preview #1 failure: set the correct default mesh for AreaLightStruct.uasset #jira none Change 3845693 by Lina.Halper Fix issue with previewing pose asset with curve data #jira: UE-53967 Change 3845533 by Andrew.Rodham Sequencer: Fixed sub sequences potentially being loaded during AddReferencedObjects #jira UE-54173 Change 3845472 by Thomas.Sarkanen Prevented debug object selection dropdown from displaying objects with pending kill outers #jira UE-54045 - Animation Blueprint Editor Crashes on Compile if the Debug Instance Selection is Other Than No Object or Preview Instance Change 3845401 by Yannick.Lange Reverting thumbnail capture from viewport. #jira UE-53775 #jira UE-53701 Change 3844693 by JeanMichel.Dignard Changed IES texture brightness to be the max candela value and set the texture multiplier to be 1. This fixes the IES lights intensity being too high. #jira UEENT-632 Change 3844689 by JeanLuc.Corenthin Update Datasmith content assets to latest Copying fix from Dev-Enterprise by Jean-Luc Corenthin CL 3809803 Updated assets with correct release version Cleanup some paths on static meshes and texture #jira UEENT-759 #jira UEENT-657 Change 3844571 by Martin.Wilson Fix motion controller motion source pin still showing when pin is connected to something #Jira UE-53236 Change 3844564 by Martin.Wilson Due to previously fixed bug some anim blueprint nodes could have duplicated guids, this fixes them #Jira UE-54174 Change 3844545 by Jamie.Dale No longer attempt to parse group separators for numeric inputs This avoids some ambiguity when parsing numbers for languages such as German #jira UE-54170 Change 3844221 by Nick.Shin HTML5 - filter out "windows/super" keys - these are not used in UE4 - but, keycode are not the expected "91 or 92" values, SDL keys are "227 & 231" instead... #jira UE-54056 HTML5 crashes inside browser upon pressing windows key Change 3843937 by JeanMichel.Dignard Fixed a crash when right clicking on a static mesh for which its AssetImportData class is currently unavailable (ie: in an unloaded plugin). #jira UEENT-764 Change 3843929 by Peter.Sauerbrei pull over fix for bad directory when copying launch images #jira UE-53177 Change 3843658 by Thomas.Sarkanen Text is red again in anim viewports #jira UE-53224 - Colouring removed from "Animation is being edited" warning messages Change 3843657 by Thomas.Sarkanen Enable picking via Enter for details panel asset pickers The previous (4.18) behavior was to only allow selection of the previous/next item in the list with arrow keys. A fix (CL 3783114) for pickers with many assets broke this. This change now allows for selection of any item by navigating with arrow keys and pressing Enter, as suggested in the Jira. #jira UE-53440 - Unable to select assets within modal Asset Selection dropdowns after navigating with keyboard entry Change 3843120 by Dan.Oconnor Avoid fixing component template games outside the editor, this logic does not work for games that have been nativized #jira UE-54009 Change 3842841 by Ben.Zeigler #jira UE-50020 Switch visual studio module back to using absolute paths so go to definition works, broken in CL #3796157 Change 3842582 by Lauren.Ridge Guards against the widget passed to scrollwidgetintoview being null #jira UE-54037 Change 3842575 by Max.Chen Sequence Recorder: Stop recording if the preview window is destroyed. #jira UE-49778 Change 3842551 by Michael.Dupuis #jira UE-35097: Minor bug fix, documentation, etc. to the landscape optim that was done in the phase 2 that have 0 risk. Change 3842371 by Max.Preussner Media: Merged 4.19 fixes from Dev-Sequencer CL 3807293 WmfMedia: Fixed YUY2 video format strides CL 3827988 MediaPlayerAssets: Fixed Media Texture is not linked to Media Player when created together CL 3805414 MediaAssets: Setting valid GUID when initializing media texture resource CL 3804183 MediaAssets: Added missing lock in media sound component CL 3831580 MfMedia: Media open events generated in same order as on other platforms CL 3807193 WmfMedia: Fixed incorrect buffer stride for RGB32 video tracks #jira UE-53532 #jira UE-53328 Change 3842356 by Max.Preussner ImgMedia: Fixed ensure when cooking project that uses ImgMediaSource #jira UE-51631 Change 3842335 by Aaron.McLeran #jira UE-54087 PR #4419: Fixes a crash due to nullptr dereference (Contributed by mgorzel) Change 3842286 by Rolando.Caloca UE4.19 - Fix for static analysis - Glslang 1.0.65.1 #jira UE-54128 Change 3842222 by andrew.porter QAGame: Updating framerate of EXR_Sequence #jira UE-29618 Change 3842211 by Ben.Marsh Fix determination of Windows version string. The manifest for UE4 applications declares compatibility with Windows 10 nowadays, so we get accurate version numbers returned from GetOSVersionInfo(). #jira UE-54035 Change 3842163 by Cosmin.Sulea UE-53303 - We do not check for remote connection before attempting remote shader compile, causing crashes when misconfigured #jira UE-53303 Change 3841770 by Max.Chen Sequencer: Fix to allow keying of an arbitrarily deep property path. #jira UE-54095 Change 3841758 by Max.Chen Sequencer: Fix unbound possessable components when pasting spawnables. #jira UE-54104 Change 3841415 by Lauren.Ridge Renaming a material layer or material layer blend will no longer cause the asset to appear removed from the stack #jira UE-53942 Change 3841327 by Arciel.Rekman Linux: fix Debug build (UE-53855) - A workaround. UBT should be using proper PCH files instead. #jira UE-53855 Change 3840975 by Rolando.Caloca UE4.19 - Updated VulkanRHI - Fixes for GPU frame time - Fixes for CPU performance #jira UE-50449 Change 3840838 by Michael.Dupuis #jira UE-53944: Make sure the LOD generated is in the valid range to prevent the crash Change 3840693 by Ben.Zeigler #jira UE-53923 Fix regression in 4.19 where PrintScriptCallstack is not always safe to call from the immediate window. I narrowed down the issue to some confusing optimized code so I turned off optimization Copy of CL #3840692 Change 3840680 by Aaron.McLeran Bringing fixes from Dev-AnimPhys to 4.19. #jira UE-53903 crash on load with oculus audio and old audio engine #jira UE-52786, UE-53910 Fix for broken spatialization on xaudio2, old audio engine. Change 3840663 by Rolando.Caloca UE4.19 - Fix for layout ensure on HMD projects on Vulkan #jira UE-50265 Change 3840577 by Rolando.Caloca UE4.19 - Fix for CPUs with more than 16 cores #jira UE-53434 Change 3840551 by andrew.porter QAGame: Setting Allow Bindings from Asset to false #jira UE-29618 Change 3840491 by Ben.Zeigler #jira UE-31662 Fix regression with renaming parent inherited function. It was not correctly searching the parent's skeleton class during the child's recompile so it was erroneously detecting the parent function as missing Copy of CL #3840489 Change 3840297 by Max.Chen Sequencer: Fix copy/paste crash for lights #jira UE-54084 Change 3840284 by Michael.Dupuis #jira UE-53053: Was having a mismatch between the remove reorder and the actual remove Change 3840215 by Sorin.Gradinaru Unshelved from pending changelist '3812852': UE-53550 Level doesn't render on Lenovo 939 UE-53592 Assertion right after rendering scene on Lenovo S939 #jira UE-53550 #jira UE-53592 #4.19 #Android UE-53550 Removed force disabling texture2DLodEXT and textureCubeLodEXT on Mali-400 devices The problem was that the shader compiler complains about code lines before the #extension directives. Placeholder // end extensions in the original shader code - to be replaced with round() functions UE-53592 Always use a new task for devices that have GIsThreadedRendering=false, even when the call is from the rendering thread Change 3840048 by Michael.Dupuis #jira UE-52975: Was always performing the equivalent of an Add, so now we use the Transform during the duplicate Change 3840005 by Richard.Wallis Clone of CL 3835252 Fix for shader library not working with iterative cooking, also fixes native Metal library not working with iterative cook. This works by saving a "backup" of the shader library file - this is reloaded only during iterative cook and adds back in shaders that are missing from the current cook. Fix for extracting/searching .metal files in different directories so debug tgz archiving wasn't working correctly and also support iterative cook. Includes first pass code review suggestions by Mark Sat and Dmitriy Dyomin. #jira UE-53815 Change 3839968 by Michael.Dupuis #jira UE-52289: When OnRegister is called on the component make sure our PerInstanceRenderData is up to date Prevent a possible crash if ClearInstanceSelection was called on a component with no PerInstanceRenderData existing ##codereview jack.porter Change 3839924 by Richard.Wallis Clone of CL 3838093 Fix for rewind / seek bugs in AvfMediaPlayer. - Don't initialise and send audio buffers that have a duration of Zero from the audio tap. This chokes the audio sink and adds overhead we don't need. - Don't faff around with current play rates during loop operation - normal seek doesn't do this so loop seek shouldn't either. - SetRate() should not required to be passed to media tracks - should be enough to do this on audio track select only. #jira UE-54019, UE-53027 Change 3839321 by andrew.porter QAGame: Adding missing bookmark to QA-Sequencer_Blending #jira UE-29618 Change 3839286 by Marcus.Wassmer Duplicate CL: 3823296 #jira UE-52784 Change 3839229 by Brandon.Schaefer Fix audio clean up crash when exiting PIE #jira UE-54050 #review-3839109 @Arciel.Rekman, @Aaron.McLeran Change 3839223 by andrew.porter QAGame: Rebinding pointlight actor to sequences #jira UE-29618 Change 3839098 by andrew.porter QAGame: Fixing missing sequencer blending test content #jira UE-29618 Change 3838919 by Mike.Erwin glTF: binary format's BIN chunk is not necessarily right after the JSON chunk. Discussed this with glTF spec authors. See https://github.com/KhronosGroup/glTF/issues/1177 Rearranged how we read "chunks" from the file since they are not fixed in number or order, besides JSON always being first. #jira UE-50695 Change 3838909 by Mike.Erwin glTF: base64 decoding of data buffers and images Data can be encoded inside the glTF JSON as a Base64 data URI. This CL addresses a known limitation of initial commit CL 3793018. I added this after because base64 is expected to be uncommon in the wild. Authoring software will typically use external BIN files (.gltf) or a BIN chunk (.glb) to store data. #jira UE-50695 Change 3838812 by Uriel.Doyon Integrated CL 3838576, 3838581 and 3831760 from DevRendering, fixing issues with texture streaming. #jira none Change 3838773 by Lauren.Ridge Fixing material layer filters #jira UE-54064 Change 3838748 by Michael.Trepka Fixed EngineTest runtime warning caused by CL 3838626 #jira UE-53893 Change 3838730 by Max.Chen Sequencer: Add notification when the blend type is changed. #jira UE-54046 Change 3838626 by Michael.Trepka Changed FMacMenu to store MultiBox and MenuEntryBox as weak pointers instead of shared pointers. This way we avoid a situation where FMacMenu would try to release them on the main Cocoa thread or where we'd try to execute a menu action for menu items that Slate considers released. #jira UE-53893 Change 3838392 by Arciel.Rekman Fix assert on a policy removal (UE-54042). - Applying Gil's safe fix which just sweeps the problem under the rug. #jira UE-54042 Change 3838162 by Arciel.Rekman Linux: fix crash due to lambda lifetime issues (UE-54040). - The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+). #jira UE-54040 (Edigrating 3819174 to Release-4.19) Change 3838156 by Rolando.Caloca UE4.19 - Support for Vulkan devices that have no cached memory type #jira UE-54039 Change 3838096 by Brandon.Schaefer Set sound to unfocused volume multiplier if not focused #jira UE-51327 #review-3835736 arciel.rekman Change 3838087 by Brandon.Schaefer Fix arm server building. A fix from CL 3617084 remove inheriting from IHeadMountedDisplayVulkanExtensions. Remove overrides #jira UE-53901 #review-3838088 arciel.rekman Change 3837072 by Phillip.Kavan Fix for a build failure that could occur with Blueprint nativization enabled and EDL disabled. This was a regression introduced in 4.18. - Mirrored from //UE4/Dev-Framework (3836768). #jira UE-53908 Change 3837071 by Phillip.Kavan Emit proper syntax for set/map fields containing converted assets to generated C++ Blueprint class headers when Blueprint nativization is enabled. - Mirrored from //UE4/Dev-Framework (3835944, 3835965). #jira UE-42614 Change 3837070 by Phillip.Kavan #4202 - Blueprint nativization bug fixes (PR). - Mirrored from //UE4/Dev-Framework (3830562, 3832292). #jira UE-52188 Change 3836507 by Ryan.Vance #jira UE-53992 Due to hijacking the depth target directly from the scene context, we can't support depth compositing if it's being scaled by screen percentage since it wont match our color render target dimensions. Change 3836390 by Dan.Oconnor Fix failure to resolve archetype when using the compilation manager #jira UE-53840 Change 3836251 by Ryan.Vance #jira UE-53992 Change 3835852 by Mark.Satterthwaite 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 3835802 by JeanMichel.Dignard UBT changes for Enterprise deployment - Allow building enterprise against an installed engine version - Added enterprise to the cleanup process if its not installed #jira UEENT-748 Change 3835625 by Bogdan.Vasilache UE-50257 --> (Skeletal meshes silently fail to render if they have more than 75 bones) --> changed logged error with a warning #jira UE-50257 Change 3833649 by Mike.Beach Enabling debug layer when multiview is enabled. #jira UE-49954 Change 3833525 by Ethan.Geller Fix copyright in ActiveSound.cpp #jira none #rb none Change 3642649 by Stewart.Lynch Renamed loctext key to stop it clashing with an existing entry #jira UE-49432 Change 3644762 by Stewart.Lynch LLM update: Added Total, Untracked and FMalloc Unused to LLMFULL stat page. Fixed occasionally missing allocs/frees. Removed platform csv. * removed CheckSize arg from OnLowLevelFree * show a warning in LLM Map when replacing existing value. This means that there has been an alloc/free mismatch. * minor optimization in LLMMap::GetMaxIndex - cache Mask value * added Total and Untracked stats to LLMFULL. LLMFULL now tracks almost all of the memory that LLMPlatform does, so there is no real need to use LLMPlatform. Removed the LLMPlatform csv. * added FMalloc Unused stat to LLMFULL to account for memory Binned2 has allocated internally. This can be used to track Binned2 fragmentation over time. * renamed Binned stats to FMemory to make it more general * added Default tracking to CustomVirtualAlloc and disable it where necessary. This catches the few VirtualAlloc calls that were missed. * added AllocType arg to all allocation tracking. This was needed in order to track the FMalloc total, and also to fix the pausing * fixed a bug in pausing where alloc/frees were being missed. Now only pauses a specific allocation type. * Trackers now maintain totals for each enum tag * tracking of Texture and mesh allocation on Windows D3D11 & D3D12 Change 3651334 by Joe.Barnes Fix misspelled function name. #jira 39441 #3016 Change 3653857 by Ben.Woodhouse Integrate from //UE4/Main/...@3653675 to //UE4/Dev-Console/... Change 3656553 by Joe.Barnes Add path for SCS_DeviceDepth. Change 3662703 by Ben.Woodhouse Merging CL 3659069 from //Fortnite/Main/... to to //ue4/dev-console/...: [FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame. - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe. - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency. Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup. A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index. In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread. [~] Unified platform specific sync interval CVars into one: rhi.SyncInterval - 1 == 60Hz - 2 == 30Hz - 3 == 20Hz Change 3675239 by Keith.Judge Fixed thread priorities for Windows so that BelowNormal and SlightlyBelowNormal are the same. Bumped Lowest down a notch so they all fit. #jira UE-50626 Change 3676709 by Ben.Woodhouse Integrate from //UE4/Main/...@3675008 to //UE4/Dev-Console/... Change 3689712 by Ben.Woodhouse Integrate from //UE4/Main/...@3687781 to //UE4/Dev-Console/... Change 3701778 by Ben.Woodhouse Integrate from //UE4/Main/...@3699491 to //UE4/Dev-Console/... Change 3677043 by Ben.Woodhouse From StewartL: I also found that on Windows Fortnite is overflowing int32 values due to the number of allocations. I changed LLMArray and LLMMap to use uint32 and it seems to be Ok now. I didn't want to check this in at the last minute, so here's the shelf: 3645336 Change 3726532 by Luke.Thatcher [CONSOLE] [~] Enable XGE shader compilation by default. - Also set XGE mode to "force interception". With XGE on by default, we don't want people with an old Incredibuild version using the old system inadvertently. Change 3726554 by Luke.Thatcher [CONSOLE] [+] Improved Scoped Named Events - Added SCOPED_NAMED_EVENT(_FSTRING/_TEXT/_F) macros to allow use of string literals, FString and printf in scoped named event strings. - Replaced explicit use of FPlatformMisc::Begin/EndNamedEvent throughout the engine with macros, so the events can be compiled out. - Fixed performance issues on various platforms with named events. SCOPED_NAMED_EVENT macros were not considering whether the platform uses wide or ansi char strings. Change 3751378 by Ben.Woodhouse Integrate from //UE4/Main/...@3748735 to //UE4/Dev-Console/... Change 3751812 by Ben.Woodhouse Integrate from //UE4/Main/...@3750870 to //UE4/Dev-Console/... Change 3728571 by Luke.Thatcher [CONSOLE] [!] Drop another XGE controller warning to log. Change 3747150 by Joe.Barnes Add AuthoringToolHelper.bat file to installed build copy list. Change 3768585 by Ben.Woodhouse Integrate from //UE4/Main/...@3767531 to //UE4/Dev-Console/... Change 3772333 by Ben.Woodhouse Integrate from //UE4/Main/...@3771573 to //UE4/Dev-Console/... Change 3786872 by Ben.Woodhouse Integrate from //UE4/Main/...@3786785 to //UE4/Dev-Console/... Change 3787279 by Luke.Thatcher [CONSOLE] [~] Unified present threshold CVars. - CVars are now in RHIUtilities.cpp, and are renamed to rhi.PresentThreshold.Top and rhi.PresentThreshold.Bottom. - Platform implementations will be checked in shortly. Change 3787445 by Luke.Thatcher [CONSOLE] [^] Merging (as edit) improvements to low-latency frame syncing from //Fortnite/Main to //UE4/Dev-Console Original CLs - 3708949 - Added rhi.SyncSlackMS cvar to allow an offset of the game thread sync time by a number of milliseconds. - 3712693 - Fix for crash on startup in new frame syncing. - 3735765 - Fix r.GTSyncType logic when vsync is disabled (falls back to old behaviour when vsync is off). Change 3788417 by Ben.Woodhouse Duplicate from FN CL 3712515 CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3807818 by Ben.Woodhouse Integrate from //UE4/Main/...@3803271 to //UE4/Dev-Console/... Change 3818577 by Ben.Woodhouse Integrate from //UE4/Main/...@3812936 to //UE4/Dev-Console/... Change 3821198 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820127 to //UE4/Dev-Console/... Change 3821519 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820753 to //UE4/Dev-Console/... #robomerge none Change 3813513 by Ben.Woodhouse CSV profiler refactor+ bug fix - Move the CSV profiler to core, so we can use it in modules other than engine - Profiler no longer enqueues RT commands - this is handled by a new core delegate type - Make begin/end requests more robust, enqueued via a command queue and processed in order - Defer end capture requests by a frame. This ensures stats on threads other than the gamethread (e.g. renderthread etc) are complete, so the last frame is not truncated - Fix long-standing bug with multiple captures where old/stale frames would appear in the first <128 frames of captures - Move unit stats and dynamic resolution out of the profiler itself and into the engine. Only frametime is recorded in the profiler now - Fix longstanding bug in first frame renderthread time in the engine Change 3814039 by Ben.Woodhouse More Csvprofiler improvements - Event support (via CSV_EVENT macros). These appear in the "EVENTS" column of the CSV and can be used to add context to the stat data - Reduced memory overhead for timestamps through bit-packing (now 16 bytes per marker instead of 24), and splitting stats into different types Change 3814041 by Ben.Woodhouse Integrate as edit CL 3796390 from Fortnite/Main: Fix CsvProfiler not compiling in shipping for now Change 3814229 by Ben.Woodhouse Integrate + refactor of CL 3792591 to reduce complexity and fix bugs Original changelist description: CSV profiler improvements: - The CSV profiler is now always compiled in on the server - The CSV profiler can now handle both int32 and float stats - In BeginCapture, the function can take additional arguments for some customization of filenames Fixes to the above: - Remove FCustomValue class - Fixes bug where all timestamp values from CSV_SCOPED_STATs were garbage (due to issues resulting from FCustomValue type ambiguity when adding values together) - FCsvCustomStat now just uses simple union + bitfield flag to reduce size and complexity (4 bytes instead of 8 per value) - FCsvColumn class modified to use doubles, which can represent both ints and floats without loss of precision - this class is not memory or time critical - Replace multiple overrides used by the server for filenameprefix/folder/postfix etc with a single FilenameOverride Change 3814242 by Ben.Woodhouse Disable CSV unit stats on the dedicated server Change 3817339 by Ben.Woodhouse Duplicate from 3816641: CSV profiler improvements - Added a low-pri processing thread to compress raw timing data into a much more efficient format - Reduces memory usage for 15 minute 30k frame capture with GPU stats enabled from 110MB to 3.4MB - Processing time : 0.1ms per frame - Improved name handling for char literal stats. We now use the string as the ID rather than the pointer so multiple stat uses of the same name string apply only to a single stat - Reworked thread data access to eliminate locking for anything time-critical. Frame boundaries now handled via a lock-free helper class - Fixed bug with queue implementation where 1 in 128 reads would duplicate the last block of stat data - Reduced #include dependencies for CSVProfiler.h - Removed AccumulateMax because it doesn't work, and implementing properly would add a lot of complexity - Added a simple test harness Change 3817582 by Ben.Woodhouse Fix android compile warning Change 3823242 by Ben.Woodhouse Integrate as edit from Fortnite/Main 3820067: Fix threading issue with D3D12 pipeline state caches for windows. This was caused by the usage of FRwScopeLock::RaiseLockToWrite. A pointer read before RaiseLockToWrite was called was invalidated because RaiseLockToWrite has to release the read lock before acquiring the write lock. Rename FRwScopeLock::RaiseLockToWrite to ReleaseReadOnlyLockAndAcquireWriteLock_USE_WITH_CAUTION to make it more explicit what's happening. As the comment says: // This function should be used with caution. // It releases the read lock _before_ acquiring a new write lock. This is not an atomic operation and the caller should // not treat it as such. // E.g. Pointers read from protected data structures prior to this call may be invalid after the function is called. Change 3823840 by Ben.Woodhouse Edigrate from 3823816 Fix an issue where the csvprofile console commands would sometimes result in an empty CSV. The root cause was GFrameNumber incrementing between the console command being read and FCSVProfiler::EndFrame(). We now use our own frame counter which is updated in EndFrame, so this can't happen Also fix an issue where calling csvprofile stop twice would cause all further commands to be ignored. Change 3827787 by Ben.Woodhouse Integrate-as-edit CL 3820678 from Fortnite/Main Allow the CSV Profiler to be compiled in to shipping dedicated server builds Change 3827842 by Ben.Woodhouse Integrate-as-edit CL 3827079 from Fortnite/Main CSV profiler category support Change 3827918 by Luke.Thatcher [CONSOLE] [!] Fix compile error in CSV custom stats. Change 3827964 by Luke.Thatcher [CONSOLE] [!] Fix inverted logic and spelling of boolean. - Functionally, the boolean did the correct thing, but the logic was backwards inside the build tool. Change 3831661 by Ben.Woodhouse Integrate-as-edit CL 3830630 from Fortnite/Main Fix CSVProfiler assert in dev builds on XB1 Change 3860300 by Joe.Barnes Use same method for src and dest rect calculation as other post processing passes so rects match between passes. Prevents read of unprocessed pixels. Change 3860347 by Joe.Barnes Delete existing SourceConfigFile before allocating a new one to prevent them leaking. Change 3860348 by Joe.Barnes Completely encapsulate GetLLMAlloc() in #ifdef. Change 3861772 by Ben.Woodhouse Integrate-as-edit CL 3861688 from Fortnite/Main: Forward lighting GPU crash fixes Change 3861774 by Ben.Woodhouse Integrate as edit CL 3833918 from dev-rendering (courtesy of DanielW): D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC. 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 3862214 by Ben.Woodhouse Integrate-as-edit CL 3859637 from Fortnite/Main Dynamic resolution console tweaks - Dynamic resolution high level switch driven by a cvar instead of code - Disable user settings dynamic resolution handling on non-desktop platforms. DynamicRes as a user setting does not make sense on consoles/mobile - we'll drive it from device profiles/scalability - Modify naming of GPUHeadRoom to make it clear that it's a percentage, not millseconds Change 3863919 by Ben.Woodhouse [Copy] Integrate console dynamic resolution interface changes from CL 3863354, 3862754, 3862639 Change 3864347 by Ben.Woodhouse Fix the editor build. This will need a proper fix before 4.19 ships. #lockdown Nick.Penwarden #rb none [CL 3913399 by Ben Marsh in Main branch]
2018-02-27 17:30:35 -05:00
{
const FStaticMeshBatchRelevance& MeshRelevance = StaticMeshRelevances[MeshIndex];
OutMinLOD = FMath::Min(OutMinLOD, MeshRelevance.LODIndex);
OutMaxLOD = FMath::Max(OutMaxLOD, MeshRelevance.LODIndex);
Copying //UE4/Release-Staging-4.19 to //UE4/Dev-Main (Source: //UE4/Release-4.19 @ 3873914) ============================ MAJOR FEATURES & CHANGES ============================ Change 3873906 by Dan.Oconnor Revised fix for preventing delegate functions from appearing in context menu when using the compilation manager - needed to run after CallDelegateHandler changed statement type #jira UE-51726 Change 3873614 by Dan.Oconnor Prevent delegate functions from appearing in context menu when using the compilation manager and prevent crash if such a function is somehow compiled #jira UE-51726 Change 3873428 by Ben.Zeigler #jira UE-54753 Fix class pin on SpawnActorFromClass to correctly support browse. It was inherting from the wrong pin widget Copy of 3873408 Change 3873083 by Ethan.Geller [4.19]#jira UE-54865 fix seconds -> milliseconds conversion issue. #rb aaron.mcleran #lockdown cristina.riveron Change 3872714 by Dan.Oconnor Further revise fix for UE-53840, mistakenly reverted to old behavior when compiling synchronously #jira UE-53840 Change 3872648 by Ben.Zeigler #jira UE-54845 Fix crash in NextDebugTarget when there are no valid debug targets Copy of CL #3872636 Change 3872500 by Arne.Schober Back out changelist 3870283 #jira UE-54838 Change 3872412 by Mark.Satterthwaite Remove now unnecessary r.Metal.ManualVertexFetch from the device profiles. #jira UE-54853 Change 3872313 by Martin.Wilson Add UI to Live Link Client to warn live link users about background performance throttling #jira none Change 3872272 by Martin.Wilson Fix crash when clearing a skeletal mesh on a skeletal mesh component with an active Post Process Anim Instance #jira none Change 3872238 by Mark.Satterthwaite Duplicate CL #3871025 Make Manual Vertex Fetch a property of the shader platform for Metal - only the desktop platforms (METAL SM5/SM5_NoTess/MRT) will use manual vertex fetch. The mobile platforms use vertex descriptors. Prevents problems with cooked versions of games not working properly on Metal due to a mismatch between the runtime's Manual-Vertex-Fetch state versus the state used by the cooker when compiling shaders. #jira UE-54843 Change 3872087 by Yasiman.Ahsani Adding Python, libdisasm, musl, and LSS licenses. #JIRA n/a - adding licenses for new TPS Change 3872037 by Ben.Marsh BuildGraph: Add a task for compiling MSBuild projects. #jira Change 3871934 by Lina.Halper #jira: UE-54703 Change 3871595 by Michael.Trepka Fixed a problem with Mac editor not exiting with error code returned from GuardedMain function #jira UE-54830 Change 3870829 by Joe.Barnes Fix unintentional change to PhysX libs used in Debug builds. #jira ue-54817 Change 3870820 by Nick.Atamas Copying //Tasks/UE4/Dev-VR-4.19a@3870772 to Release-4.19 (//UE4/Release-4.19) #jira UE-54816 Change 3870755 by Chance.Ivey Min Android version set - should fix camera permissions issue found in #JIRA UE-54024 #rb none #fyi nick.atamas Change 3870547 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 3870546 by Krzysztof.Narkowicz Fixed tesselation shader tex/uniform initialization in OpenGL3/4 path #jira UE-54471 Change 3870284 by Ben.Zeigler #jira UE-54583 Fix issue where loading multiple already loaded assets via Async Load Asset node could return the wrong asset on the loaded pin. The assign variable node was happening at a slightly wrong time Copy of CL #3870279 Change 3870283 by Arne.Schober 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 #jira none Change 3870098 by Ben.Marsh Fix OptimizeCode = CodeOptimization.Always causing compile errors in Linux debug builds. bUseInlining was not set correctly on the global compile environment used to build shared PCHs. Also fixed other settings not being propogated down from the target correctly. #jira UE-53855 Change 3870013 by Ben.Marsh UBT: Add an error if a user attempts to clean a target through hot-reload, rather than just failing to delete DLLs because they are locked. #jira UE-54179 Change 3870010 by Ben.Marsh UBT: Add an option to format output messages in a form that can be parsed by MSBuild. Prevents errors showing as "EXEC: Error:", and displays them correctly in the error list window. #jira Change 3869814 by Ben.Marsh UBT: Unify command line arguments to use -Name=Value syntax. -Module <Name>, -ModuleWithSuffix <Name> <Suffix>, -Plugin <Path> and -Receipt <Path> are no longer supported. Also remove the RemoteRoot option, which was not used anywhere. #jira Change 3869786 by Martin.Wilson Fix Live Link Remove Source button not working #Jira UE-54652 Change 3869660 by Martin.Wilson Fix missing message bus sources in the live link client (not repolling for new sources) #Jira UE-54712 Change 3869659 by Guillaume.Abadie Fixes SimpleComposure's BP_AdvancedCompositing keep allocating memory every frame. Credits for fixing the issue to Ron Radeztsk. #jira UE-54780 Change 3869401 by Lauren.Ridge Adding to the conditional in FindAllAncestorNamedSlotHostWidgetsForContent #jira UE-51470 Change 3869384 by Brandon.Schaefer Open the project in the explorer when NullSourceCodeAccess is done creating the project #jira UE-54630 Change 3869308 by Ben.Marsh PR #4452: Fixed FindFilesRecursively in IPlatformFilePak (Contributed by user37337) #jira UE-54568 Change 3869265 by Martin.Wilson Fix crash and subsequently found issues with unloading/reloading Maya Live Link plugin -Crash on reload due to core code getting reinitialize, made this a one time only thing (as Maya never gets rid of the module from memory) -Added manual ticking of FTicker, allows message bus objects to be cleaned up properly (cannot do this as part of normal flow as it is in engine code which we dont have) -rebuild binaries for Engine/Extras #Jira UE-54643 Change 3869206 by Benn.Gallagher Fixed crash updating clothing paint mode after tab spawners have been destroyed by the hosting application. #jira UE-54116 Change 3869064 by Benn.Gallagher Resolved skeletal mesh data changes and clothing section disable changes after collision. Re-added ability to disable sections at the mesh level and removed the ability to strip editor sections as these are required for a number of other features to correctly function. #jira UE-52557 Change 3869062 by Guillaume.Abadie Fixes "dynamic resolution is not supported on this platform" warning message being always visible. #jira UE-54655 Change 3868202 by Lauren.Ridge Fix for assert on expanding vector param in layered material #jira UE-54737 Change 3868161 by zak.parrish Replacing FaceARDebugUI with a blank UI until a new one can be created, due to a crash bug. #rb none #JIRA UE-54639 Change 3867750 by Ethan.Geller [4.19] #jira UE-54725 Fix for Envelope attack and release values not being properly set on Synth Components #rb aaron.mcleran #lockdown cristina.riveron Change 3867657 by Lauren.Ridge Adding if with editor wrapper to new function #jira cis fix Change 3867646 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867340 by Lauren.Ridge Fixes to Material Layers from 4.19 preview feedback -Need to pass through base attributes better/have better default nodes in layer (optional Example Layers and Blends checkbox now enables this in Experimental Settings) -Parent in function should be editable -Enforce only two layers in a blend -Mat layer should warn if it has incorrect output in the layer itself -Enforce not being able to delete outputs -Warn about creating a MAL node inside a function #jira UETOOL-1312 Change 3867317 by Aaron.McLeran #jira UE-53867 Access violation on Switch when playing sound with specified time out of range Change 3867000 by Lauren.Ridge Fix for folder favorites possibly becoming very large #jira UE-54704 Change 3866892 by Martin.Wilson Fix crash if clicking ok on message bus add source without having a source selected #jira UE-54572 Change 3866391 by Matt.Kuhlenschmidt Fix static analysis #jira UE-53379 Change 3866241 by Ryan.Vance #jira UE-54681 Fixed missing Vulkan texture GetNativeResource implementation that was lost in a bad merge. Change 3866071 by Nick.Shin UDN 412414 update HTMl5 readme file #jira none Change 3866005 by Max.Preussner Messaging: Preventing dangling references when removing message subscribers #jira UE-54680 Change 3865988 by Simon.Tourangeau Fix static analysis warnings #jira none Change 3865895 by zachary.wilson Renaming QA-PhysicalLightUnits to TM-PhysicalLightUnits in QAGame. #JIRA UE-29618 Change 3865469 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3865461 by Chris.Babcock Add a wait for audio thread to pause audio on going to background #jira UE-54301 #ue4 #android Change 3865350 by Matt.Kuhlenschmidt Fix issue where cascade emitter UI would disapper #jira UE-53379 Change 3865336 by Arne.Schober REL - Fix UE-52356 Bone Weight #jira UE-52356 Change 3865257 by Ben.Marsh Fix editor failing to load content-only projects when compiled in DebugGame. #jira UE-54661 Change 3865238 by Simon.Tovey Pulling Olaf's fix from 3832595 over to release #tests EngineTests boots in vulkan #JIRA UE-54394 Change 3865191 by Sorin.Gradinaru UE-54317 DXT apps fail on first launch when 'For Distribution' enabled, Unsupported Texture Format #jira UE-54317 #Android #4.19 From //Dev-Mobile/3863322 Change 3865190 by Sorin.Gradinaru UE-54175 Selecting For Distribution no longer sets configuration to Shipping #UE4 #4.19 #jira UE-54175 From //Dev-Mobile/3863371 "For Distribution" enable-> reset "Build COnfiguration" to Shipping and force serialization to DefaultGame.ini (see UE-52845) Change 3865056 by Jamie.Dale Fixed culture being incorrect when added via the Localization Dashboard #jira none Change 3864826 by Max.Preussner WmfMedia: Added missing scope lock #jira UE-54365 Change 3864055 by Aaron.McLeran #jira UE-54213 Crash fix for GC'd plugin settings objects. Adding to AddReferencedObjects. Change 3863775 by Andrew.Porter MediaFrameworkTest: Removing Platform Media Source TVOS test content #jira UE-29618 Change 3863714 by Dan.Oconnor Make array, set, and map nodes no longer switch object type when a pin is disconnected. Also, you can no longer attach unrelated map types to the MakeMap node if only the value pin has been inferred #jira UE-54634 Change 3863696 by Max.Chen Sequencer: Fix crash open a new sequence while another is still active. #jira UE-54620 #jira UE-54624 Change 3863638 by Dan.Oconnor Make sure all blueprints that are skeleton compiled get a BroadcastChanged notification, also run BroadcastChanged after reinstancing, matching pre compilation manager behavior #jira UE-54193 Change 3863494 by Jamie.Dale Ensure Py_SetPythonHome is set correctly before the embedded Python interpreter is initialized #jira UE-54345 Change 3863433 by Max.Preussner MediaPlayerEditor: Removed tvOS from list of available platforms in Platform Media Source assets tvOS currently reports itself as iOS, so it cannot have its own setting. #jira UE-54559 Change 3863406 by Lauren.Ridge Fix for a crash when filtering a dropdown with no set value #jira UE-54631 Change 3863238 by Michael.Kirzinger #jira UE-52730: Fix mac voip crash Change 3862586 by Marc.Audy Clean up rendering thread heartbeat checks that got mangled in various integrations #jira Change 3862247 by Guillaume.Abadie Fixes editor lines that were using a simple element blending mode that was generating an incorrect alpha channel. #jira UE-53830 Change 3862120 by Guillaume.Abadie Fixes USceneCaptureComponent::HiddenActors always staying gray out in world editor. #jira UE-51458 Change 3861363 by Jamie.Dale Static analysis fixes #jira none Change 3861150 by Matt.Kuhlenschmidt Fix static mesh editor displaying 0 for all stats on LODs > 0 #jira UE-53776 Change 3860990 by Dan.Oconnor Clear subobjects not recreated on load, e.g. because we're running with -game and the subobject was created using CreateEditorOnlySubobject #jira UE-54551 Change 3860972 by Nick.Shin HTML5 - detect "SyntaxError: " and do a forced reload - an actual syntax error would be caught during compile time - this is usually error condition is usually seen when browser is running "old/partial" cached data and it's fairly safe to just reload the page #jira UE-54017 QAGame fails to launch properly on HTML5 Firefox 64 bit Change 3860951 by Arne.Schober Fix not releaseing SRV on render thread for FPositionVertexBuffer, FStaticMeshVertexBuffer, FColorVertexBuffer, FStaticMeshInstanceBuffer. #jira UE-54587 Change 3860950 by tim.gautier QAGame: Updating ML_Stone to include Texture Coordinate and Panner functions #jira UE-29618 Change 3860833 by Michael.Dupuis #jira UE-54181: Repopulate the foliage list when existing simulate mode Let the GC know that internal struct hold UObject ptr Change 3860762 by Jamie.Dale Ensure we invoke the correct version of Python from UBT #jira UE-54345 Change 3860676 by Simon.Tourangeau Remove DirectoryWatcher warning in output log #jira UEENT-846 Change 3860598 by Lauren.Ridge Fix for crash on opening new material instance #jira UE-54589 Change 3860338 by Michael.Lentine Integrate changes for fixing MorphTargets. #jira 54398 Change 3860215 by Ben.Marsh UAT: Fix exception consturcting target rules assembly inside UAT, now that there's an abstract TargetRules class. #jira UE-54578 Change 3860186 by Matt.Kuhlenschmidt Fix crash top 10 with the font editor shutting down and then a dpi event occuring #jira UE-54543 Change 3859854 by Graeme.Thornton PR #4124: VSCode: Changed VisualStudioCodeSourceCodeAccessor to work with non-default VSCode install paths on Linux (Contributed by christopherreed) #jira UE-51289 Change 3859848 by Graeme.Thornton Fix crypto.cs reading the wrong ini setting names for uasset encryption settings #jira UE-54566 Change 3859684 by Ben.Marsh PR #4436: Fix compile error when building BlankProgram because incorrect directory path (Contributed by windkey) #jira UE-54392 Change 3859657 by Ben.Marsh Fix FTransform being passed by value, causing alignment error when compiling for Win32. #jira Change 3859312 by nick.bullard Updating AEOverviewMan to remove reference to sub-level AEOverviewSWP which was deleted in 3859278 Still need to update menu to remove selection #jira UE-50784 Change 3859278 by Nick.Bullard Deleteing AEOverviewSWP.umap per request of Developer. Also updated TM-AnimPhys which refereneced this map as well. "This test map is a custom C++ implementation of a "procedural sound wave". This code is super janky and not worth fixing up. I'm sure there's a legit thread safety problem in there but the code is in QAGame only. We've since implemented "synth components" which do what this test does in a much safer/better way and maintaining/testing this old thing is *not* worth the time." #jira UE-50784 Change 3859124 by Dan.Oconnor Fix long standing crash when duplicating a blueprint that is missing its parent class. Entries in CrashReport go back to 4.16 #jira UE-54468 Change 3859086 by Ryan.Vance #jira UE-54470 We need to set the viewport in both cases. Change 3859006 by Dan.Oconnor Revise fix for archetype lookup when reinstancing. During compilation we do not want to force use of the up to date class #jira UE-54541 Change 3858990 by mason.seay Cleaned up blueprints to remove compile errors #jira UE-29618 Change 3858945 by Aaron.McLeran #jira UE-54265 PR #4428: Fixing Envelope Bug in AudioMixer (Contributed by Chrispykins) Change 3858719 by Aaron.McLeran #jira UE-54552 Fix for sample buffer reader Change 3858647 by Ethan.Geller PR #4439: Removes ambiX -> FuMa conversion (Contributed by mgorzel) #jira UE-54407 Change 3858364 by Michael.Dupuis #jira UE-52049: There was a case where adding and removing multiple time would lead to reordering the instances and this would cause the regeneration of the random stream for all the reorded instances. Change 3858268 by Dan.Oconnor Prevent postload logic running on REINST and SKEL classes #jira UE-54531 Change 3858205 by Mitchell.Wilson Removed particle looping from some emitters to resolve anim notify warnings. #jira UE-53823 Change 3858148 by Lauren.Ridge Changes based on Material Layer Feedback from previews - (Temporary) Disabled being able to create a layer or blend in the asset dropdown - Sections of the stack that have been disabled now inactivate that part of the UI - Create Function Instance now indicates if you are making a layer or a blend - Parent dropdown has been removed from layers and blends. Where relevant, a filter button has been added instead. #jira UETOOL-1328 Change 3857933 by Michael.Dupuis #jira UE-45854: Properly unregister callback when replacing foliage type with another one Change 3857898 by Michael.Dupuis #jira UE-54396: Remove the Ensure as it could be possible that the Landscape Info is invalid during an undo operation Change 3857878 by Max.Chen Sequencer: Assign the sequence id after the template is compiled. Copy from Dev-Sequencer #jira UE-54462 Change 3857808 by Michael.Dupuis #jira UE-54421: Prevent edition during Simulate when clicking on actor Change 3857786 by Rolando.Caloca UE4.19 - Fix recompute tangents and skin cache for OpenGL #jira UE-42108 PR #3271 Change 3857549 by Lina.Halper another jittering issue due to revision number change clear the motion vector after compile #jira: UE-53930 Change 3857439 by Lina.Halper Clear motion vector when end of sequencer when in editor world #jira:UE-54057 Change 3857384 by Graeme.Thornton Restore fix for visual studio source code accessor not correctly determining that a content project has no solution and opening a fresh instance of visual studio #jira UE-50020 Change 3856596 by Chris.Babcock Fix ResonanceAudioApi Android library architecture filtering #jira UE-54478 #ue4 #android Change 3856449 by Michael.Dupuis #jira UE-35097: Various cosmetic changes that were done in phase 2 that help improve clarity of the design. Change 3856415 by Dan.Oconnor Fix regression when loading instances that have had their class deleted. Issue detected by static analysis #jira UE-54467 Change 3856332 by Ben.Marsh Resaving TP_HandheldARBP assets to fix version again. #jira Change 3856319 by Ben.Marsh Back out changelist 3855588 Causes build failure in UFE because it introduces a dependency on the Engine module. UFE compiles with WITH_ENGINE = 0. #jira UE-54472 Change 3856292 by Ben.Marsh Fix app-local dependencies not being included in binary builds, and only working for code projects in source builds. #jira UE-54448 Change 3856190 by Martin.Wilson Fix bone access mismatch between raw mesh bones and final bones (that include virtual bones too) #jira UE-54266 Change 3856169 by Ben.Marsh Tag XGEControlWorker.exe as a build product, so it's included in the binary distro. #jira UE-54283 Change 3856123 by Chris.Babcock Fix missing ARCore file #jira UE-54453 #ue4 #android Change 3856005 by Richard.Wallis Clone of Dev-Rendering CL 3855993 - turn off FShaderCache. #jira UE-52928 Change 3855961 by Jian.Ru Copy 3855047 - fix DFAO Nan problem #jira UE-54403 Change 3855811 by Martin.Wilson Add build process for Maya Live Link plugin (standalone, manually triggered) + add built binaries to Engine/Extras (Maya 2016, Maya 2017, Maya 2018) #jira none Change 3855758 by Cosmin.Sulea UE-53569 - tvOS does not package or launch-on #jira UE-53569 Change 3855727 by Ben.Marsh Resaving assets with a versioned build in the editor, to fix warnings building DDC. #jira Change 3855626 by Adrian.Siminciuc https://jira.it.epicgames.net/browse/UE-50979 (MP4 doesn't resume playback when iOS 11 device wakes from sleep) #jira UE-50979 Change 3855588 by Graeme.Thornton Fix visual studio solution path being incorrect for content projects #jira UE-50020 Change 3855283 by Ben.Marsh Fix race condition where stdout/stderr write handles could be inherited by multiple processes, resulting in them not being closed (and the process exit being detected) until all processes that inherited them had been closed. Improves performance of ParallelExecutor. #jira Change 3855009 by Chance.Ivey Resaving with version number. #JIRA-54330 #rb none Change 3854943 by Dan.Oconnor Fix archetype lookup when searching hierarchy that has been partially reinstanced #jira UE-53840 Change 3854882 by Ryan.Vance #jira UE-54438 Removing vr related references to screen percentage. Removing previously removed gvr screen percentage code that came back in an integration from google. Change 3854806 by Mike.Beach Mirroring part of CL 3802176 to fix a crash that can occur when users try to use the default 'DisplayModel' on MotionController components. Also provided users a better error message to explain why a model might not be showing up. #jira UE-54214 Change 3854680 by Chance.Ivey Saving assets with version number#JIRA UE-54330 #rb none Change 3854652 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 3854605 by Dan.Oconnor Make sure we don't create objects outered to a placeholder object, also make sure that archetypes that are reinstanced on load are relinked in to the linker table so that they are postload'd (and the old instance isn't) #jira UE-53954 Change 3854274 by Brandon.Schaefer Changes in CL 3842286 changed the function glslang::GlslangToSpv and requires a rebuild on Linux #jira UE-54302 #codeview Arciel.Rekman Change 3854255 by Phillip.Kavan Fix a scoping issue for local instanced subobject references in nativized Blueprint C++ code. Also, don't emit redundant assignment statements for instanced subobject reference properties. - Mirrored from //UE4/Dev-Framework (3853349). #jira UE-53960 Change 3854177 by Ethan.Geller #jira UE-54415 set EnabledByDefault to false for Resonance Audio Change 3854123 by Ethan.Geller #jira UE-54410 set AudioComponentID Change 3853775 by Lauren.Ridge Minor cleanup #jira UE-54054 Change 3853772 by Lauren.Ridge Don't create widgets when just testing if the selected widget is a replacement candidate #jira UE-54054 Change 3853715 by Rolando.Caloca UE4.19 - Fix for OpenGL overwriting texture units #jira UE-54401 Change 3853655 by Ben.Marsh Add a retry loop on creating the first directory before copying files. Attempt to work around problems copying to shared folders. #jira Change 3853535 by Ben.Marsh Expose the engine compatible changelist to Perforce. If EnginePatchVersion > 0, this will be the changelist of the original .0 release. #jira Change 3852583 by Nick.Atamas Resaved assets so they don't produce DDC warnings. #jira none Change 3852552 by Uriel.Doyon Fixed Pre-Exposure shader compilation and Temporal AA issue. #jira UE-54276 Change 3852354 by Nick.Atamas Hopefully fixes the static analysis warning from jira issue. #jira UE-54332 Change 3852281 by Nick.Atamas Merging CL 3851690 from //Tasks/UE4/Dev-VR-4.19a/... to //UE4/Telease-4.19/... #jira UE-54331 Change 3852274 by Simon.Tourangeau Back out changelist 3851041 until Win7 issue is resolved. #jira UE-54354 Change 3852208 by Jamie.Dale Merging CL# 3821754 from //UE4/Dev-Enterprise Class property conversion now goes through NativizeClass/PythonizeClass This allows it to coerce from Python wrapped object types #jira none Change 3852202 by Jamie.Dale More explicit handling of EngineDir for Python SDK #jira UE-54345 Change 3851982 by Brandon.Schaefer Workaround using a hardcoded path #jira UE-54136 Change 3851748 by Michael.Dupuis #jira UE-53904: Put the code back to what it was before, as we really only want to perform this code if bIsLayerThumbnail is true, it was changed to fix another issue complaining about a missing shader, that end up being added to the existing functions Change 3851545 by Marc.Audy Remove debugging code that slipped in #jira none Change 3851461 by Ben.Marsh Fix #includes with backslashes from crashing UBT. #jira UE-53996 Change 3851391 by Jamie.Dale Updated Python to prefer our TPS SDK #jira UE-54345 Change 3851372 by Jamie.Dale Added bat file to copy the Python SDK into TPS #jira UE-54345 Change 3851218 by Ben.Marsh Add missing template to installed engine build. #jira UE-54339 Change 3851117 by andrew.porter QAGame: Removing duplicate map #jira UE-29618 Change 3851041 by Simon.Tourangeau Support for DX11 quad buffer stereo rendering #jira UEENT-704 Change 3850548 by Ben.Marsh Add TP_HandheldARBP to installed engine build. #jira Change 3850424 by Ben.Zeigler Fix reported memory for asset registry to be correct, extracted from a larger change #jira none Change 3850324 by Ryan.Vance #jira UEVR-1050 Hook up the Rift dynamic res to the new IDynamicResolutionState framework Change 3849819 by JeanLuc.Corenthin Unhide Datasmith plugins in "regular" projects to allow easy project conversion #jira UEENT-795 Change 3849302 by Martin.Wilson Live Link is no longer experimental in 4.19 (moved from experimental folder to Animation) #jira none Change 3849238 by Max.Chen Sequencer: Remove bKeepStaleTracks so that stale tracks are now always purged. #jira UE-54248 Change 3849211 by Michael.Dupuis #jira UE-54181: Prevent foliage edition during PIE or simulate mode #coderevire jack.porter Change 3849123 by Benn.Gallagher Fixed crash in clothing actor creation when the clothing simulation mesh has no simulated vertices #jira UE-53741 Change 3849120 by Benn.Gallagher Fixed crash adding empty materials to destructible meshes in the destructible mesh editor #jira UE-53938 Change 3849047 by Jurre.deBaare Move material baking out of experimental #fix follow-up also remove the entry from experimental settings #jira UE-52685 Change 3848808 by Michael.Dupuis #jira UE-35097: Remove IncludeTessellationInShadowLOD & RestrictTessellationToShadowCascade from 4.19 as there is currently a bug regarding this in the dynamic rendering code path and would be too risky to fix for now. Fixed dynamic shadow code path issue vs static code path Change 3848659 by Lina.Halper Fix issue with animation resetting in the sequencer #jira: UE-54047 Change 3848635 by Rolando.Caloca UE4.19 - Fix static analysis #jira UE-50449 Change 3848515 by Sorin.Gradinaru Unshelved from pending changelist '3843541': WebBrowser Android crash on 4.4.3 #jira UE-53247 #Android #4.19 Crash on Android 4.x.x caused by a call to a Api Level 21 method Change 3848514 by Jurre.deBaare Moving over: CL 3832173 "Failed to import Alembic files #jira UE-53941 #fix Change Alembic thirdparty library setup - Removed old unused library files - Updated batch files for building HDF5 ILMBase and Alembic libraries to use new AlembicDeploy path - HDF5 is now build as a Dynamic library (which also enableds multi-threading) - Added DLLs for HDF5 to build.cs file CL 3838053 "Adding missing hdf5 dynamic libraries Change 3848245 by Ben.Marsh Downgrade warning about not using XGE shader compilation to a log message. Build machines do not have XGE. #jira UE-54237 Change 3847300 by Phillip.Kavan Fix shadowed local variable. #jira UE-54141 Change 3846922 by Max.Preussner ImgMedia: Fixed image media player never finished initialization if loading failed Copied from Dev-Sequencer CL# 3846902 #jira UE-54247 Change 3846831 by Arciel.Rekman Linux: only use lld for x86_64 (UE-54144). - lld support for other architectures seems to not ready for prime time. #jira UE-54144 Change 3846771 by Lauren.Ridge Material window now uses the background color set in preview scene. #jira UE-52215 Change 3846705 by Ben.Marsh Fix batch file paths not being quoted correctly when run through XGE. #jira Change 3846550 by Lauren.Ridge Toggling Show Background now updates the background as well #jira UE-52250 Change 3846417 by Matt.Kuhlenschmidt Fix crash resizing shootergame window #jira UE-53137 Change 3846295 by Rolando.Caloca UE4.19 - New Vulkan descriptor pooling mechanism (enabled on non-android) #jira UE-50449 Change 3846273 by tim.gautier QAGame: Updating Material Layer test assets to include more Params - Added temp assets, quicker repros for bugs #jira UE-54176, UE-54165 Change 3846255 by Lauren.Ridge Parameter tab is the primary tab for material instances #jira UE-54092 Change 3846086 by Chris.Babcock Add missing SecureHash.h include #jira UE-54026 #PR #4417 #ue4 #android Change 3846049 by Martin.Wilson Fix Set Root Motion Enabled Anim Data Modifier node (previously didn't set the enabled flag) #jira UE-54220 Change 3846033 by Martin.Wilson Fix root motion being repeatedly applied ( Clear() call only clears bHasRootMotion flag, not the transform itself ) #Jira UE-54219 Change 3845991 by andrew.porter QAGame: Updating bindings on activechannels sequencer test content #jira UE-29618 Change 3845933 by Lauren.Ridge Check for original material being valid #jira UE-54166 Change 3845920 by Martin.Wilson Optimized redundant key removal #jira UE-51303 Change 3845812 by Matt.Kuhlenschmidt Fix not being able to change BSP brush shape #jira UE-53738 Change 3845790 by Martin.Wilson Fix for assert failure when accumulating root motion in debug. #jira UE-53955 Change 3845730 by JeanLuc.Corenthin Fix build breakage warning: resaved disc.uasset with 4.19.0 preview #1 failure: set the correct default mesh for AreaLightStruct.uasset #jira none Change 3845693 by Lina.Halper Fix issue with previewing pose asset with curve data #jira: UE-53967 Change 3845533 by Andrew.Rodham Sequencer: Fixed sub sequences potentially being loaded during AddReferencedObjects #jira UE-54173 Change 3845472 by Thomas.Sarkanen Prevented debug object selection dropdown from displaying objects with pending kill outers #jira UE-54045 - Animation Blueprint Editor Crashes on Compile if the Debug Instance Selection is Other Than No Object or Preview Instance Change 3845401 by Yannick.Lange Reverting thumbnail capture from viewport. #jira UE-53775 #jira UE-53701 Change 3844693 by JeanMichel.Dignard Changed IES texture brightness to be the max candela value and set the texture multiplier to be 1. This fixes the IES lights intensity being too high. #jira UEENT-632 Change 3844689 by JeanLuc.Corenthin Update Datasmith content assets to latest Copying fix from Dev-Enterprise by Jean-Luc Corenthin CL 3809803 Updated assets with correct release version Cleanup some paths on static meshes and texture #jira UEENT-759 #jira UEENT-657 Change 3844571 by Martin.Wilson Fix motion controller motion source pin still showing when pin is connected to something #Jira UE-53236 Change 3844564 by Martin.Wilson Due to previously fixed bug some anim blueprint nodes could have duplicated guids, this fixes them #Jira UE-54174 Change 3844545 by Jamie.Dale No longer attempt to parse group separators for numeric inputs This avoids some ambiguity when parsing numbers for languages such as German #jira UE-54170 Change 3844221 by Nick.Shin HTML5 - filter out "windows/super" keys - these are not used in UE4 - but, keycode are not the expected "91 or 92" values, SDL keys are "227 & 231" instead... #jira UE-54056 HTML5 crashes inside browser upon pressing windows key Change 3843937 by JeanMichel.Dignard Fixed a crash when right clicking on a static mesh for which its AssetImportData class is currently unavailable (ie: in an unloaded plugin). #jira UEENT-764 Change 3843929 by Peter.Sauerbrei pull over fix for bad directory when copying launch images #jira UE-53177 Change 3843658 by Thomas.Sarkanen Text is red again in anim viewports #jira UE-53224 - Colouring removed from "Animation is being edited" warning messages Change 3843657 by Thomas.Sarkanen Enable picking via Enter for details panel asset pickers The previous (4.18) behavior was to only allow selection of the previous/next item in the list with arrow keys. A fix (CL 3783114) for pickers with many assets broke this. This change now allows for selection of any item by navigating with arrow keys and pressing Enter, as suggested in the Jira. #jira UE-53440 - Unable to select assets within modal Asset Selection dropdowns after navigating with keyboard entry Change 3843120 by Dan.Oconnor Avoid fixing component template games outside the editor, this logic does not work for games that have been nativized #jira UE-54009 Change 3842841 by Ben.Zeigler #jira UE-50020 Switch visual studio module back to using absolute paths so go to definition works, broken in CL #3796157 Change 3842582 by Lauren.Ridge Guards against the widget passed to scrollwidgetintoview being null #jira UE-54037 Change 3842575 by Max.Chen Sequence Recorder: Stop recording if the preview window is destroyed. #jira UE-49778 Change 3842551 by Michael.Dupuis #jira UE-35097: Minor bug fix, documentation, etc. to the landscape optim that was done in the phase 2 that have 0 risk. Change 3842371 by Max.Preussner Media: Merged 4.19 fixes from Dev-Sequencer CL 3807293 WmfMedia: Fixed YUY2 video format strides CL 3827988 MediaPlayerAssets: Fixed Media Texture is not linked to Media Player when created together CL 3805414 MediaAssets: Setting valid GUID when initializing media texture resource CL 3804183 MediaAssets: Added missing lock in media sound component CL 3831580 MfMedia: Media open events generated in same order as on other platforms CL 3807193 WmfMedia: Fixed incorrect buffer stride for RGB32 video tracks #jira UE-53532 #jira UE-53328 Change 3842356 by Max.Preussner ImgMedia: Fixed ensure when cooking project that uses ImgMediaSource #jira UE-51631 Change 3842335 by Aaron.McLeran #jira UE-54087 PR #4419: Fixes a crash due to nullptr dereference (Contributed by mgorzel) Change 3842286 by Rolando.Caloca UE4.19 - Fix for static analysis - Glslang 1.0.65.1 #jira UE-54128 Change 3842222 by andrew.porter QAGame: Updating framerate of EXR_Sequence #jira UE-29618 Change 3842211 by Ben.Marsh Fix determination of Windows version string. The manifest for UE4 applications declares compatibility with Windows 10 nowadays, so we get accurate version numbers returned from GetOSVersionInfo(). #jira UE-54035 Change 3842163 by Cosmin.Sulea UE-53303 - We do not check for remote connection before attempting remote shader compile, causing crashes when misconfigured #jira UE-53303 Change 3841770 by Max.Chen Sequencer: Fix to allow keying of an arbitrarily deep property path. #jira UE-54095 Change 3841758 by Max.Chen Sequencer: Fix unbound possessable components when pasting spawnables. #jira UE-54104 Change 3841415 by Lauren.Ridge Renaming a material layer or material layer blend will no longer cause the asset to appear removed from the stack #jira UE-53942 Change 3841327 by Arciel.Rekman Linux: fix Debug build (UE-53855) - A workaround. UBT should be using proper PCH files instead. #jira UE-53855 Change 3840975 by Rolando.Caloca UE4.19 - Updated VulkanRHI - Fixes for GPU frame time - Fixes for CPU performance #jira UE-50449 Change 3840838 by Michael.Dupuis #jira UE-53944: Make sure the LOD generated is in the valid range to prevent the crash Change 3840693 by Ben.Zeigler #jira UE-53923 Fix regression in 4.19 where PrintScriptCallstack is not always safe to call from the immediate window. I narrowed down the issue to some confusing optimized code so I turned off optimization Copy of CL #3840692 Change 3840680 by Aaron.McLeran Bringing fixes from Dev-AnimPhys to 4.19. #jira UE-53903 crash on load with oculus audio and old audio engine #jira UE-52786, UE-53910 Fix for broken spatialization on xaudio2, old audio engine. Change 3840663 by Rolando.Caloca UE4.19 - Fix for layout ensure on HMD projects on Vulkan #jira UE-50265 Change 3840577 by Rolando.Caloca UE4.19 - Fix for CPUs with more than 16 cores #jira UE-53434 Change 3840551 by andrew.porter QAGame: Setting Allow Bindings from Asset to false #jira UE-29618 Change 3840491 by Ben.Zeigler #jira UE-31662 Fix regression with renaming parent inherited function. It was not correctly searching the parent's skeleton class during the child's recompile so it was erroneously detecting the parent function as missing Copy of CL #3840489 Change 3840297 by Max.Chen Sequencer: Fix copy/paste crash for lights #jira UE-54084 Change 3840284 by Michael.Dupuis #jira UE-53053: Was having a mismatch between the remove reorder and the actual remove Change 3840215 by Sorin.Gradinaru Unshelved from pending changelist '3812852': UE-53550 Level doesn't render on Lenovo 939 UE-53592 Assertion right after rendering scene on Lenovo S939 #jira UE-53550 #jira UE-53592 #4.19 #Android UE-53550 Removed force disabling texture2DLodEXT and textureCubeLodEXT on Mali-400 devices The problem was that the shader compiler complains about code lines before the #extension directives. Placeholder // end extensions in the original shader code - to be replaced with round() functions UE-53592 Always use a new task for devices that have GIsThreadedRendering=false, even when the call is from the rendering thread Change 3840048 by Michael.Dupuis #jira UE-52975: Was always performing the equivalent of an Add, so now we use the Transform during the duplicate Change 3840005 by Richard.Wallis Clone of CL 3835252 Fix for shader library not working with iterative cooking, also fixes native Metal library not working with iterative cook. This works by saving a "backup" of the shader library file - this is reloaded only during iterative cook and adds back in shaders that are missing from the current cook. Fix for extracting/searching .metal files in different directories so debug tgz archiving wasn't working correctly and also support iterative cook. Includes first pass code review suggestions by Mark Sat and Dmitriy Dyomin. #jira UE-53815 Change 3839968 by Michael.Dupuis #jira UE-52289: When OnRegister is called on the component make sure our PerInstanceRenderData is up to date Prevent a possible crash if ClearInstanceSelection was called on a component with no PerInstanceRenderData existing ##codereview jack.porter Change 3839924 by Richard.Wallis Clone of CL 3838093 Fix for rewind / seek bugs in AvfMediaPlayer. - Don't initialise and send audio buffers that have a duration of Zero from the audio tap. This chokes the audio sink and adds overhead we don't need. - Don't faff around with current play rates during loop operation - normal seek doesn't do this so loop seek shouldn't either. - SetRate() should not required to be passed to media tracks - should be enough to do this on audio track select only. #jira UE-54019, UE-53027 Change 3839321 by andrew.porter QAGame: Adding missing bookmark to QA-Sequencer_Blending #jira UE-29618 Change 3839286 by Marcus.Wassmer Duplicate CL: 3823296 #jira UE-52784 Change 3839229 by Brandon.Schaefer Fix audio clean up crash when exiting PIE #jira UE-54050 #review-3839109 @Arciel.Rekman, @Aaron.McLeran Change 3839223 by andrew.porter QAGame: Rebinding pointlight actor to sequences #jira UE-29618 Change 3839098 by andrew.porter QAGame: Fixing missing sequencer blending test content #jira UE-29618 Change 3838919 by Mike.Erwin glTF: binary format's BIN chunk is not necessarily right after the JSON chunk. Discussed this with glTF spec authors. See https://github.com/KhronosGroup/glTF/issues/1177 Rearranged how we read "chunks" from the file since they are not fixed in number or order, besides JSON always being first. #jira UE-50695 Change 3838909 by Mike.Erwin glTF: base64 decoding of data buffers and images Data can be encoded inside the glTF JSON as a Base64 data URI. This CL addresses a known limitation of initial commit CL 3793018. I added this after because base64 is expected to be uncommon in the wild. Authoring software will typically use external BIN files (.gltf) or a BIN chunk (.glb) to store data. #jira UE-50695 Change 3838812 by Uriel.Doyon Integrated CL 3838576, 3838581 and 3831760 from DevRendering, fixing issues with texture streaming. #jira none Change 3838773 by Lauren.Ridge Fixing material layer filters #jira UE-54064 Change 3838748 by Michael.Trepka Fixed EngineTest runtime warning caused by CL 3838626 #jira UE-53893 Change 3838730 by Max.Chen Sequencer: Add notification when the blend type is changed. #jira UE-54046 Change 3838626 by Michael.Trepka Changed FMacMenu to store MultiBox and MenuEntryBox as weak pointers instead of shared pointers. This way we avoid a situation where FMacMenu would try to release them on the main Cocoa thread or where we'd try to execute a menu action for menu items that Slate considers released. #jira UE-53893 Change 3838392 by Arciel.Rekman Fix assert on a policy removal (UE-54042). - Applying Gil's safe fix which just sweeps the problem under the rug. #jira UE-54042 Change 3838162 by Arciel.Rekman Linux: fix crash due to lambda lifetime issues (UE-54040). - The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+). #jira UE-54040 (Edigrating 3819174 to Release-4.19) Change 3838156 by Rolando.Caloca UE4.19 - Support for Vulkan devices that have no cached memory type #jira UE-54039 Change 3838096 by Brandon.Schaefer Set sound to unfocused volume multiplier if not focused #jira UE-51327 #review-3835736 arciel.rekman Change 3838087 by Brandon.Schaefer Fix arm server building. A fix from CL 3617084 remove inheriting from IHeadMountedDisplayVulkanExtensions. Remove overrides #jira UE-53901 #review-3838088 arciel.rekman Change 3837072 by Phillip.Kavan Fix for a build failure that could occur with Blueprint nativization enabled and EDL disabled. This was a regression introduced in 4.18. - Mirrored from //UE4/Dev-Framework (3836768). #jira UE-53908 Change 3837071 by Phillip.Kavan Emit proper syntax for set/map fields containing converted assets to generated C++ Blueprint class headers when Blueprint nativization is enabled. - Mirrored from //UE4/Dev-Framework (3835944, 3835965). #jira UE-42614 Change 3837070 by Phillip.Kavan #4202 - Blueprint nativization bug fixes (PR). - Mirrored from //UE4/Dev-Framework (3830562, 3832292). #jira UE-52188 Change 3836507 by Ryan.Vance #jira UE-53992 Due to hijacking the depth target directly from the scene context, we can't support depth compositing if it's being scaled by screen percentage since it wont match our color render target dimensions. Change 3836390 by Dan.Oconnor Fix failure to resolve archetype when using the compilation manager #jira UE-53840 Change 3836251 by Ryan.Vance #jira UE-53992 Change 3835852 by Mark.Satterthwaite 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 3835802 by JeanMichel.Dignard UBT changes for Enterprise deployment - Allow building enterprise against an installed engine version - Added enterprise to the cleanup process if its not installed #jira UEENT-748 Change 3835625 by Bogdan.Vasilache UE-50257 --> (Skeletal meshes silently fail to render if they have more than 75 bones) --> changed logged error with a warning #jira UE-50257 Change 3833649 by Mike.Beach Enabling debug layer when multiview is enabled. #jira UE-49954 Change 3833525 by Ethan.Geller Fix copyright in ActiveSound.cpp #jira none #rb none Change 3642649 by Stewart.Lynch Renamed loctext key to stop it clashing with an existing entry #jira UE-49432 Change 3644762 by Stewart.Lynch LLM update: Added Total, Untracked and FMalloc Unused to LLMFULL stat page. Fixed occasionally missing allocs/frees. Removed platform csv. * removed CheckSize arg from OnLowLevelFree * show a warning in LLM Map when replacing existing value. This means that there has been an alloc/free mismatch. * minor optimization in LLMMap::GetMaxIndex - cache Mask value * added Total and Untracked stats to LLMFULL. LLMFULL now tracks almost all of the memory that LLMPlatform does, so there is no real need to use LLMPlatform. Removed the LLMPlatform csv. * added FMalloc Unused stat to LLMFULL to account for memory Binned2 has allocated internally. This can be used to track Binned2 fragmentation over time. * renamed Binned stats to FMemory to make it more general * added Default tracking to CustomVirtualAlloc and disable it where necessary. This catches the few VirtualAlloc calls that were missed. * added AllocType arg to all allocation tracking. This was needed in order to track the FMalloc total, and also to fix the pausing * fixed a bug in pausing where alloc/frees were being missed. Now only pauses a specific allocation type. * Trackers now maintain totals for each enum tag * tracking of Texture and mesh allocation on Windows D3D11 & D3D12 Change 3651334 by Joe.Barnes Fix misspelled function name. #jira 39441 #3016 Change 3653857 by Ben.Woodhouse Integrate from //UE4/Main/...@3653675 to //UE4/Dev-Console/... Change 3656553 by Joe.Barnes Add path for SCS_DeviceDepth. Change 3662703 by Ben.Woodhouse Merging CL 3659069 from //Fortnite/Main/... to to //ue4/dev-console/...: [FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame. - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe. - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency. Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup. A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index. In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread. [~] Unified platform specific sync interval CVars into one: rhi.SyncInterval - 1 == 60Hz - 2 == 30Hz - 3 == 20Hz Change 3675239 by Keith.Judge Fixed thread priorities for Windows so that BelowNormal and SlightlyBelowNormal are the same. Bumped Lowest down a notch so they all fit. #jira UE-50626 Change 3676709 by Ben.Woodhouse Integrate from //UE4/Main/...@3675008 to //UE4/Dev-Console/... Change 3689712 by Ben.Woodhouse Integrate from //UE4/Main/...@3687781 to //UE4/Dev-Console/... Change 3701778 by Ben.Woodhouse Integrate from //UE4/Main/...@3699491 to //UE4/Dev-Console/... Change 3677043 by Ben.Woodhouse From StewartL: I also found that on Windows Fortnite is overflowing int32 values due to the number of allocations. I changed LLMArray and LLMMap to use uint32 and it seems to be Ok now. I didn't want to check this in at the last minute, so here's the shelf: 3645336 Change 3726532 by Luke.Thatcher [CONSOLE] [~] Enable XGE shader compilation by default. - Also set XGE mode to "force interception". With XGE on by default, we don't want people with an old Incredibuild version using the old system inadvertently. Change 3726554 by Luke.Thatcher [CONSOLE] [+] Improved Scoped Named Events - Added SCOPED_NAMED_EVENT(_FSTRING/_TEXT/_F) macros to allow use of string literals, FString and printf in scoped named event strings. - Replaced explicit use of FPlatformMisc::Begin/EndNamedEvent throughout the engine with macros, so the events can be compiled out. - Fixed performance issues on various platforms with named events. SCOPED_NAMED_EVENT macros were not considering whether the platform uses wide or ansi char strings. Change 3751378 by Ben.Woodhouse Integrate from //UE4/Main/...@3748735 to //UE4/Dev-Console/... Change 3751812 by Ben.Woodhouse Integrate from //UE4/Main/...@3750870 to //UE4/Dev-Console/... Change 3728571 by Luke.Thatcher [CONSOLE] [!] Drop another XGE controller warning to log. Change 3747150 by Joe.Barnes Add AuthoringToolHelper.bat file to installed build copy list. Change 3768585 by Ben.Woodhouse Integrate from //UE4/Main/...@3767531 to //UE4/Dev-Console/... Change 3772333 by Ben.Woodhouse Integrate from //UE4/Main/...@3771573 to //UE4/Dev-Console/... Change 3786872 by Ben.Woodhouse Integrate from //UE4/Main/...@3786785 to //UE4/Dev-Console/... Change 3787279 by Luke.Thatcher [CONSOLE] [~] Unified present threshold CVars. - CVars are now in RHIUtilities.cpp, and are renamed to rhi.PresentThreshold.Top and rhi.PresentThreshold.Bottom. - Platform implementations will be checked in shortly. Change 3787445 by Luke.Thatcher [CONSOLE] [^] Merging (as edit) improvements to low-latency frame syncing from //Fortnite/Main to //UE4/Dev-Console Original CLs - 3708949 - Added rhi.SyncSlackMS cvar to allow an offset of the game thread sync time by a number of milliseconds. - 3712693 - Fix for crash on startup in new frame syncing. - 3735765 - Fix r.GTSyncType logic when vsync is disabled (falls back to old behaviour when vsync is off). Change 3788417 by Ben.Woodhouse Duplicate from FN CL 3712515 CSV profiler GPU and pre-declared stat support - refactor the GPU profiler so it's no longer dependent on the stats system and can work in Test builds - add support for pre-declared CSV stats, using FNames (these are required for GPU stats) - add DECLARE_GPU_STAT macro which handles STATS and CsvProfiler declarations Note: still a few issues to resolve with GPU stats: these randomly go to 0 at times during a replay on XB1, the GPU total is lower than the stat unit number, and the unaccounted stat is too large due to missing stats Change 3807818 by Ben.Woodhouse Integrate from //UE4/Main/...@3803271 to //UE4/Dev-Console/... Change 3818577 by Ben.Woodhouse Integrate from //UE4/Main/...@3812936 to //UE4/Dev-Console/... Change 3821198 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820127 to //UE4/Dev-Console/... Change 3821519 by Ben.Woodhouse Integrate from //UE4/Release-4.19/...@3820753 to //UE4/Dev-Console/... #robomerge none Change 3813513 by Ben.Woodhouse CSV profiler refactor+ bug fix - Move the CSV profiler to core, so we can use it in modules other than engine - Profiler no longer enqueues RT commands - this is handled by a new core delegate type - Make begin/end requests more robust, enqueued via a command queue and processed in order - Defer end capture requests by a frame. This ensures stats on threads other than the gamethread (e.g. renderthread etc) are complete, so the last frame is not truncated - Fix long-standing bug with multiple captures where old/stale frames would appear in the first <128 frames of captures - Move unit stats and dynamic resolution out of the profiler itself and into the engine. Only frametime is recorded in the profiler now - Fix longstanding bug in first frame renderthread time in the engine Change 3814039 by Ben.Woodhouse More Csvprofiler improvements - Event support (via CSV_EVENT macros). These appear in the "EVENTS" column of the CSV and can be used to add context to the stat data - Reduced memory overhead for timestamps through bit-packing (now 16 bytes per marker instead of 24), and splitting stats into different types Change 3814041 by Ben.Woodhouse Integrate as edit CL 3796390 from Fortnite/Main: Fix CsvProfiler not compiling in shipping for now Change 3814229 by Ben.Woodhouse Integrate + refactor of CL 3792591 to reduce complexity and fix bugs Original changelist description: CSV profiler improvements: - The CSV profiler is now always compiled in on the server - The CSV profiler can now handle both int32 and float stats - In BeginCapture, the function can take additional arguments for some customization of filenames Fixes to the above: - Remove FCustomValue class - Fixes bug where all timestamp values from CSV_SCOPED_STATs were garbage (due to issues resulting from FCustomValue type ambiguity when adding values together) - FCsvCustomStat now just uses simple union + bitfield flag to reduce size and complexity (4 bytes instead of 8 per value) - FCsvColumn class modified to use doubles, which can represent both ints and floats without loss of precision - this class is not memory or time critical - Replace multiple overrides used by the server for filenameprefix/folder/postfix etc with a single FilenameOverride Change 3814242 by Ben.Woodhouse Disable CSV unit stats on the dedicated server Change 3817339 by Ben.Woodhouse Duplicate from 3816641: CSV profiler improvements - Added a low-pri processing thread to compress raw timing data into a much more efficient format - Reduces memory usage for 15 minute 30k frame capture with GPU stats enabled from 110MB to 3.4MB - Processing time : 0.1ms per frame - Improved name handling for char literal stats. We now use the string as the ID rather than the pointer so multiple stat uses of the same name string apply only to a single stat - Reworked thread data access to eliminate locking for anything time-critical. Frame boundaries now handled via a lock-free helper class - Fixed bug with queue implementation where 1 in 128 reads would duplicate the last block of stat data - Reduced #include dependencies for CSVProfiler.h - Removed AccumulateMax because it doesn't work, and implementing properly would add a lot of complexity - Added a simple test harness Change 3817582 by Ben.Woodhouse Fix android compile warning Change 3823242 by Ben.Woodhouse Integrate as edit from Fortnite/Main 3820067: Fix threading issue with D3D12 pipeline state caches for windows. This was caused by the usage of FRwScopeLock::RaiseLockToWrite. A pointer read before RaiseLockToWrite was called was invalidated because RaiseLockToWrite has to release the read lock before acquiring the write lock. Rename FRwScopeLock::RaiseLockToWrite to ReleaseReadOnlyLockAndAcquireWriteLock_USE_WITH_CAUTION to make it more explicit what's happening. As the comment says: // This function should be used with caution. // It releases the read lock _before_ acquiring a new write lock. This is not an atomic operation and the caller should // not treat it as such. // E.g. Pointers read from protected data structures prior to this call may be invalid after the function is called. Change 3823840 by Ben.Woodhouse Edigrate from 3823816 Fix an issue where the csvprofile console commands would sometimes result in an empty CSV. The root cause was GFrameNumber incrementing between the console command being read and FCSVProfiler::EndFrame(). We now use our own frame counter which is updated in EndFrame, so this can't happen Also fix an issue where calling csvprofile stop twice would cause all further commands to be ignored. Change 3827787 by Ben.Woodhouse Integrate-as-edit CL 3820678 from Fortnite/Main Allow the CSV Profiler to be compiled in to shipping dedicated server builds Change 3827842 by Ben.Woodhouse Integrate-as-edit CL 3827079 from Fortnite/Main CSV profiler category support Change 3827918 by Luke.Thatcher [CONSOLE] [!] Fix compile error in CSV custom stats. Change 3827964 by Luke.Thatcher [CONSOLE] [!] Fix inverted logic and spelling of boolean. - Functionally, the boolean did the correct thing, but the logic was backwards inside the build tool. Change 3831661 by Ben.Woodhouse Integrate-as-edit CL 3830630 from Fortnite/Main Fix CSVProfiler assert in dev builds on XB1 Change 3860300 by Joe.Barnes Use same method for src and dest rect calculation as other post processing passes so rects match between passes. Prevents read of unprocessed pixels. Change 3860347 by Joe.Barnes Delete existing SourceConfigFile before allocating a new one to prevent them leaking. Change 3860348 by Joe.Barnes Completely encapsulate GetLLMAlloc() in #ifdef. Change 3861772 by Ben.Woodhouse Integrate-as-edit CL 3861688 from Fortnite/Main: Forward lighting GPU crash fixes Change 3861774 by Ben.Woodhouse Integrate as edit CL 3833918 from dev-rendering (courtesy of DanielW): D3D12 RHI: only refcount uniform buffers if GRHINeedsExtraDeletionLatency is false, which is no longer the case for PC. 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 3862214 by Ben.Woodhouse Integrate-as-edit CL 3859637 from Fortnite/Main Dynamic resolution console tweaks - Dynamic resolution high level switch driven by a cvar instead of code - Disable user settings dynamic resolution handling on non-desktop platforms. DynamicRes as a user setting does not make sense on consoles/mobile - we'll drive it from device profiles/scalability - Modify naming of GPUHeadRoom to make it clear that it's a percentage, not millseconds Change 3863919 by Ben.Woodhouse [Copy] Integrate console dynamic resolution interface changes from CL 3863354, 3862754, 3862639 Change 3864347 by Ben.Woodhouse Fix the editor build. This will need a proper fix before 4.19 ships. #lockdown Nick.Penwarden #rb none [CL 3913399 by Ben Marsh in Main branch]
2018-02-27 17:30:35 -05:00
}
}
const FMeshBatch* FPrimitiveSceneInfo::GetMeshBatch(int8 InLODIndex) const
{
if (StaticMeshes.IsValidIndex(InLODIndex))
{
return &StaticMeshes[InLODIndex];
}
return nullptr;
}
bool FPrimitiveSceneInfo::NeedsReflectionCaptureUpdate() const
{
return bNeedsCachedReflectionCaptureUpdate &&
// For mobile, the per-object reflection is used for everything
(Scene->GetShadingPath() == EShadingPath::Mobile || IsForwardShadingEnabled(Scene->GetShaderPlatform()));
}
void FPrimitiveSceneInfo::CacheReflectionCaptures()
{
// do not use Scene->PrimitiveBounds here, as it may be not initialized yet
FBoxSphereBounds BoxSphereBounds = Proxy->GetBounds();
CachedReflectionCaptureProxy = Scene->FindClosestReflectionCapture(BoxSphereBounds.Origin);
CachedPlanarReflectionProxy = Scene->FindClosestPlanarReflection(BoxSphereBounds);
if (Scene->GetShadingPath() == EShadingPath::Mobile)
{
// mobile HQ reflections
Scene->FindClosestReflectionCaptures(BoxSphereBounds.Origin, CachedReflectionCaptureProxies);
}
bNeedsCachedReflectionCaptureUpdate = false;
}
void FPrimitiveSceneInfo::RemoveCachedReflectionCaptures()
{
CachedReflectionCaptureProxy = nullptr;
CachedPlanarReflectionProxy = nullptr;
FMemory::Memzero(CachedReflectionCaptureProxies);
bNeedsCachedReflectionCaptureUpdate = true;
}
void FPrimitiveSceneInfo::UpdateComponentLastRenderTime(float CurrentWorldTime, bool bUpdateLastRenderTimeOnScreen) const
{
ComponentForDebuggingOnly->LastRenderTime = CurrentWorldTime;
if (bUpdateLastRenderTimeOnScreen)
{
ComponentForDebuggingOnly->LastRenderTimeOnScreen = CurrentWorldTime;
}
if (OwnerLastRenderTime)
{
*OwnerLastRenderTime = CurrentWorldTime; // Sets OwningActor->LastRenderTime
}
}
void FPrimitiveOctreeSemantics::SetOctreeNodeIndex(const FPrimitiveSceneInfoCompact& Element, FOctreeElementId2 Id)
{
// When a Primitive is removed from the renderer, it's index will be invalidated. Only update if the primitive still
// has a valid index.
if (Element.PrimitiveSceneInfo->IsIndexValid())
{
Element.PrimitiveSceneInfo->Scene->PrimitiveOctreeIndex[Element.PrimitiveSceneInfo->GetIndex()] = Id.GetNodeIndex();
}
}
FString FPrimitiveSceneInfo::GetFullnameForDebuggingOnly() const
{
// This is not correct to access component from rendering thread, but this is for debugging only
if (ComponentForDebuggingOnly)
{
return ComponentForDebuggingOnly->GetFullGroupName(false);
}
return FString(TEXT("Unknown Object"));
}