2019-12-26 15:33:43 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
/*=============================================================================
EditorBuildUtils . cpp : Utilities for building in the editor
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
# include "EditorBuildUtils.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Misc/MessageDialog.h"
# include "HAL/FileManager.h"
# include "Misc/ScopedSlowTask.h"
# include "Modules/ModuleManager.h"
# include "Misc/PackageName.h"
# include "Engine/EngineTypes.h"
# include "Engine/Level.h"
# include "Engine/Brush.h"
# include "SourceControlOperations.h"
2014-03-14 14:13:41 -04:00
# include "ISourceControlModule.h"
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 3972172)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3821754 by Jamie.Dale
[Python] Class property conversion now goes through NativizeClass/PythonizeClass
This allows it to coerce from Python wrapped object types
Change 3833107 by Patrick.Boutot
Added functions to fill an existing DataTable from an existing CSV/JSON file.
Change 3835044 by Aaron.Carlisle
Exposure for asset_import_data (editor property) and it's functions: extract_filenames and get_first_filename.
Change 3835466 by Patrick.Boutot
Hide function from Python that need special compile command to be executed by the VM.
Change 3839237 by Jamie.Dale
Added a way to inspect the full chain of properties that are currently being serialized by an archive
You used to only have access to the leaf-most property, and while you could use its outer chain to inspect other properties within the same object/struct, you couldn't always get the full chain (eg, if you had an object containing a struct).
Change 3839974 by Jamie.Dale
Make sure that SerializedProperty is copied correctly, as SetSerializedPropertyChain may set it to something else
Change 3842311 by Jamie.Dale
Fixing potential null level assert
Change 3842313 by Jamie.Dale
Updated settings editor to handle external properties
Change 3842316 by Jamie.Dale
Allowing a console command to be given to GEditor/GEngine even if there's a player
CL# 1848982 said it was to prevent multiple execution of stat commands, however that no longer seems to be an issue.
Change 3842867 by Jamie.Dale
Added a way to generate diffs from editor transactions
The notifications from these diffs are send to UObject::PostTransacted and FCoreUObjectDelegates::OnObjectTransacted.
These notifications are typically generated when a transaction is "finalized", but can also be generated from "snapshots" (eg, to trap nodes being dragged in the world). They're also generated from normal undo/redo events.
Change 3844428 by Patrick.Boutot
Move the SetMaterial code from the StaticMeshEditor to StaticMesh to be reusable by script.
Change 3845966 by Jamie.Dale
Added support for minimal game RPC worlds
These can be created in the editor and engine and exist to allow RPC communication via Unreal Networking in a way that is sandboxed from any other worlds that may be loaded (like the main game world)
Change 3848844 by Patrick.Boutot
Expose EComponentMobility to blueprint.
Change 3854616 by Patrick.Boutot
Add Custom way time step the engine loop. Will be used by the Synchronization of media for enterprise.
Change 3856650 by Jamie.Dale
Fixed a bug where transaction finalization could miss changes since the last snapshot
Change 3864951 by Patrick.Boutot
Fix ghost asset in Content Browser when an asset is added and renamed before the RecentlyAddedAssets list had a chance to be processed.
Change 3867158 by JeanMichel.Dignard
UBT
- Added the ability for dll programs to export symbols.
#jira UEENT-541
Change 3872342 by Jamie.Dale
Merging static analysis fixes from 4.19
Change 3879305 by Jamie.Dale
Improved the processing of py files from exec commands
The old logic used to just test if the entire command was a .py file. The new logic extracts out the first token and sees if that's a .py file, and if it is, treats the remaining data as extra arguments.
Change 3879306 by Jamie.Dale
Added a minimal commandlet for invoking Python scripts
Change 3881631 by Jamie.Dale
Added basic RTTI to Python meta-data types
Change 3885384 by Jamie.Dale
[Python] Prevent glue code using reserved names
Change 3888957 by Patrick.Boutot
In MediaPlayer, only create a PlayerFacade & Playlist when it's not a ClassDefaultObject.
The MediaPlayerFacade is a MediaTickable. That trigger the tick thread to be awake even if there is no Media playing.
Change 3888961 by Patrick.Boutot
Fix FInterval::IsValid return type.
Change 3888980 by Patrick.Boutot
Modification to Media and MediaAsset to support MediaSmith. The TInterval<int64> will be changed into TTinterval<FTimespan> UEENT-947. MediaSampleQueue's critical section will be change into an atomic operation UEENT-948.
Change 3889165 by Patrick.Boutot
Fix build. Missing include for Timespan. Introduce with CL 3888980.
Change 3889261 by Jamie.Dale
[Python] Fixing some more name conflicts in generated code
Change 3889504 by Darren.Pegg
Add option to change PreferredPixelFormat
Change 3891193 by Patrick.Boutot
Fix build. Missing include for Interval. Introduce with CL 3888980.
Change 3897108 by Patrick.Boutot
TTinterval use it own traits. Create a Interval traits for Timespan.
#jira UEENT-947
Change 3899669 by Jamie.Dale
Fixed Functions sometimes being exposed to Python as if they were Structs
Change 3900692 by Jamie.Dale
Removed some boilerplate associated with wrapping a basic type to Python
You can now derive from TPyWrapperBasic to wrap a type that is simply a value copied into Python (see FPyWrapperName and FPyWrapperText for an example)
Change 3901066 by conan.reis
UE4 editor script bindings (Cobra) and helper functions for version control
- exposed SourceControl class with common source control methods and associated SourceControlState structure
- commands have smart file strings that can convert from any of fully qualified path, relative path, long package name, asset path or export text path (often stored on clipboard)
- commands store any errors in a shared error text object which is optionally printed to the error log
- renamed some calls across the UE4 codebase to USourceControlHelpers::CheckOutOrAddFile() from USourceControlHelpers::CheckOutFile()
- included Python test script for source control commands including that auto-creates test files as needed and passes various types of files to test as command line arguments. Any unexpected results displays error messages.
Change 3901388 by Jamie.Dale
Minimal Slate hooks for Python
Change 3901456 by Jamie.Dale
Added missing file
Change 3901549 by Jamie.Dale
Removing some more Windows defines that were causing build issues
Change 3904518 by conan.reis
Source Control
- ensured that "check if modified" flag is set whenver getting source control state in USourceControlHelpers::QueryFileState() which was needed when using Perforce source control provider
Change 3905612 by Francis.Hurteau
Optimize RemoveDuplicates somewhat using a TSet
#jira UEENT-217
Change 3912626 by Jamie.Dale
Fixed ShouldExcludeDerivedClasses option not working
RecursiveClassesExclusionSet requires a base ClassNames entry to operate on when filtering.
Change 3917739 by Jamie.Dale
Output Log suggestions list is now clamped to the work area width of the monitor that hosts the widget
Change 3917744 by Jamie.Dale
Changed generated code to reference the UProperty and UFunction directly, rather than constantly look them up by name
Names were originally used because UHT couldn't access the objects when it registered the glue code, but now that we generate at runtime via reflection, we already have the relevant objects available, and caching them the glue structs helps performance at both generation time and runtime.
Change 3918832 by Jamie.Dale
Removed field iteration from Python function calls
We now cache the input and output parameters for all function calls (methods, get/set, and delegates) and use this rather than iterate the struct fields.
Change 3920648 by Patrick.Boutot
Remove the bottom right part of the windows border of the grabbed frame when in the editor. Tested in the standalone, windowed and full screen.
Add option to request a FlushOnDraw on the viewport. Flushing in SDI output flow decreases the performance by ~10ms. SDI output is synchronized and the engine tick follows that synchronization.
Change 3921396 by Jamie.Dale
Split up the generated type data to correspond to the type being wrapped
A lot of types can just use the minimal set, but classes and structs have some extra data.
Change 3921619 by conan.reis
- add delegate to FSourceControlWindows::ChoosePackagesToCheckin() that gives info for result, result description, files added, files checked in and flag indicating whether files were checked out again.
- also added result info to FSourceControlWindows::PromptForCheckin()
#jira UE-55255
Change 3921624 by conan.reis
Removed Source Control common files from pre compiled header
- main changes are in UnrealEdPrivatePCH.h, UnrealEdSharedPCH.h, SouceControlWindows.h and the added SouceControlWindows.cpp
- remaining files have includes changed to accomodate
Change 3921958 by conan.reis
Fix attempt for incude file dependency needed by some build configurations (likely PCH disabled) caused by CL3921619
Change 3922740 by conan.reis
Included SourceControlOperations.h and SourceControlHelpers.h back in ISourceControlProvider.h though it does not need them since other files that were including ISourceControlProvider.h have come to expect their inclusion.
They were previously removed in CL3921624
Change 3923375 by Jamie.Dale
Added optimized FString <-> icu::UnicodeString conversion for platforms using UTF-16 native strings
Change 3926547 by Jamie.Dale
Added support for struct method "hoisting"
This allows you to tag a helper function that takes a struct as its first argument with the ScriptMethod meta-data (optionally providing a new name) to "hoist" that helper function to be a method of the struct it operates on when wrapped for Python.
Change 3927050 by conan.reis
Source control - ensured that ISourceControlProvider::Execute(FConnect, EConcurrency, FSourceControlOperationComplete) delegate is called on initial connection even if it fails immediately. Modified Perforce, Git and Subversion source control providers
#JIRA UE-55256
Change 3929268 by conan.reis
- fixed case in Perforce source control code where the server available flag was set even when the server was not successfully connected
- removed Perforce error message about file folders outside of the workspace client mappings
- clarified comments for ISourceControlProvider::IsEnabled() and ISourceControlModule::IsEnabled()
#JIRA UE-55254
Change 3931024 by Rex.Hill
Expose FBX and Texture import to python
Change 3931273 by Rex.Hill
Hide re-import slate notification pop-up during python automated asset import
Change 3931368 by Jamie.Dale
Stopped bools coercing to numeric types in Python nativization
Change 3931374 by Jamie.Dale
Added support for struct math operator "hoisting"
This allows you to tag a helper function that takes a struct as its first argument with the ScriptMathOp meta-data (providing a potentially semi-colon separated list of operators to map to) to "hoist" that helper function to be a math operator of the struct it operates on when wrapped for Python.
Change 3932586 by Rex.Hill
Removed file read into unused memory buffer during Fbx import
Change 3934308 by Jamie.Dale
Added a public interface for the Python plugin
Very basic, just lets you query if Python is compiled in, and lets you execute Python commands like you would via the Output Log.
Change 3935088 by conan.reis
- Added info/warning and error message storage to all the source control operation structures so additional information can be made available.
- Added ISourceControlOperation::GetResultInfo() which returns the modified control structures (mentioned above) with appended info/warning messages and error messages and implemented its use in all source control operations in Perforce, Git and Subversion.
#JIRA UE-55257
Change 3936668 by Rex.Hill
#jira UE-55985
Avoid re-allocation of memory buffer holding file bytes during asset import
Change 3940596 by Rex.Hill
#jira UE-55989 Optimize skeletal mesh import performance scaling
Overlapping vertex check was O (N^2)
100k vertex mesh took ~15 seconds to perform overlap step now takes 0.023 seconds
Change 3942629 by Rex.Hill
#jira UE-55995 Read fbx file only once during import
Fixes a memory leak of FbxScene and reduces wait time during import.
Change 3942884 by Rex.Hill
Python asset import can now customize destination asset name
Change 3946278 by Jamie.Dale
Added stricter conversion for math operator arguments
PyConversion now returns FPyConversionResult rather than bool, which will tell you not only whether a conversion succeeded or failed, but also whether type coercion was applied during the conversion.
This allows the operator stack evaluation to run a first pass looking for an exact argument match, before falling back to a coerced match if available. This allows operators to apply correctly to coerced types (eg, int vs float overloads).
Change 3948455 by Jamie.Dale
Added generic Tick function to FPythonScriptPlugin
This can also handle init logic for after the engine is fully initialized
Change 3948888 by Jamie.Dale
Added settings for the Python plugin
You can now define start-up scripts to execute once the engine is initialized, additional system paths for Python, and whether you want to enable developer mode (which will enable things like deprecation warnings).
Change 3948982 by Jamie.Dale
Fixed Python 3 build error caused by CObject being removed in Python 3.2
Change 3949614 by Francis.Hurteau
Create a camera cut track from the camera switcher camera index animation curve when importing a fbx in sequencer
#jira UEENT-1053
Change 3950829 by Rex.Hill
Update error message to be more specific when ENGINE_API keyword is found before 'static' keyword for a UFUNCTION
Change 3953452 by Jamie.Dale
Fixed some dependencies
Change 3953645 by Jamie.Dale
Fixed Python parameter packing treating bool output paramers as potential return values
void GetState(bool& OutState) would have previously triggered the code for packing output for a function that returns a bool.
Change 3953850 by Jamie.Dale
Fixed doc string generation for a function with multiple output paramters and no return value
Change 3954279 by Jamie.Dale
Initial support for exposing deprecated properties and functions to Python
This handles properties and functions that are directly deprecated. We still need to handle the cases where they're renamed and a redirector is left.
Change 3954922 by Rex.Hill
Expose UnloadPackages to python
Change 3955209 by Jamie.Dale
Initial support for exposing deprecated classes to Python
Change 3955248 by Jamie.Dale
Added a way to load Unreal modules via Python
unreal.load_module("modulename")
Change 3955561 by Rex.Hill
Expose asset export to python
Change 3956068 by Rex.Hill
Linux compile fix.
Change 3960449 by Rex.Hill
Fix automated test using bCombineMeshes
Change 3960495 by Patrick.Boutot
Add a temporary menu to show the MetaData of an asset.
The menu will need to be updated to have a look and feel of the Detail View and support edition at one point.
Change 3961599 by Rex.Hill
Reduced peak memory during import of meshes related to duplicate vertex tracking
Change 3962104 by Rex.Hill
Disable import mesh overlapping corners memory optimization to because it can change uv generation
Change 3962507 by Rex.Hill
Fix uv generation
Change 3965285 by Rex.Hill
Add support for FBX export as ASCII
#jira UE-56465
Change 3965287 by Rex.Hill
Forgotten file, fbx export as ascii
Change 3966772 by Simon.Tourangeau
Fix MaterialExpressionFunctions for ExternalTexture support
Change 3967014 by Jamie.Dale
Added a way to get the CDO in Python
Wrapped objects now have a get_default_object class method
Change 3967151 by Jamie.Dale
Added stats to track Python generation time
Change 3968006 by Simon.Therriault
Media Samples
- Removed Locks and Min/Max SampleTime from queues
- Added methods to fetch NextSampleTime and SampleCount in queues
- Added MediaSource base class for players that want to be time synchronized
#jira UEENT-948
Change 3969119 by Patrick.Boutot
Add delay functionnality to MediaPlayer to delay the frame by some time. It will allow more than one player to be start at the same time, played at the same frame but offset in relation to each other.
[CL 3972277 by Simon Tourangeau in Main branch]
2018-03-29 13:32:35 -04:00
# include "SourceControlHelpers.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Materials/MaterialInterface.h"
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3967517)
#rb none
#lockdown Nick.Penwarden
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3804281 by Fred.Kimberley
Improve contrast on watches in blueprints.
Change 3804322 by Fred.Kimberley
First pass at adding a watch window for blueprint debugging.
Change 3804737 by mason.seay
Added some Descriptions to tests that didn't have any, and fixed some typos
Change 3806103 by mason.seay
Moved and Renamed Timers test map and content appropriately
Change 3806164 by Fred.Kimberley
Add missing property types to GetDebugInfoInternal.
#jira UE-53355
Change 3806617 by Dan.Oconnor
Function Terminator (and derived types) now use FMemberReference instead of a UClass/FName pair. This fixes various bugs when resolving the UFunction referenced by the function terminator
#jira UE-31754, UE-42431, UE-53315, UE-53172
Change 3808541 by Fred.Kimberley
Add support for redirecting user defined enums.
This is in response to the following UDN thread: https://udn.unrealengine.com/questions/404141/is-is-possible-to-create-a-redirector-from-a-bluep.html
Change 3808565 by mason.seay
Added a few more struct tests
Change 3809840 by mason.seay
Renamed CharacterMovement.umap to CharacterCollision. Fixed up content to reflect this change.
Change 3809847 by mason.seay
Added Object Timer tests. Fixed up existing timer test to remove delay dependency
Change 3811704 by Ben.Zeigler
Fix issue where identical enum redirects registered to different initial names would throw an incorrect error, it's fine if the value change maps are identical
Change 3811946 by Ben.Zeigler
#jira UE-53511 Fix it so it is possible to set a user defined struct value back to it's default. The UDS hack in PropertyValueToString is no longer needed, but this could affect some other user struct editor operations
Change 3812061 by Dan.Oconnor
Stepping over or in to nodes that are expanded at compile time (e.g. event nodes, spawn actor nodes) no longer requires multiple 'steps'
#jira UE-52854
Change 3812259 by Dan.Oconnor
Fix asset broken by removal of an unkown enum
#jira UE-51419
Change 3812904 by Ben.Zeigler
Make ResolveRedirects on StreamableManager public as it can be used to validate things
Change 3812958 by Ben.Zeigler
#jira UE-52977 Fix crashes when binding blueprint editor commands to keys and using from invalid contexts
Change 3812975 by Mieszko.Zielinski
Added contraptions to catch a rare eidtor-time EQS crash #UE4
#jira UE-53468
Change 3818530 by Phillip.Kavan
Fix incorrect access to nested instanced subobjects in nativized Blueprint ctor codegen.
Change summary:
- Modified FEmitDefaultValueHelper::HandleInstancedSubobject() to properly reference the outer and check ptr validity when creating/obtaining nested default subobjects.
- Modified FEmitDefaultValueHelper::HandleClassSubobject() to better guard against code generation based on an invalid local variable name.
#jira UE-52167
Change 3819733 by Mieszko.Zielinski
Marked UAISenseConfig_Blueprint and UAISense_Blueprint as hidedropdown #UE4
#jira UE-15089
Change 3821776 by Marc.Audy
Remove redundent code in SpawnActorFromClass that already exists in ConstructObjectFromClass parent class
Change 3823851 by mason.seay
Moved and renamed blueprints used for Object Reference testing
Change 3824165 by Phillip.Kavan
Ensure that subobject class types are constructed prior to accessing a subobject CDO in a nativized Blueprint class's generated ctor at runtime.
Change summary:
- Modified FFakeImportTableHelper to tag subobject class types as a preload dependency of the outer converted Blueprint class type and not of the CDO.
#jira UE-53111
Change 3830309 by mason.seay
Created Literal Gameplay Tag Container test
Change 3830562 by Phillip.Kavan
Blueprint nativization bug fixes (reviewed/taken from PR).
Change summary:
- Modified FSafeContextScopedEmitter::ValidationChain() to ensure that generated code calls the global IsValid() utility function on objects.
- Modified FBlueprintCompilerCppBackend::EmitCreateArrayStatement() to generate a proper cast on MakeArray node inputs for enum class types.
- Modified FBlueprintCompilerCppBackend::EnimCallStatementInner() to more correctly identify an interface function call site.
- Modified FEmitHelper::GenerateAutomaticCast() to properly handle automatic casts of enum arrays.
- (Modified from PR source) Added new FComponentDataUtils statics to consolidate custom init code generation for converted special-case component types (e.g. BodyInstance). Ties native component DSOs to the same pre/post as converted non-native component templates around the OuterGenerate() loop.
- Modified FExposeOnSpawnValidator::IsSupported() to include CPT_SoftObjectReference property types.
- Modified UBlueprintGeneratedClass::CheckAndApplyComponentTemplateOverrides() to no longer break out of the loop before finding additional ICH override record matches.
#4202
#jira UE-52188
Change 3830579 by Fred.Kimberley
Add support for turning off multiple watches at once in the watch window.
#jira UE-53852
Change 3836047 by Zak.Middleton
#ue4 - Dev test maps for overlaps perf tests.
Change 3836768 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.
Change summary:
- Modified FEmitDefaultValueHelper::AddStaticFunctionsForDependencies() to emit the correct signature for constructing FBlueprintDependencyData elements when the EDL boot time optimization is disabled.
#jira UE-53908
Change 3838085 by mason.seay
Functional tests around basic blueprint functions
Change 3840489 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
Change 3840648 by mason.seay
Updated Descriptions on tests
Change 3842914 by Ben.Zeigler
Improve comments around stremable handle cancel/release
Change 3850413 by Ben.Zeigler
Fix asset registry memory reporting, track some newer fields and correctly report the state size instead of static size twice
Copy of CL #3849610
Change 3850426 by Ben.Zeigler
Reduce asset registry memory in cooked build by stripping out searchable names and empty dependency nodes by default
Add option to strip dependency data for asset data with no tags, this was always true before but isn't necessarily safe
Copy of CL #3850389
Change 3853449 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.
Change summary:
- Consolidated FComponentDataUtils into FDefaultSubobjectData and extended FNonativeComponentData from it in order to handle both native & non-native DSO initialization codegen through a more common interface.
- Exposed FEmitDefaultValueHelper::HandleInstancedSubobject() as a public API and added a 'SubobjectData' parameter to allow initialization codegen to be deferred until after all default subobjects have been mapped to local variables within the current scope.
- Modified FEmitDefaultValueHelper::GenerateConstructor() to first map all default subobjects to local variables and then emit any delta initialization code for property values.
- Modified FEmitDefaultValueHelper::HandleSpecialTypes() to return an empty string for an instanced reference to a default subobject. This allows us to avoid emitting initialization statements to unnecessarily reassign instances back to the same property.
- Modified FEmitDefaultValueHelper::InnerGenerate() to better handle instanced references to default subobjects, ensuring that we don't emit unnecessary assignment statements and array initialization code to the converted class constructor in C++.
- Fixed a few typos.
#jira UE-53960
Change 3853465 by Phillip.Kavan
Fix plugin module C++ source template to conform to recent public include path changes.
Change 3857599 by Marc.Audy
PR #4438: UE-54281: Make None a valid default value to select (Contributed by projectgheist)
#jira UE-54281
#jira UE-54399
Change 3863259 by Zak.Middleton
#ue4 - Save bandwidth for replicated characters by only replicating 4 byte timestamp value to clients if it's actually needed for Linear smoothing. Added option to always replicate the timestamp ("bNetworkAlwaysReplicateTransformUpdateTimestamp", default off), in case users still want this timestamp for some reason, or if smoothing mode changes dynamically and the server won't know.
#jira UE-46293
Change 3863491 by Zak.Middleton
#ue4 - Reduce network RPC overhead for players that are not moving. Added ClientNetSendMoveDeltaTimeStationary (default 12Hz) to supplement existing ClientNetSendMoveDeltaTime and ClientNetSendMoveDeltaTimeThrottled. UCharacterMovementComponent::GetClientNetSendDeltaTime() now uses this time if Acceleration and Velocity are zero, and the control rotation matches the last ack'd control rotation from the server.
Also fixed up code default for ClientNetSendMoveDeltaTime to match default INI value.
#jira UE-21264
Change 3865325 by Zak.Middleton
#ue4 - Fix static analysis warning about possible null PC pointer.
#jira none
Change 3869828 by Ben.Zeigler
#jira UE-54786 Fix it so -cookonthefly cooperates with -iterate by writing out a development asset registry
Change 3869969 by mason.seay
Character Movement Functional Tests
Change 3870099 by Mason.Seay
Submitted asset deletes
Change 3870105 by mason.seay
Removed link to anim blueprint to fix errors
Change 3870238 by mason.seay
Test map for Async Loading in a Loop
Change 3870479 by Ben.Zeigler
Add code to check CoreRedirects for SoftObjectPaths when saving or resolving in the editor. This is a bit slow so we don't want to do it on load
We don't have any good way to know the type of a path so I check both Object and Class redirectors, which will also pickup Module renames
Change 3875224 by mason.seay
Functional tests for Event BeginPlay execution order
Change 3875409 by mason.seay
Optimized and fixed up character movement tests (because a potential bug in FunctionalTestActor is always passing a test when it can fail)
Change 3878947 by Mieszko.Zielinski
CIS fixes #UE4
Change 3879000 by Mieszko.Zielinski
More CIS fixes #UE4
Change 3879139 by Mieszko.Zielinski
Even moar CIS fixes #UE4
Change 3879742 by mason.seay
Added animation to Nativization Widget asset
Change 3880198 by Zak.Middleton
#ue4 - CanCrouchInCurrentState() returns false when character capsule is simulating physics.
#jira UE-54875
github #4479
Change 3880266 by Zak.Middleton
#ue4 - Optimize UpdateCharacterStateBeforeMovement() to do cheaper tests earlier (avoid CanCrouchInCurrentState() unless necessary, now that it tests IsSimulatingPhysics() which is not trivial).
#jira UE-54875
Change 3881546 by Mieszko.Zielinski
*.Build.cs files clean up - removed redundant dependencies from NavigationSystem and AIModule #UE4
Change 3881547 by Mieszko.Zielinski
Removed a bunch of DEPRECATED functions from the new NavigationSystem module #UE4
Removed all deprecates prior 4.15 (picked this one because I do know some licencees are still using it).
Change 3881742 by mason.seay
Additional crouch test to cover UE-54875
Change 3881794 by Mieszko.Zielinski
Fixed a bug in FVisualLoggerHelpers::GetCategories resulting in losing verbosity information #UE4
Change 3884503 by Mieszko.Zielinski
Fixed TopDown code template to make it compile after navsys refactor #UE4
#jira UE-55039
Change 3884507 by Mieszko.Zielinski
Switched ensures in UNavigationSystemV1:SimpleMoveToX to error-level logs #UE4
It's an error rather than a warning because the functions no longer do anything. Making it work would require a cyclic dependency between NavigationSystem and AIModule.
#jira UE-55033
Change 3884594 by Mieszko.Zielinski
Added a const FNavigationSystem::GetCurrent version #UE4
lack of it was causing KiteDemo to not compile.
Change 3884602 by Mieszko.Zielinski
Mac editor compilation fix #UE4
Change 3884615 by Mieszko.Zielinski
Fixed FAIDataProviderValue::GetRawValuePtr not being accessible from outside of AIModule #UE4
Change 3885254 by Mieszko.Zielinski
Guessfix for UE-55030 #UE4
The name of NavigationSystem module was put in wrong in the IMPLEMENT_MODULE macro
#jira 55030
Change 3885286 by Mieszko.Zielinski
Changed how NavigationSystem module includes DerivedDataCache module #UE4
#jira UE-55035
Change 3885492 by mason.seay
Minor tweaks to animation
Change 3885773 by mason.seay
Resaving assets to clear out warning
Change 3886433 by Mieszko.Zielinski
Fixed TP_TopDownBP's player controller BP to not use deprecated nav functions #UE4
#jira UE-55108
Change 3886783 by Mieszko.Zielinski
Removed silly inclusion of NavigationSystemTypes.h from NavigationSystemTypes.h #UE4
Change 3887019 by Mieszko.Zielinski
Fixed accessing unchecked pointer in ANavigationData::OnNavAreaAdded #UE4
Change 3891031 by Mieszko.Zielinski
Fixed missing includes in NavigationSystem.cpp #UE4
Change 3891037 by Mieszko.Zielinski
ContentEample's navigation fix #UE4
#jira UE-55109
Change 3891044 by Mieszko.Zielinski
PR #4456: Fix bug in UAISense_Sight::OnListenerForgetsActor (Contributed by maxtunel)
#UE4
Change 3891598 by mason.seay
Resaving assets to clear out "empty engine version" spam
Change 3891612 by mason.seay
Fixed deprecated Set Text warnings
Change 3893334 by Mieszko.Zielinski
Fixed a bug in navmesh generation resulting in not removing layers that ended up empty after rebuilding #UE4
#jira UE-55041
Change 3893394 by Mieszko.Zielinski
Fixed navmesh debug drawing to properly display octree elements with "per instance transforms" (like instanced SMs) #UE4
Also, added a more detailed debug drawing of navoctree contents (optional, but on by default).
Change 3893395 by Mieszko.Zielinski
Added a bit of code to navigation system's initialization that checks the enegine ini for sections refering to the moved navigation classes, and complain about it #UE4
The message is printed as an error-level log line and it says what should the offending section be renamed to.
Change 3895563 by Dan.Oconnor
Mirror 3895535
Append history from previous branches in source control history view
#jira none
Change 3896930 by Mieszko.Zielinski
Added an option to tick navigation system while the game is paused #UE4
Controlled via NavigationSystemV1.bTickWhilePaused, ini- and ProjectSettings-configurable.
#jira UE-39275
Change 3897554 by Mieszko.Zielinski
Unified how NavMeshRenderingComponent draws navmesh and octree collision's polys #UE4
Change 3897556 by Mieszko.Zielinski
Fixed what kind of nav tile bounds we're sending to nav-colliding elements when calling 'per-instance transform' delegate #UE4
#jira UE-45261
Change 3898064 by Mieszko.Zielinski
Made SM Editor display AI-navigation-related whenever bHasNavigationData is set to true #UE4
#jira UE-50436
Change 3899004 by Mieszko.Zielinski
Fixed UEnvQueryItemType_Actor::GetItemLocation and UEnvQueryItemType_Actor::GetItemRotation to return FAISystem::InvalidLocation and FAISystem::InvalidRotation respectively instead of '0' when hosted Actor ptr is null #UE4
Note for programmers: this changes the default behavior of this edge case. You might want to go through your code and check if you're comparing UEnvQueryItemType_Actor::GetItem*'s results to 0.
Change 3901733 by Mieszko.Zielinski
Made FEnvQueryInstance::PrepareContext implementations returning vectors and rotators ignore InvalidLocation and InvalidRotation (respectively) #UE4
Change 3901925 by Ben.Zeigler
#jira UE-55395 Fix issue where the cooker could load asset registry caches made in -game that do not have dependency data, leading to broken cooks
Change 3902166 by Marc.Audy
Make ULevel::GetWorld final
Change 3902749 by Ben.Zeigler
Fix it so pressing refresh button in asset audit window actually refreshes the asset management database
Change 3902763 by Ben.Zeigler
#jira UE-55407 Fix it so editor tutorials are not cooked unless referenced, by correctly marking soft object paths imported from editor project settings as editor-only
Change 3905578 by Phillip.Kavan
The UX to add a new parameter on a Blueprint delegate is now at parity with Blueprint functions.
#4392
#jira UE-53779
Change 3905848 by Phillip.Kavan
First pass of the experimental Blueprint graph bookmarks feature.
#jira UE-10052
Change 3906025 by Phillip.Kavan
CIS fix.
Change 3906195 by Phillip.Kavan
Add missing icon file.
Change 3906356 by Phillip.Kavan
Moved Blueprint bookmarks enable flag into EditorExperimentalSettings for consistency with other options.
Change 3910628 by Ben.Zeigler
Partial fix for UE-55363, this allows references to ObjectRedirectors to be switched from parent class to a child class on load as this should always be safe
This does not actually fix UE-55363 because that case is changing from UMaterial to UMaterialInstanceConstant, and those are siblings instead of parent/child
Change 3912470 by Ben.Zeigler
#jira UE-55586 Fix issue with saving redirected soft object paths where the export sort could accidentally cause the parent CDO to get modified between name tagging and writing exports, which is unsafe because due to delta serialization it would try to write names that were not previously tagged
Change 3913045 by Marc.Audy
Fix issues where recursion in to child actors wasn't being handled correctly
Change 3913398 by Fred.Kimberley
Fixes a misspelled name for one of the classes in the ability system.
PR #4430: Fixed spelling of FGameplayAbilityInputBinds. (Contributed by IntegralLee)
#github
#jira UE-54327
Change 3918016 by Fred.Kimberley
Ensure AllocGameplayEffectContext is being used in all cases where FGameplayeEffectContext is being created.
#jira UE-52668
PR #4250: Only create FGameplayEffectContext via AbilitySystemGlobals::.AllocGameplayEffectContext (Contributed by slonopotamus)
#github
Change 3924653 by Mieszko.Zielinski
Fixed LoadEngineClass local to UnrealEngine.cpp to check class redirects before falling back to default class instance #UE4
#jira UE-55378
Change 3925614 by Phillip.Kavan
Fix ForEachEnum node to skip over hidden enum values in new placements by default.
Change summary:
- Added FKismetNodeHelperLibrary::ShouldHideEnumeratorIndex() as an internal-only Blueprint node support API.
- Modified FForExpandNodeHelper::AllocateDefaultPins() to add a "Skip Hidden" input pin (advanced). Pin default value is false.
- Added a UK2Node_ForEachElementInEnum::PostPlacedNewNode() override to set the default value of the "Skip Hidden" input pin to 'true' for all new node placements.
- Modified UK2Node_ForEachElementInEnum::ExpandNode() to include additional expansion logic based on the "Skip Hidden" input pin. For new placements (i.e. when the pin defaults to 'true'), an intermediate branch node will now be inserted into the compiled execution sequence to test for "hidden" metadata on the value before executing the loop body. If the input pin is linked, another intermediate branch will be inserted into the execution sequence prior to the "hidden" metadata test. All existing placements of the node will remain as-is after compilation (i.e. no additional intermediate branch nodes will be included in the expansion).
#jira UE-34563
Change 3925649 by Marc.Audy
Fix up issue post merge from Main with navigation system refactor
Change 3926293 by Phillip.Kavan
Temp fix to unblock CIS.
#jira UE-34563
Change 3926523 by Marc.Audy
Ensure that a renamed Actor is in the correct Actors array
#jira UE-46718
Change 3928732 by Fred.Kimberley
Unshelved from pending changelist '3793298':
#jira UE-53136
PR #4287: virtual additions for AttributeSet extendability (Contributed by TWIDan)
#github
Change 3928780 by Marc.Audy
PR #4309: The display names of the functions. (Contributed by SertacOgan)
#jira UE-53334
Change 3929730 by Joseph.Wysosky
Submitting test assets for the new Blueprint Structure test cases
Change 3931919 by Joseph.Wysosky
Deleting BasicStructure asset to rest MemberVariables back to default settings
Change 3931922 by Joseph.Wysosky
Adding BasicStructure test asset back with default members
Change 3932083 by Phillip.Kavan
Fix Compositing plugin source files to conform to updated relative include path specifications.
- Encountered while testing Blueprint nativization of assets with dependencies on Composure/LensDistortion APIs.
Change 3932196 by Dan.Oconnor
Resetting a property to default now uses the same codepath as assigning the value from the slate control
#jira UE-55909
Change 3932408 by Lukasz.Furman
fixed behavior tree services attached to task nodes being sometimes recognized as root level
#jira nope
Change 3932808 by Marc.Audy
PR #4083: Change to UK2Node_BaseAsyncTask to have pin tooltips on latent nodes (Contributed by dwrpayne)
#jira UE-50871
Change 3934101 by Phillip.Kavan
Revise ForEachEnum node expansion logic to exclude hidden values at compile time.
Change summary:
- Removed UKismetNodeHelperLibrary::ShouldHideEnumeratorIndex() (no longer in use).
- Modified UK2Node_ForEachElementInEnum::ExpandNode() to include an enum switch node in the expansion, which will exclude hidden values when constructed. The additional expansion will occur if the enum type contains at least one hidden value.
#jira UE-34563
Change 3934106 by Phillip.Kavan
Mirrored 4.19 fixes to allow for EngineTest iteration w/ nativization enabled.
Change summary:
- Mirrored CLs 3876918, 3878968, 3883257, 3885566, 3912161 and 3920519.
Change 3934116 by Phillip.Kavan
UBT: Explicitly define the DEPRECATED_FORGAME macro only for non-engine modules.
Change summary:
- Modified UEBuildModule.SetupPrivateCompileEnvironment() to check the 'bTreatAsEngineModule' flag from the rules assembly rather than testing the module's build type.
Change 3934382 by Phillip.Kavan
Avoid inclusion of monolothic engine header files in nativized Blueprint codegen.
Change 3936387 by Mieszko.Zielinski
Added a flag to NavModifierComponent to control whether agent's height is being used while expadning modifier's bounds during navmesh generation #UE4
Change 3936905 by Ben.Marsh
Disable IncludeTool warning for DEPRECATED_FORGAME macro; we expect this to be different for game modules.
Change 3940537 by Marc.Audy
Don't allow maps, sets, or arrays with an actor inner type in user defined structs to select an actor from the currently open level as default value.
#jira UE-55938
Change 3940901 by Marc.Audy
Properly name CVar global to reflect what it is for
Change 3943043 by Marc.Audy
Fix world context functions not being able to be used in CheatManager derived blueprints
#jira UE-55787
Change 3943075 by Mieszko.Zielinski
Moved path-following related delegats' interface from NavigationSystemBase over to a new IPathFollowingManagerInterface #UE4
Change 3943089 by Mieszko.Zielinski
Fixed how WorldSettings.NavigationSystemConfig gets created #UE4
Made it so that there's always a NavigationSystemConfig instance present, but added a 'Null' config - this was required due to issues with creation/serialization of instanced subobjects.
The change required adding copying constructors to FNavAgentProperties and FNavDataConfig.
Also, fixed FNavAgentProperties.IsEquivalent to be symetrical.
Change 3943225 by Marc.Audy
Fix spelling of Implements
Change 3950813 by Marc.Audy
Include owner in attachment mismatch ensure
#jira UE-56148
Change 3950996 by Marc.Audy
Fix cases where bit packed properties used the entire byte not just the bit when interacting with boolean arrays
#jira UE-55482
Change 3952086 by Marc.Audy
PR #4483: Add Missing Radial Damage Multicast Delegate (Contributed by error454)
#jira UE-54974
Change 3952720 by Marc.Audy
PR #4575: Check if *Pawn* is a null Pointer (Contributed by dani9bma)
#jira UE-56248
Change 3952804 by Richard.Hinckley
Changes to BP API export commandlet to support better plugin exporting. Contributed by Harry Wang of Google.
Change 3952962 by Marc.Audy
UHT now validates that ExpandEnumAsExecs references a valid parameter to the function.
#jira UE-49610
Change 3952977 by Phillip.Kavan
Fix EDL cycle at load time in nativized cooked builds when a circular dependency exists between converted and unconverted assets.
Change summary:
- Added FGatherConvertedClassDependencies::MarkUnconvertedClassAsNecessary().
- Modified FFindAssetsToInclude::MaybeIncludeObjectAsDependency() to mark unconverted BPGCs (e.g. DOBPs) as necessary for conversion when the potential for a circular dependency exists so that we generate stub wrappers rather than depend on them directly.
- Fixed a few typos in existing API names.
#jira UE-48233
Change 3953658 by Marc.Audy
(4.19.1) Fix inserting a reroute node causing connections to break on a GetClassDefaults node
#jira UE-56270
Change 3954727 by Marc.Audy
Add friendly name to custom version mismatch message
Change 3954906 by Marc.Audy
(4.19.1) Fix crash when undoing changes related to reroute nodes connected to a GetClassDefaults node
#jira UE-56313
Change 3954997 by Marc.Audy
Ensure and return null if GetOuter<WithinClass> is called on a CDO for uclasses declared as within another so we don't get a UPackage c-style cast to the expected outer type
Change 3955091 by Marc.Audy
Do not register subcomponents that are not auto register
#jira UE-52878
Change 3955943 by Marc.Audy
Make AbilitySystemComponent pass parameters by const& instead of ref as no state is being changed
Change 3956185 by Zak.Middleton
#ue4 - Fix Characters using scoped movement updates (the default) not visually rotating when rotated at small rates at high framerate.
This was caused by FScopedMovementUpdate::IsTransformDirty() using a larger FTransform comparison tolerance than USceneComponent::UpdateComponentToWorldWithParent().
#jira none
Change 3958102 by Marc.Audy
Clean out dead code path from k2node_select
Select node now resets pins to wildcard if none of the pins are in use
Change 3958113 by Lukasz.Furman
added OnSearchStart call to root level behavior tree services
#jira UE-56257
Change 3958361 by Marc.Audy
Fix literal input pins on select being set to wildcard during compilation
Change 3961148 by Dan.Oconnor
Mirror 3961139 from Release 4.19
Fix for placeholder objects being left behind when loading certain UMG assets - this could causea crash when loading UMG assets
#jira UE-55742
Change 3961640 by Marc.Audy
Select node now displays Add Pin button
Undo of changing select node index type now works correctly.
Connections to option pins now maintained across change of index pin type
#jira UE-20742
Change 3962262 by Marc.Audy
Display "Object Reference" instead of "Object Object Reference" and "Soft Object Reference" instead of "Object Soft Object Reference"
Change 3962795 by Phillip.Kavan
Fix for a crash when cooking with Blueprint nativization enabled after encountering a nested instanced editor-only default subobject inherited from a native C++ base class.
- Mirrored from //UE4/Release-4.19 (3962782)
#jira UE-56316
Change 3962991 by Marc.Audy
Modify Negate/Increment/Decrement Int/Float so that the output is always the desired result even if a non-mutable pin is passed in.
Note that this can mean the result being returned and the value of the pin passed in if queried again will not be the same (in the case of pure nodes).
#jira UE-54807
Change 3963114 by Marc.Audy
Fix ensures/crash as a result of UClass expecting to be able to access the UPackage of CDOs via the GetOuterUPackage call.
Change 3963427 by Marc.Audy
Fix initialization order
Initialize bUseBackwardsCompatForEmptyAutogeneratedValue
Change 3963781 by Marc.Audy
Fix without editor compiles
Change 3964576 by Marc.Audy
PR #4599: : Working category for timelines (Contributed by projectgheist)
#jira UE-56460
#jira UE-26053
Change 3964782 by Dan.Oconnor
Mirror 3964772 from Release 4.19
Fix crash when force deleting certain blueprints, we can only check for authoritativeness while reinstancing
#jira UE-56447
Change 3965156 by Mieszko.Zielinski
PR #4592: Visual Logger optimization to fix rapid FPS drop when many items are hidden (Contributed by tstaples)
#jira UE-56435
Change 3965173 by Marc.Audy
(4.19.1) Fix incorrectly switching a cooling down tick to be an enabled tick when marking it enabled.
#jira UE-56431
Change 3966117 by Marc.Audy
Fix select nodes inside macros using wildcard array inputs having issues resolving type.
#jira UE-56484
Change 3878901 by Mieszko.Zielinski
NavigationSystem's code refactored out of the engine and into a new separate module #UE4
The CL contains required changes to all of our internal projects. Fortnite and Paragon have been tested, while the rest have been only compiled.
Change 3879409 by Mieszko.Zielinski
Further fallout fixes after ripping out NavigationSystem out of the engine #UE4
- Fixed bad ini redirects (had NavigationSystem.NavigationSystem instead of NavigationSystem.NavigationSystemV1)
- Added missing FNavigationSystem::GetDefaultNavDataClass binding (resulting in QAGame's func tests failing)
Change 3897655 by Ben.Zeigler
#jira UE-55211 Fix it so literal soft object pins on blueprint nodes get correctly cooked/referenced
It now sets the thread context to skip internal serialize and calls the archive's serialize function instead of bypassing it, which allows it to pick up references
Change 3962780 by Marc.Audy
When preventing a split pin from being orphaned, all sub pins must also be prevented.
#jira UE-56328
Repack members of UEdGraphPin to avoid wasted space (saves 16bytes)
[CL 3967553 by Marc Audy in Main branch]
2018-03-27 14:27:07 -04:00
# include "AI/NavigationSystemBase.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Editor/UnrealEdEngine.h"
# include "Settings/LevelEditorMiscSettings.h"
# include "Misc/ConfigCacheIni.h"
# include "Misc/FeedbackContext.h"
# include "EngineUtils.h"
# include "Editor.h"
# include "FileHelpers.h"
# include "UnrealEdGlobals.h"
# include "Engine/LevelStreaming.h"
2014-03-14 14:13:41 -04:00
# include "LevelUtils.h"
# include "EditorLevelUtils.h"
# include "BusyCursor.h"
# include "Dialogs/SBuildProgress.h"
# include "LightingBuildOptions.h"
# include "AssetToolsModule.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Logging/MessageLog.h"
2015-07-13 05:27:21 -04:00
# include "HierarchicalLOD.h"
2015-10-28 19:18:20 -04:00
# include "ActorEditorUtils.h"
2016-04-04 18:44:59 -04:00
# include "MaterialUtilities.h"
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3219450)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3148067 on 2016/10/01 by Daniel.Wright
Support for ReflectionEnvironment and light type show flags with ForwardShading
Change 3149085 on 2016/10/03 by Daniel.Wright
Support for ReflectionEnvironment show flag in base pass reflections without any shader overhead
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3186067 on 2016/11/03 by Daniel.Wright
Updated Stationary primitive tooltip to indicate that it allows the primitive to be changed, but not moved
Change 3186069 on 2016/11/03 by Daniel.Wright
Using a weighted geometric mean to combine multiple Distance Field Indirect Shadows, greatly reduces over-occlusion when overlap is high
Change 3186084 on 2016/11/03 by Mark.Satterthwaite
Duplicate 3172511:
Don't set Metal resource option fields on texture descriptors when running on an OS that doesn't support them.
#jira UE-37481
Change 3186089 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3169764:
Fixed automatic conversion of G8_sRGB into RGBA8_sRGB required for Mac Metal, which fixes FORT-27627.
#jira FORT-27627
Change 3186113 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183807:
Change the way we access the Metal viewport's backbuffer, to reduce possible causes of FORT-31649:
- Added console variable "rhi.Metal.SupportsIntermediateBackBuffer" to control whether to use an extra render-target so we can support screenshots & movie capture, or render directly to the back-buffer to save memory & GPU performance. Still defaults to ON for Mac & OFF for iOS/tvOS.
- Change the way we handle updates to the back-buffer size to ensure that the different threads access their intended version.
#jira FORT-31649
Change 3186116 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183823:
Record Metal resource & state objects used in a command-buffer when rhi.Metal.RuntimeDebugLevel is set to 3 or higher. The object labels, types & descriptions will be printed on failure - if the object is deleted prior to this then we have a lifetime error and it will crash at this point and can be debugged further using our -metalretainrefs command-line option or Xcode's zombie-objects.
Used to verify that FORT-31649 is not a simple resource lifetime error and thereby speed up Apple/vendor investigations.
#jira FORT-31649
Change 3186818 on 2016/11/04 by Chris.Bunner
PR #2907 Export UMaterialExpressionNoise (contributed by kayosiii).
Change 3186979 on 2016/11/04 by Rolando.Caloca
DR - Misc minor cleanup
Change 3187169 on 2016/11/04 by Uriel.Doyon
Incremental insertion of level data between PostLoad and AddToWorld
Change 3187205 on 2016/11/04 by Mark.Satterthwaite
Compile fixes for iOS.
Change 3187389 on 2016/11/04 by Uriel.Doyon
Fix for possible stall when loading hidden level
Change 3187598 on 2016/11/04 by Michael.Trepka
MetalViewport compile fix
Change 3187678 on 2016/11/04 by Uriel.Doyon
Fix for landscape grass textures not being streamed in correctly.
Change 3187731 on 2016/11/04 by Rolando.Caloca
DR - Start making type safe some cross compiler enums
Change 3187824 on 2016/11/04 by Rolando.Caloca
DR - clang compile fix
Change 3187953 on 2016/11/04 by Rolando.Caloca
DR - vk - Mac compile fix
Change 3188696 on 2016/11/07 by Mark.Satterthwaite
Another iOS compile fix for new MetalViewport validation code.
Change 3188906 on 2016/11/07 by Rolando.Caloca
DR - Show permutation of LUTBlender
Change 3189094 on 2016/11/07 by Chris.Bunner
Fix RemoveAAJitter from projection matrix.
#jira UE-37701, UE-38003
Change 3189134 on 2016/11/07 by Daniel.Wright
Fix for CreateRenderTarget2D called in construction script during cooking
Change 3189145 on 2016/11/07 by Chris.Bunner
Follow-up to CL 3186818, export UMaterialExpressionVectorNoise.
Change 3189239 on 2016/11/07 by Daniel.Wright
Added show flag for Contact Shadows, disabled in planar reflections
Change 3189252 on 2016/11/07 by Daniel.Wright
Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3189406 on 2016/11/07 by Mark.Satterthwaite
Really fix the last of the iOS compile errors from changes to the MetalViewport code.
Change 3190854 on 2016/11/08 by Ben.Woodhouse
XB1: Fix memory corruption with RHICreateVertexBuffer and RHICreateIndexBuffer when using initial data (Procedural Mesh Component crash)
#jira UE-34264
#fyi james.golding
#fyi keith.judge
Change 3190962 on 2016/11/08 by Olaf.Piesche
Unshelved from pending changelist '3176615' - Gil's fix for race condiiton with particle vertex factory reuse across different passes; potential to fix a number of issues
Change 3191959 on 2016/11/09 by Uriel.Doyon
Removed some static primitives from the dynamic primitive handler for texture streaming.
Change 3193122 on 2016/11/10 by Chris.Bunner
Always update non-preview material resources for use in code preview.
#jira UE-38223
Change 3193190 on 2016/11/10 by Gil.Gribb
UE4 - Fixed rare bug with shadow groups rendering things that have not been setup to render this frame.
#jira UE-36379
Change 3193523 on 2016/11/10 by Uriel.Doyon
Fixed incorrect section bounds used for texture streaming.
Change 3193962 on 2016/11/10 by Uriel.Doyon
Added defrag of dynamic bounds used for the texture streaming. Allows to remove unused bounds over time.
Change 3193974 on 2016/11/10 by Uriel.Doyon
New "Required Texture Resolution" view mode. Showing the ratio between the currently streamed texture resolution and the resolution wanted by the GPU.
Change 3194109 on 2016/11/10 by Uriel.Doyon
Another patch on material bounds used for texture streaming.
Change 3194665 on 2016/11/11 by Chris.Bunner
Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194734 on 2016/11/11 by Rolando.Caloca
DR - vk - Simplified some texture casting
Change 3194867 on 2016/11/11 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3195176 on 2016/11/11 by Chris.Bunner
Fixed incorrectly updated NVAPI error.
Change 3195425 on 2016/11/11 by Uriel.Doyon
Fixed possible invalid level reference in the texture streamer
Change 3196512 on 2016/11/14 by Gil.Gribb
Merging //UE4/Dev-Main@3196156 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3196750 on 2016/11/14 by Marcus.Wassmer
Fix ordering problem with GPU cache transitions
Change 3196815 on 2016/11/14 by Daniel.Wright
Suppressed 'Instanced stereo rendering is not supported' warning showing up in CIS
Change 3196818 on 2016/11/14 by Daniel.Wright
Fixed FIndirectLightingCache::UpdateCachePrimitivesInternal churning through a bunch of temporary memory
Change 3196819 on 2016/11/14 by Daniel.Wright
Volume lighting samples are allowed outside of the importance volume if their influence affects the volume. Fixes black indirect lighting on movable components in maps with small importance volumes.
Volume lighting samples placed on surfaces use a radius that covers the layer height spacing, which prevents an uncovered region between layers
Change 3197243 on 2016/11/14 by Uriel.Doyon
Async Task For Updating static component LastRender time
#jira UE-24268
Change 3197359 on 2016/11/14 by Daniel.Wright
Added Inscattering Texture controls to ExponentialHeightFog
* When InscatteringColorCubemap is specified, directional light inscattering is disabled
* Lerps betwen 1x1 mip at NonDirectionalInscatteringColorDistance to mip 0 at FullyDirectionalInscatteringColorDistance
* Added FogCutoffDistance, so artists can prevent fog on skyboxes (requires fog to be setup matching the fog that was rendered into the sky texture so that distant mountains match)
* Fog shader permutations based on what feature is enabled
Change 3198419 on 2016/11/15 by Chris.Bunner
PS4 HDR: Runtime toggle (backbuffer recreation on resize matching), UI composition. Matches PC behavior and controls.
HDR: Generalized buffer formats, cvar consistency pass, LUT for UI composition, refactoring common functions.
Exposed RHICreateTargetableShaderResource3D.
Moved some (translucent) volume rendering helpers to allow access in Slate.
Change 3198822 on 2016/11/15 by Daniel.Wright
Mac compile fix
Change 3199509 on 2016/11/15 by Uriel.Doyon
Added support for viewmode param asset name (and note just param value).
Used to investigate texture streamer behavior.
Change 3199578 on 2016/11/15 by Rolando.Caloca
DR - Add some shader resource tables to SCW when running with -directcompile
Change 3199698 on 2016/11/15 by Rolando.Caloca
DR - vk - Refactor shader & descriptor bindings
Change 3199712 on 2016/11/15 by Rolando.Caloca
DR - vk - r.Vulkan.StripGlsl to always strip glsl at runtime to save memory per shader
Change 3199717 on 2016/11/15 by Rolando.Caloca
DR - vk - Show hitching PSO info again
Change 3199750 on 2016/11/15 by Rolando.Caloca
DR - SCW clang compile fixes
Change 3200353 on 2016/11/16 by Rolando.Caloca
DR - vk - Mac fix
Change 3200358 on 2016/11/16 by Chris.Bunner
Only allow UI composition on platforms we currently use it.
Change 3200823 on 2016/11/16 by Chris.Bunner
Remove expression key attribute ID when not translating an attribute output to allow intended expression sharing.
#jira UE-38699
Change 3200947 on 2016/11/16 by Mark.Satterthwaite
Fix UE-38695 by not trying to resize the viewport on the wrong thread.
#jira UE-38695
Change 3201069 on 2016/11/16 by Daniel.Wright
Fog inscattering texture limited to SM4 and above, fixes ES2 compile errors
Change 3201346 on 2016/11/16 by Brian.Karis
Temporal AA fix for correct edge gradients.
Filtering now combined with importance sampling.
Enabled Catmull-Rom resolve filter. Results are now slightly sharper.
Fixed antighosting. Will yet require a dilation to be perfect.
Optimized bicubic filtering to 5 taps instead of 9.
Cleaned out unused code.
Change 3201369 on 2016/11/16 by Brian.Karis
Bicubic texture sample
Change 3201522 on 2016/11/16 by Rolando.Caloca
DR - vk - Fix static analysis issues
Change 3201878 on 2016/11/17 by Chris.Bunner
Temporarily disable Nvapi HDR error logging.
#jira UE-38529
Change 3202108 on 2016/11/17 by Simon.Tovey
Assets with easy repro for flickering particles bug
Change 3202181 on 2016/11/17 by Rolando.Caloca
DR - vk - CIS android fix
Change 3202325 on 2016/11/17 by Ben.Woodhouse
Integrate 4.14.1 fix from 14 //UE4/Release-4.14 (@3201850)
Fix CreateVertexbuffer and CreateIndexBuffer memory corruption (Procedural Mesh Component crash)
#jira UE-34264
Change 3204394 on 2016/11/18 by Guillaume.Abadie
PR #2808: AlphaComposite Fog Opacity fix (Contributed by moritz-wundke)
#br Ben.Woodhouse
Change 3204428 on 2016/11/18 by Guillaume.Abadie
Fixes a couple of issues in decals:
* Crash in FDecalDrawingPolicyFactory::DrawMesh()
* ActorPostion material expression
* PixelNormalWS material expression
* Missing renaming from DEFERRED_DECAL to DECAL_PRIMITIVE
#jira UE-38327, UE-38158, UE-37818, UE-37350
Change 3204429 on 2016/11/18 by Uriel.Doyon
Darker default undefined accuracy.
Reenabled the texture streaming build in the build all.
Change 3204458 on 2016/11/18 by Chris.Bunner
Shader truncation warnings fix.
Change 3204459 on 2016/11/18 by Chris.Bunner
Engine 'Passthrough' material fuction fix. V4 is now actually a V4.
Change 3204460 on 2016/11/18 by Chris.Bunner
Correctly handle some known Nvapi warnings.
#jira UE-38529
Change 3204653 on 2016/11/18 by Marc.Olano
Helper functions for tiled textures
Checking in for Ryan Brucks
Change 3204863 on 2016/11/18 by Arne.Schober
DR - Replaced ENQUEUE_UNIQUE_RENDER_COMMAND with a Debuggable template Implementation
Change 3204939 on 2016/11/18 by Arne.Schober
DR - Make clang happy
Change 3204968 on 2016/11/18 by Arne.Schober
DR - UE-38494 - Fixed SpeedTree Wind crash, when force deleting the Asset.
Change 3206293 on 2016/11/21 by Uriel.Doyon
New member bHasStreamingUpdatePending in UTexture2D to delay update of global distance fields.
Set to true when the streamer can possibly load a mip in the near future.
#jira UE-37787
Change 3206551 on 2016/11/21 by Chris.Bunner
Added material update context when forcing all shaders to recompile.
#jira UE-38481
Change 3206644 on 2016/11/21 by Benjamin.Hyder
Updating Planar Reflection example in TM-Shadermodels.
Change 3206899 on 2016/11/21 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3206900 on 2016/11/21 by Rolando.Caloca
DR - Added missing strings for shader formats
Change 3206983 on 2016/11/21 by Rolando.Caloca
DR - vk - Support for SV_Coverage
Change 3207237 on 2016/11/22 by Simon.Tovey
Exporting particle module base and a couple of child classes as it's commonly requested.
#test compiles
Change 3207241 on 2016/11/22 by Gil.Gribb
Merging //UE4/Dev-Main@3206998 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3207520 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //Fortnite/Main@3206301
Fixed GPU hang in Zone Map view. Was an issue with RenderThread using the device context without appropriate RHIThread flushes.
#jira FORT-31616
#code_review keith.judge
Change 3207541 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //fortnite/Main@3207422
* Fix UpdateTexture3D to create a staging texture of the region to update rather than the whole texture. This prevents distance fields crashing during update (allocating 18GB per frame in some cases)
* Put UpdateTexture2D DMA support onto a cvar, disabled by default (corruption issues reported by licensees, plus not sure it's actually faster - could be slower due to reduced bandwidth; issues reported by licensees)
* Fix UpdateTexture2D to only create a staging texture of the region to update, saving memory
#jira UE-38609
Change 3207654 on 2016/11/22 by Chris.Bunner
Don't flag 16-bit PNG/JPG textures as sRGB on import.
#jira UE-30279
Change 3208434 on 2016/11/22 by Rolando.Caloca
DR - vk - UAV transitions
Change 3208490 on 2016/11/22 by Chris.Bunner
Break material code sharing when we detect an unresolvable loop.
By default change IsResultMA loop detection to stop on functions as we can determine type definitively.
Unified IsResultMA detection across switch nodes.
Change 3208860 on 2016/11/23 by Rolando.Caloca
DR - vk - Fix some format issues
Change 3209265 on 2016/11/23 by Arne.Schober
DR - originally unshelved from 3153924 - Made Depth and Velocity Rendering Passes to use PSO only RHI interface,
We are now passing down two structs that collect all the necessary information for the drawing policies to construct a PSO object.
One during construction of the Policy, which contains information abouyt the CullMode, FillMode and PrimType.
And another during rendering that passes infomation like BlendState and DepthStencilState down to the low levelrenderer into SetSharedState.
Performance of the static drawlist ist slightly slower (less than 0.1ms on Consoles) due to some addtional branches and copies. The branches in the FDrawingPolicyRenderState will go away as soon as everything is converted to use the PSO interface.
Performace of the GPU is slightly better due to less context rolls (mainly CullMode sorts in differently now)
Change 3209305 on 2016/11/23 by Guillaume.Abadie
Fix contact shadow's assemption on objects thickness
Change 3209334 on 2016/11/23 by Brian.Karis
Fixed TAA handling of alpha. Switched the meaning of AA_ALPHA to make sense.
Change 3209903 on 2016/11/24 by Guillaume.Abadie
Cherry picks alpha through post processing changelists 3201959, 3204143 and 3209883 from //UE4/Private-Partner-NREAL
Change 3209973 on 2016/11/24 by Ben.Woodhouse
Fix D3D11 and 12 static analysis warnings reported by Rob Troughton of Coconut Lizard (http://coconutlizard.co.uk/blog/ue4/pvs-studio-part5/)
Change 3210023 on 2016/11/24 by Uriel.Doyon
Fixed an issue with DropDetail when FixedFrameRate was set to a value smaller than MinDesiredFrameRate.
#jira UE-37210
Change 3210026 on 2016/11/24 by Ben.Woodhouse
Disable renderthread hang detection if a debugger is present, so we can debug the renderthread without crashing
Change 3210049 on 2016/11/24 by Ben.Woodhouse
Fix mac build
Change 3210071 on 2016/11/24 by Uriel.Doyon
Fixed an issue with masked materials and shader complexity viewmode when DBuffer Decals are enabled.
#jira UE-37542
Change 3210374 on 2016/11/25 by Ben.Woodhouse
* Fix issues with fast cleared dbuffer targets not being resolved when no decals are in the scene. This caused graphical corruption on XB1 and ensure failures on PS4 (with RHIThread disabled)
* Move Decal rendertarget manager function implementations out of the header.
#jira UE-38879
Change 3210390 on 2016/11/25 by Uriel.Doyon
Fixed cubemap resourcesize not taking into account mipgen settings
#jira UE-37045
Change 3210407 on 2016/11/25 by Uriel.Doyon
"resavepackages" commandlet now supports -buildtexturestreaming that rebuilds the map texture streaming data.
That can be used in combination with -buildlighting.
Change 3210563 on 2016/11/27 by Rolando.Caloca
DR - vk - Integrate cached memory fixes and PF_D24 format fix
#jira UE-39025
PR #2974
Change 3210564 on 2016/11/27 by Rolando.Caloca
DR - Fix for GL linker
PR #2975
#jira UE-39029
Change 3210592 on 2016/11/27 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3210597 on 2016/11/27 by Rolando.Caloca
DR - vk - Prep for staging UB copies to GPU memory
Change 3210600 on 2016/11/27 by Rolando.Caloca
DR - vk - Extract generic range code
Change 3210613 on 2016/11/27 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOnDispatch
Change 3211054 on 2016/11/28 by Rolando.Caloca
DR - vk - Missing reference
Change 3211330 on 2016/11/28 by Chris.Bunner
Shader compile error for max texture coordinate count on skinned meshes.
Change 3211384 on 2016/11/28 by Arne.Schober
DR - Enforce move on EnqueueRenderCommand Lambda
Change 3211431 on 2016/11/28 by Gil.Gribb
Merging //UE4/Dev-Main@3211016 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3211738 on 2016/11/28 by Gil.Gribb
IWYU fixes after merge
Change 3212231 on 2016/11/28 by Richard.Wallis
Fix build errors
Change 3212253 on 2016/11/28 by Richard.Wallis
Remove MacGraphicsSwitching plugin.
#jira UE-37640
Change 3212310 on 2016/11/28 by Rolando.Caloca
DR - vk - Update glslang to 1.0.33.0
Change 3212446 on 2016/11/28 by Guillaume.Abadie
Implements PreviousFrameSwitch material expression
Change 3212594 on 2016/11/28 by Arne.Schober
DR - Fix missing include
Change 3212681 on 2016/11/29 by Rolando.Caloca
DR - vk - Auto flush for compute shader
Change 3213000 on 2016/11/29 by Gil.Gribb
temp fix for PF_MAX
Change 3213161 on 2016/11/29 by Ben.Woodhouse
Integrate latest D3D12 changes from //depot/Partners/Microsoft/UE4-DX12/...@3211714
Using:
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Runtime/D3D12RHI/...@3211714 //UE4/Dev-Rendering/Engine/Source/Runtime/D3D12RHI/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/ThirdParty/Windows/DirectX/...@3211714 //UE4/Dev-Rendering/Engine/Source/ThirdParty/Windows/DirectX/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Programs/UnrealBuildTool/...@3211714 //UE4/Dev-Rendering/Engine/Source/Programs/UnrealBuildTool/...
Changes from UE4-DX12:
*** CL 3183818 ***
Update D3D12 RHI to 4.14:
- Merged changes from Epic up until 10/20/16
- Fixed an issue where command allocators where resetting too early. I changed to aggressive command list batching by default now that more SubmitCommandListHint calls exist in the upper engine, we don't need to worry about starving the GPU. Fewer ExecuteCommandLists calls means better performance and fewer Signals() so this change provides a GPU perf win.
I had to fix an issue with aggressive batching where we would sometimes hold on to a command list long enough (in the pending list) but hadn't executed it yet. The command allocator was being put back in the queue of allocators during ReleaseCommandAllocator() without a syncpoint set and was thus being reset too early. I added a simple counter to the command allocator so it could track how many command lists were using it. It doesn't need to be thread safe since only one thread uses a command allocator at a time.
I also added some stats around the # command lists and # command allocators since it would be possible to leak command allocators now if it's pending command list count isn't decremented correctly. In that case we'd keep creating new command allocators and eventually run out of memory.
-Remove clear during allocate in the FD3D12FastConstantAllocator and FD3D12FastAllocator. The supplied resource locations are assumed to be new and thus don't need to be cleared.
-Cleanup D3D12RHI stats. There were some unused stats as well as some missing ones.
-Mark shader resource table uniform buffers as dirty only when the shader changes. Cleanup SetComputeShader calls and Dispatch calls to not set/unset the CS for each Dispatch.
-Remove unused Check SRV resolved code that epic added to the D3D11 RHI and was brought over. We dont need it and we won't use this.
-Remove "always on" cycle counters for high frequency RHI methods like RHISetShaderTexture. These should use the engine's stat macros as they are removed on TEST + SHIPPING builds. On Xbox a significant amount of CPU time is spent in things like QueryPerformanceCounter even when STATS aren't enabled. Currently 1% of an entire capture on XBOX is spent inside this call.
I improved and cleaned up high freqency call stacks like:
- RHISetShaderTexture
- RHISetShaderResourceViewParameter
- RHISetShaderParameter
- RHISetUAVParameter
In general I moved to use templated functions, removed unused parameters, unnecessary copies, etc.
-Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Resources should be associated with the rendering thread's frame that it's currently recording command lists for and they shouldnt be cleaned up until those command lists have been translated to D3D12 command lists on the RHI thread AND completed executing on the GPU. This was confirmed to resolve an issue where CBV resources were being released too early.
This work involved a couple changes:
1) Move the "frame" fence to be incremented on the rendering thread (during RHIAdvanceFrameForGetViewportBackBuffer()) so that resources that are deleted from the rendering thread are assosicated with the correct frame count
2) Queue up a command from the rendering thread to signal the "frame" fence. It needs to be queued to ensure that it's signaled at the correct time on the RHI thread (after that frame's command lists have been executed).
-Disable GRHIRequiresEarlyBackBufferRenderTarget. Metal/Vulkan/Xbox11.x already do this. This is used by the Slate renderer during BeginRenderFrame and avoids a SetRenderTargets call.
-Enable GRHISupportsMSAADepthSampleAccess (used in the Editor). This was enabled for D3D11 on SM5, but not for D3D12.
-Delay load D3D12.dll and add root signature 1.1 support.
-Add explicit flush calls to improve resource barrier batching instead of implict flushes inside FConditionalScopeResourceBarrier and FScopeResourceBarrier. Also update those classes with const members.
*** CL 3183824 ***
Fix the D3D12 RHI after integrating UE 4.14 updates:
- Fixed a bug where we would try to get the PSO of a nullptr in SetPipelineState if we needed to reset the current PSO on the cmd list.
- Fixed a spelling error
- Removed the need for bForceState, we use dirty bits now
*** CL 3183830 ***
- GetDebugFlags RHI extension, needed by XB1 movie player.
- Only query memory info if stats are enabled
- Add support for the engine's new RHISubmitCommandsAndFlushGPU function
- Update CommitPendingPipelineState to be Graphics/Compute specific and avoid the need for a IsCompute parameter.
*** CL 3183837 ***
Made PipelineState caches contain pointers to FD3D12PipelineState objects to avoid issues with using pointers to after Find/Add to the maps. TMap indicates that the pointer to the value associated with a key "is only valid until the next change to any key in the map." The lifetime of the PSO pointers is managed by the low level caches (graphics and compute). Added stat for the number of Pipeline State Objects.
*** CL 3183931 ***
Update Windows D3D12 headers and libs to RS1 release bits (10.0.14393.0)
*** CL 3183978 ***
Update UBT Windows build settings:
- Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Delay load D3D12.dll and add root signature 1.1 support.
*** CL 3184132 ***
Fix Xbox PSO cache code where it could leak PSOs. Related to change 3183837.
*** Changelist 3211714 ***
Update D3D12 RHI with fixes:
- Check if we can reserve slots in GatherUniqueSamplerTables
- DirtyState more often in StateCache
- Remove InternalSetSamplerState. The alternate function isn't used.
- Allow MRTClear for arrays with holes in them
- Fix uninitialized descriptors. This was causing a GPU hang on Xbox. We need to set dirty bits for resources bound to slots outside of the current descriptor table's range
- Cleanup SetDescriptorHeap code. Move setting descriptor heap logic to the descriptor cache since it also owns things like the sampler maps. Added members to the descriptor cache to track the last heaps that were set on the command list to avoid dirtying bit unnecessarily.
- Resource transitions: go through Common between queues (3D <--> Compute)
- Fix initial state for placed resources.
- Merging epic
Change 3213250 on 2016/11/29 by Chris.Bunner
GBufferHints tooltip fix.
#jira UE-39103
Change 3213345 on 2016/11/29 by Gil.Gribb
more IWYU fallout
Change 3213676 on 2016/11/29 by Rolando.Caloca
DR - Fix incorrect texture getting cleared
Change 3213728 on 2016/11/29 by Rolando.Caloca
DR - Lambda-ize
Change 3214461 on 2016/11/29 by Ben.Woodhouse
Rollout August QFE4 XDK (required for latest DX12 changes on XB1)
Change 3215317 on 2016/11/30 by Daniel.Wright
PS4 compile fix
Change 3216343 on 2016/11/30 by Arne.Schober
DR - UE-39155 - after talking to Brian it occurred to us that flipping the world space normal is non sensical. And indeed the Grass was using world space normals.
Change 3216844 on 2016/12/01 by Ben.Woodhouse
Fix for static analysis warnings after discussion with Microsoft
Change 3216916 on 2016/12/01 by Gil.Gribb
Merging //UE4/Dev-Main@3216539 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3217385 on 2016/12/01 by Arne.Schober
DR - UE-39218, UE-39221, UE-39224 and potentially UE-39214 - The Stencil bits for Light channels and decal application were not set in the dynamic basepass
Change 3217464 on 2016/12/01 by Ben.Woodhouse
Fix for reflection capture resize assert. The assert is only valid in cooked builds, so disable it in editor
#jira UE-39225
Change 3217534 on 2016/12/01 by Arne.Schober
DR - Fix Merge conflict
Change 3217581 on 2016/12/01 by Rolando.Caloca
DR - Fix assert on debug
Change 3217741 on 2016/12/01 by Benjamin.Hyder
Duplicate audio fix.
Change 3217890 on 2016/12/01 by Rolando.Caloca
DR - Fix widget not rendering properly when hidden
#jira UE-39221
Change 3218129 on 2016/12/01 by Arne.Schober
DR - UE-39214 - Lod dither value as accidently cached accross the static draw list.
Change 3218759 on 2016/12/02 by Guillaume.Abadie
Fixes editor compositing bug caused by alpha through post processing change 3209903
#jira UE-39221
[CL 3219854 by Marcus Wassmer in Main branch]
2016-12-02 16:43:04 -05:00
# include "UnrealEngine.h"
2016-12-12 17:26:59 -05:00
# include "DebugViewModeHelpers.h"
2021-11-25 11:52:31 -05:00
# include "IDirectoryWatcher.h"
# include "DirectoryWatcherModule.h"
2018-05-23 21:04:31 -04:00
# include "MaterialStatsCommon.h"
# include "Materials/MaterialInstance.h"
2019-08-21 08:57:30 -04:00
# include "VirtualTexturingEditorModule.h"
# include "Components/RuntimeVirtualTextureComponent.h"
2020-04-27 16:16:09 -04:00
# include "LandscapeSubsystem.h"
2020-06-23 18:40:00 -04:00
# include "ShaderCompilerCore.h"
2022-05-02 18:06:48 -04:00
# include "AssetRegistry/AssetRegistryModule.h"
2022-01-14 14:27:31 -05:00
# include "Interfaces/IMainFrameModule.h"
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
# include "WorldPartition/IWorldPartitionEditorModule.h"
2022-01-14 14:27:31 -05:00
# include "WorldPartition/SWorldPartitionBuildNavigationDialog.h"
# include "WorldPartition/WorldPartitionBuildNavigationOptions.h"
2014-03-14 14:13:41 -04:00
DEFINE_LOG_CATEGORY_STATIC ( LogEditorBuildUtils , Log , All ) ;
# define LOCTEXT_NAMESPACE "EditorBuildUtils"
extern UNREALED_API bool GLightmassDebugMode ;
extern UNREALED_API bool GLightmassStatsMode ;
extern FSwarmDebugOptions GSwarmDebugOptions ;
2015-09-07 07:48:34 -04:00
const FName FBuildOptions : : BuildGeometry ( TEXT ( " BuildGeometry " ) ) ;
const FName FBuildOptions : : BuildVisibleGeometry ( TEXT ( " BuildVisibleGeometry " ) ) ;
const FName FBuildOptions : : BuildLighting ( TEXT ( " BuildLighting " ) ) ;
const FName FBuildOptions : : BuildAIPaths ( TEXT ( " BuildAIPaths " ) ) ;
const FName FBuildOptions : : BuildSelectedAIPaths ( TEXT ( " BuildSelectedAIPaths " ) ) ;
const FName FBuildOptions : : BuildAll ( TEXT ( " BuildAll " ) ) ;
const FName FBuildOptions : : BuildAllSubmit ( TEXT ( " BuildAllSubmit " ) ) ;
const FName FBuildOptions : : BuildAllOnlySelectedPaths ( TEXT ( " BuildAllOnlySelectedPaths " ) ) ;
const FName FBuildOptions : : BuildHierarchicalLOD ( TEXT ( " BuildHierarchicalLOD " ) ) ;
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
const FName FBuildOptions : : BuildMinimap ( TEXT ( " BuildMinimap " ) ) ;
2016-04-04 18:44:59 -04:00
const FName FBuildOptions : : BuildTextureStreaming ( TEXT ( " BuildTextureStreaming " ) ) ;
2019-08-21 08:57:30 -04:00
const FName FBuildOptions : : BuildVirtualTexture ( TEXT ( " BuildVirtualTexture " ) ) ;
2020-11-26 14:22:44 -04:00
const FName FBuildOptions : : BuildAllLandscape ( TEXT ( " BuildAllLandscape " ) ) ;
2015-09-07 07:48:34 -04:00
2014-03-14 14:13:41 -04:00
bool FEditorBuildUtils : : bBuildingNavigationFromUserRequest = false ;
2015-09-07 07:48:34 -04:00
TMap < FName , FEditorBuildUtils : : FCustomBuildType > FEditorBuildUtils : : CustomBuildTypes ;
FName FEditorBuildUtils : : InProgressBuildId ;
2021-11-25 16:01:29 -05:00
namespace UE : : EditorBuildUtils
{
static bool bNavmeshAllowPartitionedBuildingFromEditor = false ; // Experimental, not enabled by default yet.
static FAutoConsoleVariableRef AllowPartitionedBuildingFromEditor ( TEXT ( " n.bNavmeshAllowPartitionedBuildingFromEditor " ) , bNavmeshAllowPartitionedBuildingFromEditor , TEXT ( " Enable experimental navmesh partition building. " ) , ECVF_Default ) ;
}
2015-09-07 07:48:34 -04:00
/**
* Class that handles potentially - async Build All requests .
*/
class FBuildAllHandler
{
public :
void StartBuild ( UWorld * World , FName BuildId , const TWeakPtr < SBuildProgressWidget > & BuildProgressWidget ) ;
void ResumeBuild ( ) ;
void AddCustomBuildStep ( FName Id , FName InsertBefore ) ;
void RemoveCustomBuildStep ( FName Id ) ;
static FBuildAllHandler & Get ( )
{
static FBuildAllHandler Instance ;
return Instance ;
}
private :
FBuildAllHandler ( ) ;
FBuildAllHandler ( const FBuildAllHandler & ) ;
void ProcessBuild ( const TWeakPtr < SBuildProgressWidget > & BuildProgressWidget ) ;
void BuildFinished ( ) ;
TArray < FName > BuildSteps ;
int32 CurrentStep ;
UWorld * CurrentWorld ;
FName CurrentBuildId ;
} ;
2014-03-14 14:13:41 -04:00
/** Constructor */
FEditorBuildUtils : : FEditorAutomatedBuildSettings : : FEditorAutomatedBuildSettings ( )
: BuildErrorBehavior ( ABB_PromptOnError ) ,
UnableToCheckoutFilesBehavior ( ABB_PromptOnError ) ,
NewMapBehavior ( ABB_PromptOnError ) ,
FailedToSaveBehavior ( ABB_PromptOnError ) ,
2015-05-27 09:04:30 -04:00
bUseSCC ( true ) ,
2014-03-14 14:13:41 -04:00
bAutoAddNewFiles ( true ) ,
bShutdownEditorOnCompletion ( false )
{ }
/**
* Start an automated build of all current maps in the editor . Upon successful conclusion of the build , the newly
* built maps will be submitted to source control .
*
* @ param BuildSettings Build settings used to dictate the behavior of the automated build
* @ param OutErrorMessages Error messages accumulated during the build process , if any
*
* @ return true if the build / submission process executed successfully ; false if it did not
*/
bool FEditorBuildUtils : : EditorAutomatedBuildAndSubmit ( const FEditorAutomatedBuildSettings & BuildSettings , FText & OutErrorMessages )
{
// Assume the build is successful to start
bool bBuildSuccessful = true ;
// Keep a set of packages that should be submitted to source control at the end of a successful build. The build preparation and processing
// will add and remove from the set depending on build settings, errors, etc.
TSet < UPackage * > PackagesToSubmit ;
// Perform required preparations for the automated build process
bBuildSuccessful = PrepForAutomatedBuild ( BuildSettings , PackagesToSubmit , OutErrorMessages ) ;
// If the preparation went smoothly, attempt the actual map building process
if ( bBuildSuccessful )
{
2015-09-07 07:48:34 -04:00
bBuildSuccessful = EditorBuild ( GWorld , FBuildOptions : : BuildAllSubmit ) ;
2014-03-14 14:13:41 -04:00
// If the map build failed, log the error
if ( ! bBuildSuccessful )
{
LogErrorMessage ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_BuildFailed " , " The map build failed or was canceled. " ) , OutErrorMessages ) ;
}
2019-09-20 05:07:36 -04:00
// If we are going to shutdown after this has run (ie running from the cmdline) then we should wait for the distributed lighting build to complete.
if ( BuildSettings . bShutdownEditorOnCompletion )
{
while ( GUnrealEd - > IsLightingBuildCurrentlyRunning ( ) )
{
GUnrealEd - > UpdateBuildLighting ( ) ;
}
}
2014-03-14 14:13:41 -04:00
}
// If any map errors resulted from the build, process them according to the behavior specified in the build settings
if ( bBuildSuccessful & & FMessageLog ( " MapCheck " ) . NumMessages ( EMessageSeverity : : Warning ) > 0 )
{
bBuildSuccessful = ProcessAutomatedBuildBehavior ( BuildSettings . BuildErrorBehavior , NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_MapErrors " , " Map errors occurred while building. \n \n Attempt to continue the build? " ) , OutErrorMessages ) ;
}
// If it's still safe to proceed, attempt to save all of the level packages that have been marked for submission
if ( bBuildSuccessful )
{
UPackage * CurOutermostPkg = GWorld - > PersistentLevel - > GetOutermost ( ) ;
FString PackagesThatFailedToSave ;
// Try to save the p-level if it should be submitted
if ( PackagesToSubmit . Contains ( CurOutermostPkg ) & & ! FEditorFileUtils : : SaveLevel ( GWorld - > PersistentLevel ) )
{
// If the p-level failed to save, remove it from the set of packages to submit
PackagesThatFailedToSave + = FString : : Printf ( TEXT ( " %s \n " ) , * CurOutermostPkg - > GetName ( ) ) ;
PackagesToSubmit . Remove ( CurOutermostPkg ) ;
}
// Try to save each streaming level (if they should be submitted)
2018-02-22 11:25:06 -05:00
for ( ULevelStreaming * CurStreamingLevel : GWorld - > GetStreamingLevels ( ) )
2014-03-14 14:13:41 -04:00
{
2018-02-22 11:25:06 -05:00
if ( CurStreamingLevel )
{
if ( ULevel * Level = CurStreamingLevel - > GetLoadedLevel ( ) )
2014-03-14 14:13:41 -04:00
{
CurOutermostPkg = Level - > GetOutermost ( ) ;
if ( PackagesToSubmit . Contains ( CurOutermostPkg ) & & ! FEditorFileUtils : : SaveLevel ( Level ) )
{
// If a save failed, remove the streaming level from the set of packages to submit
PackagesThatFailedToSave + = FString : : Printf ( TEXT ( " %s \n " ) , * CurOutermostPkg - > GetName ( ) ) ;
PackagesToSubmit . Remove ( CurOutermostPkg ) ;
}
}
}
}
// If any packages failed to save, process the behavior specified by the build settings to see how the process should proceed
if ( PackagesThatFailedToSave . Len ( ) > 0 )
{
bBuildSuccessful = ProcessAutomatedBuildBehavior ( BuildSettings . FailedToSaveBehavior ,
FText : : Format ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_FilesFailedSave " , " The following assets failed to save and cannot be submitted: \n \n {0} \n \n Attempt to continue the build? " ) , FText : : FromString ( PackagesThatFailedToSave ) ) ,
OutErrorMessages ) ;
}
}
// If still safe to proceed, make sure there are actually packages remaining to submit
if ( bBuildSuccessful )
{
bBuildSuccessful = PackagesToSubmit . Num ( ) > 0 ;
if ( ! bBuildSuccessful )
{
LogErrorMessage ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_NoValidLevels " , " None of the current levels are valid for submission; automated build aborted. " ) , OutErrorMessages ) ;
}
}
// Finally, if everything has gone smoothly, submit the requested packages to source control
2015-05-27 09:04:30 -04:00
if ( bBuildSuccessful & & BuildSettings . bUseSCC )
2014-03-14 14:13:41 -04:00
{
SubmitPackagesForAutomatedBuild ( PackagesToSubmit , BuildSettings ) ;
}
// Check if the user requested the editor shutdown at the conclusion of the automated build
if ( BuildSettings . bShutdownEditorOnCompletion )
{
FPlatformMisc : : RequestExit ( false ) ;
}
return bBuildSuccessful ;
}
static bool IsBuildCancelled ( )
{
return GEditor - > GetMapBuildCancelled ( ) ;
}
/**
* Perform an editor build with behavior dependent upon the specified id
*
* @ param Id Action Id specifying what kind of build is requested
*
* @ return true if the build completed successfully ; false if it did not ( or was manually canceled )
*/
2015-09-07 07:48:34 -04:00
bool FEditorBuildUtils : : EditorBuild ( UWorld * InWorld , FName Id , const bool bAllowLightingDialog )
2014-03-14 14:13:41 -04:00
{
FMessageLog ( " MapCheck " ) . NewPage ( LOCTEXT ( " MapCheckNewPage " , " Map Check " ) ) ;
// Make sure to set this flag to false before ALL builds.
GEditor - > SetMapBuildCancelled ( false ) ;
// Will be set to false if, for some reason, the build does not happen.
bool bDoBuild = true ;
// Indicates whether the persistent level should be dirtied at the end of a build.
bool bDirtyPersistentLevel = true ;
// Hack: These don't initialize properly and if you pick BuildAll right off the
// bat when opening a map you will get incorrect values in them.
GSwarmDebugOptions . Touch ( ) ;
// Show option dialog first, before showing the DlgBuildProgress window.
FLightingBuildOptions LightingBuildOptions ;
2015-09-07 07:48:34 -04:00
if ( Id = = FBuildOptions : : BuildLighting )
2014-03-14 14:13:41 -04:00
{
// Retrieve settings from ini.
2015-04-20 10:12:55 -04:00
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " OnlyBuildSelected " ) , LightingBuildOptions . bOnlyBuildSelected , GEditorPerProjectIni ) ;
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " OnlyBuildCurrentLevel " ) , LightingBuildOptions . bOnlyBuildCurrentLevel , GEditorPerProjectIni ) ;
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " OnlyBuildSelectedLevels " ) , LightingBuildOptions . bOnlyBuildSelectedLevels , GEditorPerProjectIni ) ;
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " OnlyBuildVisibility " ) , LightingBuildOptions . bOnlyBuildVisibility , GEditorPerProjectIni ) ;
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " UseErrorColoring " ) , LightingBuildOptions . bUseErrorColoring , GEditorPerProjectIni ) ;
GConfig - > GetBool ( TEXT ( " LightingBuildOptions " ) , TEXT ( " ShowLightingBuildInfo " ) , LightingBuildOptions . bShowLightingBuildInfo , GEditorPerProjectIni ) ;
2014-03-14 14:13:41 -04:00
int32 QualityLevel ;
2015-04-20 10:12:55 -04:00
GConfig - > GetInt ( TEXT ( " LightingBuildOptions " ) , TEXT ( " QualityLevel " ) , QualityLevel , GEditorPerProjectIni ) ;
2014-03-14 14:13:41 -04:00
QualityLevel = FMath : : Clamp < int32 > ( QualityLevel , Quality_Preview , Quality_Production ) ;
LightingBuildOptions . QualityLevel = ( ELightingBuildQuality ) QualityLevel ;
}
// Show the build progress dialog.
SBuildProgressWidget : : EBuildType BuildType = SBuildProgressWidget : : BUILDTYPE_Geometry ;
2015-09-07 07:48:34 -04:00
if ( Id = = FBuildOptions : : BuildGeometry | |
Id = = FBuildOptions : : BuildVisibleGeometry | |
Id = = FBuildOptions : : BuildAll | |
Id = = FBuildOptions : : BuildAllOnlySelectedPaths )
2014-03-14 14:13:41 -04:00
{
BuildType = SBuildProgressWidget : : BUILDTYPE_Geometry ;
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildLighting )
{
2014-03-14 14:13:41 -04:00
BuildType = SBuildProgressWidget : : BUILDTYPE_Lighting ;
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildAIPaths | |
Id = = FBuildOptions : : BuildSelectedAIPaths )
{
2014-03-14 14:13:41 -04:00
BuildType = SBuildProgressWidget : : BUILDTYPE_Paths ;
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildHierarchicalLOD )
{
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
BuildType = SBuildProgressWidget : : BUILDTYPE_HLODs ;
}
else if ( Id = = FBuildOptions : : BuildMinimap )
{
BuildType = SBuildProgressWidget : : BUILDTYPE_Minimap ;
2015-09-07 07:48:34 -04:00
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
else if ( Id = = FBuildOptions : : BuildTextureStreaming )
{
BuildType = SBuildProgressWidget : : BUILDTYPE_TextureStreaming ;
}
2019-08-21 08:57:30 -04:00
else if ( Id = = FBuildOptions : : BuildVirtualTexture )
{
BuildType = SBuildProgressWidget : : BUILDTYPE_VirtualTexture ;
}
2020-11-26 14:22:44 -04:00
else if ( Id = = FBuildOptions : : BuildAllLandscape )
2020-04-27 16:16:09 -04:00
{
2020-11-26 14:22:44 -04:00
BuildType = SBuildProgressWidget : : BUILDTYPE_AllLandscape ;
2020-04-27 16:16:09 -04:00
}
2015-09-07 07:48:34 -04:00
else
{
2014-03-14 14:13:41 -04:00
BuildType = SBuildProgressWidget : : BUILDTYPE_Unknown ;
}
TWeakPtr < class SBuildProgressWidget > BuildProgressWidget = GWarn - > ShowBuildProgressWindow ( ) ;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2973846 on 2016/05/11 by Jamie.Dale
Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue
These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects).
The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue.
This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made).
Change 2973847 on 2016/05/11 by Jamie.Dale
Changing the loading phase in the localization dashboard now writes to the default config
#jira UE-30482
Change 2973866 on 2016/05/11 by Jamie.Dale
Deprecated some functions that were taking an unused position.
These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version.
- FViewportFrame::ResizeFrame
- FSceneViewport::ResizeFrame
- FSceneViewport::ResizeViewport
Change 2974505 on 2016/05/11 by Nick.Darnell
PR #2309: Added Combobox styling (Contributed by Chris528)
Change 2975241 on 2016/05/12 by Richard.TalbotWatkin
Made sRGB Preview the default in the Color Picker.
Change 2975390 on 2016/05/12 by Jamie.Dale
Made sure that en-US-POSIX is in our list of available cultures
Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this.
Change 2975411 on 2016/05/12 by Jamie.Dale
PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz)
Change 2975559 on 2016/05/12 by Jamie.Dale
Dialogue Wave VO direction can now be localized
This is gathered as editor-only data.
#jira UE-28715
Change 2975710 on 2016/05/12 by Jamie.Dale
Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package
Change 2975728 on 2016/05/12 by Jamie.Dale
Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue
#jira UETOOL-794
Change 2975763 on 2016/05/12 by Jamie.Dale
We no longer warn if asked to check out a UNC path when running the GatherText commandlets
#jira UE-25833
Change 2975766 on 2016/05/12 by Jamie.Dale
Resolved some loc key conflicts
#jira UE-25833
Change 2975774 on 2016/05/12 by Jamie.Dale
PO files now only contain a single entry in the case of a native translation being exported
They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used.
This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file.
Change 2975776 on 2016/05/12 by Jamie.Dale
Downgraded a PO file import warning that isn't really an issue
#jira UE-25833
Change 2976675 on 2016/05/13 by Jamie.Dale
Fixed some more fallout from changes to use the window position when changing the game viewport mode
- FSceneViewport::ResizeFrame:
- Fixed the HMD monitor info setting the wrong variables.
- Fixed SetWindowMode and ResizeViewport potentially being passed two different modes.
- We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning).
- FWindowsWindow::MoveWindowTo:
- Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area.
- FWindowsApplication:
- WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected.
#jira UE-30276
#jira UE-30677
Change 2976804 on 2016/05/13 by Jamie.Dale
Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to
Change 2976967 on 2016/05/13 by Alexis.Matte
#jira UE-30687 Cannot import a skeletal mesh scale to zero
Change 2977042 on 2016/05/13 by Alexis.Matte
#jira UE-29952 log a warning if fbx exceed the maximum number of LOD.
#2326 Github PR
#code review matt.kuhlenschmidt
Change 2977074 on 2016/05/13 by Jamie.Dale
Follow up to CL# 2976804 to avoid a potential change in behavior
Change 2977076 on 2016/05/13 by Jamie.Dale
Some tidy up and optimization to SCulturePicker
Change 2977327 on 2016/05/13 by Alex.Delesky
Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser.
#jira UE-30423
Change 2977499 on 2016/05/13 by Alexis.Matte
#jira UE-29475
Enable UStruct child property to be favorite
Change 2978415 on 2016/05/16 by Jamie.Dale
We now pre-load all the culture data when starting the editor to avoid a UI hitch later
Change 2978517 on 2016/05/16 by Alex.Delesky
#jira UE-29406
Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor.
Change 2978518 on 2016/05/16 by Alex.Delesky
#jira UE-28210
The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session.
Change 2978556 on 2016/05/16 by Alexis.Matte
Fbx tests automation
#jira UE-29635
Change 2978797 on 2016/05/16 by Alexis.Matte
#jira UE-30774
- prevent baking the pivot if we transform the vertex with the absolute transform.
- Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform.
#code review matt.kuhlenschmidt
Change 2978965 on 2016/05/16 by Alexis.Matte
FBX importer, fix the socket rotation.
#jira UE-30094
Change 2980613 on 2016/05/17 by Jamie.Dale
Moved the XLOC UAT localization provider to be publicly accessible
Change 2980614 on 2016/05/17 by Jamie.Dale
Reference update for project move
Change 2980633 on 2016/05/17 by Jamie.Dale
Made the culture mapping used between XLOC and UE4 configurable on a per-project basis
You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings.
Change 2980836 on 2016/05/17 by Jamie.Dale
Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command
You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload
Change 2982700 on 2016/05/18 by Jamie.Dale
Fixed the loc package gather potentially adding the same source location multiple times
Change 2983906 on 2016/05/19 by Jamie.Dale
Slight cleanup of the way we register localization gatherer callbacks
Change 2984356 on 2016/05/19 by Chris.Wood
Removed temporary analytics API change needed for earlier hot fix
[UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817
Change 2986679 on 2016/05/23 by Alex.Delesky
#jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad.
Change 2986798 on 2016/05/23 by Alex.Delesky
#jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus.
Change 2987106 on 2016/05/23 by Alexis.Matte
Fbx importer, fail import must not create a package in the content browser
#jira UE-31154
Change 2987563 on 2016/05/23 by Alex.Delesky
#jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed
Change 2987564 on 2016/05/23 by Alex.Delesky
#jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor.
Change 2988321 on 2016/05/24 by Jamie.Dale
Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded
Change 2988708 on 2016/05/24 by Jamie.Dale
Fix for crash when missing the fallback/last resort font
Change 2988782 on 2016/05/24 by Jamie.Dale
Added the ability to version each localized string individually when loaded into the localization manager
The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories.
Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history.
Change 2988856 on 2016/05/24 by Jamie.Dale
Added a way to get the package(s) of the object(s) being edited by a property panel
Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case:
- UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package.
- Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors.
Change 2988955 on 2016/05/24 by Alex.Delesky
#jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules.
Git Request #2376
Change 2989418 on 2016/05/25 by Jamie.Dale
Added a way to count text references within a package that match the given search criteria
This can be used to detect whether a localization ID is unique within its package.
The following search modes are available:
- MatchId: Detect a reference if it matches the given ID (ignoring the source text)
- MatchSource: Detect a reference if it matches the given ID and source string
- MismatchSource: Detect a reference if it matches the given ID but has a different source string
Change 2989436 on 2016/05/25 by Jamie.Dale
Added "root-level" meta-data (meta-data associated with the package rather than an object within it)
Change 2989471 on 2016/05/25 by Alexis.Matte
Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk
Change 2989639 on 2016/05/25 by Jamie.Dale
Added static version of FName::IsValidXName
This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table)
Change 2989716 on 2016/05/25 by Alex.Delesky
#jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks.
Change 2990100 on 2016/05/25 by Alexis.Matte
Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD
#jira UE-30907
Change 2991442 on 2016/05/26 by Bob.Tellez
#UE4 Fix components in world not rendering when saved without a physics scene.
Change 2991736 on 2016/05/26 by Bob.Tellez
#UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser.
Change 2991942 on 2016/05/26 by Alex.Delesky
#jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup.
Change 2991994 on 2016/05/26 by Alex.Delesky
#jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor.
Change 2994037 on 2016/05/30 by Alexis.Matte
Add Fbx Automation Tests
- static mesh import reimport (sections and materials)
- skeletal mesh import and reimport (sections and materials also bone position)
- static/skeletal mesh LODs (import, add, reimport)
- rigid mesh (import, reimport)
Change 2994253 on 2016/05/31 by Alexis.Matte
Mikkt crash when computing the normals if there is more vertex then the number of wedge
#jira UE-29143
Change 2994260 on 2016/05/31 by Alexis.Matte
Make sure we cannot modify fbx test plan when json file is read only
Change 2994431 on 2016/05/31 by Alex.Delesky
#jira UE-21900 - The scale widget should now render all axes when using an orthographic camera.
Change 2994432 on 2016/05/31 by Alex.Delesky
#jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled.
Change 2994537 on 2016/05/31 by Richard.TalbotWatkin
Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo.
#jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>()
Change 2994983 on 2016/05/31 by Richard.TalbotWatkin
Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information.
#jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693
Change 2995022 on 2016/05/31 by Jamie.Dale
PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH)
Change 2995027 on 2016/05/31 by Jamie.Dale
PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH)
Change 2995963 on 2016/06/01 by Alex.Delesky
#jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh.
Change 2997002 on 2016/06/01 by Cody.Albert
Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed
#jira UE-31448
Change 2998013 on 2016/06/02 by Alexis.Matte
Prevent static mesh materials array to grow when using the reset button in the staticmesh editor.
#jira UE-12931
Change 2998370 on 2016/06/02 by Alexis.Matte
Fbx Automation, add some import LOD test in case the options are not ok
Change 2999709 on 2016/06/03 by Jamie.Dale
Fixed some issues with gathering text from BP bytecode
Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load).
Change 2999755 on 2016/06/03 by Richard.TalbotWatkin
Fixes to Spline Mesh collision generation.
- Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry.
- Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh.
- Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused.
#jira UE-31361 - Splines handle box collision and collision from other shapes differently
Change 2999973 on 2016/06/03 by Jamie.Dale
We now skip bulk data when detecting text references
#jira UE-31596
Change 3000159 on 2016/06/03 by Alex.Delesky
#jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level.
Change 3001814 on 2016/06/06 by Alexis.Matte
Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh.
Add a fbx test to make sure the problem is flag by automation test
#jira UE-1394
Change 3001820 on 2016/06/06 by Alex.Delesky
#jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint.
Change 3001915 on 2016/06/06 by Alexis.Matte
Make sure we check attribute type before checking attribute unique ID in case of unique id clash.
#jira UE-31214
Change 3002026 on 2016/06/06 by Alexis.Matte
Importing morph target should not import textures like materials since the base mesh already import thoses.
UDN Question:
https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html
Change 3002623 on 2016/06/06 by Jamie.Dale
Fixing more loc conflicts
Change 3002883 on 2016/06/06 by Jamie.Dale
Adding retry when dealing with OneSky
This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413
Change 3003004 on 2016/06/06 by Trung.Le
#jira UE-13101 - Make "Description" field for a BluePrint Function multiline
Change 3003859 on 2016/06/07 by Alexis.Matte
#jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite
Change 3004132 on 2016/06/07 by Jamie.Dale
Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical
This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket.
This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly.
Change 3004286 on 2016/06/07 by Jamie.Dale
Ensured that assignments that publish new names to the bucket are atomic
Change 3004310 on 2016/06/07 by Jamie.Dale
Ensured FName internal hashes are returned as uint16
Change 3004381 on 2016/06/07 by Jamie.Dale
FAsyncPackage now creates the meta-data before processing the remaining exports
This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them.
Change 3004765 on 2016/06/07 by Alex.Delesky
#jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material.
Change 3005754 on 2016/06/08 by Trung.Le
Allow whitespace for meta class names
#jira UE-31668
Change 3005755 on 2016/06/08 by Stephan.Jiang
UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid
#jira UE-31299
Change 3006512 on 2016/06/08 by Alex.Delesky
#jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first.
Change 3006760 on 2016/06/08 by Jamie.Dale
Added support for stable localization keys
This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict.
In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict.
In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages.
If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package.
Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this:
MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC
This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game.
Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date.
#jira UETOOL-796
Change 3007501 on 2016/06/09 by Trung.Le
#jira UE-31722
Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction.
Change 3007524 on 2016/06/09 by Jamie.Dale
Added some additional checks to avoid re-keying text when duplicating for PIE
Change 3007564 on 2016/06/09 by Jamie.Dale
PR #2401: DataTable import/export improvements (Contributed by bozaro)
Change 3007653 on 2016/06/09 by Jamie.Dale
PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt)
Change 3008019 on 2016/06/09 by Jamie.Dale
Updated structs to export as JSON when displaying them in the Data Table editor
This produces much cleaner results than using the text export method (which will use the internal names for user defined structs).
This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it.
#jira UE-29958
Change 3008052 on 2016/06/09 by Jamie.Dale
Fixed bug importing an array inside a JSON Data Table
This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing.
Change 3008875 on 2016/06/10 by Jamie.Dale
PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts)
Change 3008879 on 2016/06/10 by Jamie.Dale
PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts)
Change 3008990 on 2016/06/10 by Alex.Delesky
#jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source.
Change 3008991 on 2016/06/10 by Alex.Delesky
#jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window.
Change 3010856 on 2016/06/13 by Alexis.Matte
#jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth.
Change 3011736 on 2016/06/13 by Jamie.Dale
Adding missing plurals.res file
This is needed to get plural form information from ICU.
#jira UETOOL-875
Change 3012387 on 2016/06/14 by Richard.TalbotWatkin
Disabled the Paste context menu action if the property is marked as EditConst.
#jira UE-27469 - User is able to paste values into a read-only setting
Change 3012971 on 2016/06/14 by Stephan.Jiang
Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder.
By default, visibility for engine content is off and developers is on
#jira UE-31657
Change 3013111 on 2016/06/14 by Jamie.Dale
Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations
Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format.
Change 3015438 on 2016/06/15 by Cody.Albert
Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation)
#jira UE-32082
Change 3016782 on 2016/06/16 by Richard.TalbotWatkin
Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array.
Change 3016949 on 2016/06/16 by Jamie.Dale
Added FastDecimalFormat overloads to write into an existing string
This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format).
Change 3016952 on 2016/06/16 by Jamie.Dale
Changed an Add for an Emplace to avoid moving a temporary
Change 3016954 on 2016/06/16 by Jamie.Dale
Updated some FText code to avoid creating temporary objects just to move data through a hierarchy
There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data.
This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit).
In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful.
Change 3019021 on 2016/06/19 by Richard.TalbotWatkin
When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear.
#jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted
Change 3019022 on 2016/06/19 by Richard.TalbotWatkin
Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed.
#jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode
#jira UE-31915 - Selecting BSP face does not show Surface Properties in Details
Change 3019025 on 2016/06/19 by Richard.TalbotWatkin
Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops.
#jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive
Change 3020050 on 2016/06/20 by Cody.Albert
Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor.
#jira UE-32173
Change 3021145 on 2016/06/21 by Jamie.Dale
Added support for text format argument modifiers
These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)".
We provide a few of these by default:
- |plural(key=val,...)
- |ordinal(key=val,...)
Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string.
- |gender(masculine,feminine,[neuter])
Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string.
- |hpp(consonant,vowel)
Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string.
Major changes:
- Exposed the ICU plural form handling via FCulture::GetPluralForm.
- Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers).
- Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat).
- Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText).
- Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText).
Breaking changes:
- The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text:
- The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F".
- Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug.
Change 3021156 on 2016/06/21 by Jamie.Dale
Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling
This avoids the compile and link actions being split into different batches.
Change 3021280 on 2016/06/21 by Richard.TalbotWatkin
Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier).
#jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug
Change 3022949 on 2016/06/22 by Alex.Delesky
#jira UE-31944 - Upgrading Subversion binaries to version 1.9.4.
Change 3023092 on 2016/06/22 by Jamie.Dale
Downgraded some checks to ensures and added an early out
#jira UE-32009
Change 3023154 on 2016/06/22 by Jamie.Dale
Ported over CL# 3018771 to the UE automation
This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated).
Change 3023579 on 2016/06/22 by Jamie.Dale
Expanded the Blueprint FormatText node to support numeric and gender types
These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text.
Major changes:
- The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text.
- Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin.
- FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue.
- The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead.
Change 3023915 on 2016/06/22 by Jamie.Dale
Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals
Change 3024813 on 2016/06/23 by Jamie.Dale
Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code
Change 3024852 on 2016/06/23 by Nick.Darnell
FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections.
Change 3024994 on 2016/06/23 by Nick.Darnell
UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint.
#jira UE-31155
Change 3025194 on 2016/06/23 by Alex.Delesky
#jira UE-31155 - Compilation error fix.
Change 3025255 on 2016/06/23 by Alex.Delesky
#jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports.
Change 3025460 on 2016/06/23 by Cody.Albert
Fixed issue where widget components would misalign when aspect ratio was being constrained
#jira UE-29637
Change 3025508 on 2016/06/23 by Cody.Albert
Adding support for adjusting animation playback speed
#jira UE-32222
Change 3026444 on 2016/06/24 by Jamie.Dale
Fixed crash caused by bad access of shared this when closing an active IME context
This was only needed to get the owner window, which we now cache when the IME context is created.
#jira UE-32240
Change 3028358 on 2016/06/27 by Jamie.Dale
Fixed IMEs not working due to no window being cached
#jira UE-32240
Change 3028464 on 2016/06/27 by Alex.Delesky
#jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out.
Change 3028524 on 2016/06/27 by Chris.Wood
Switched off uploads to legacy Crash Report Receiver.
[UE-31252] - Switch off deprecated CRR upload in Crash Report Client
Also added CRC version string, added to crash context from CRC config
Change 3028840 on 2016/06/27 by Alexis.Matte
#jira UE-32306 replace material bad name character by an underscore when doing a scen import.
Change 3028924 on 2016/06/27 by Alexis.Matte
#jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder
Change 3029044 on 2016/06/27 by Alex.Delesky
#jira UE-31944 - Updating SVN binaries for Mac to 1.9.4
Change 3029276 on 2016/06/27 by Alex.Delesky
#jira UE-31531 - A user can now select the base class when creating a new physical material.
PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside)
Change 3029459 on 2016/06/27 by Alexis.Matte
#jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options.
Change 3030577 on 2016/06/28 by Nick.Darnell
PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts)
Change 3030587 on 2016/06/28 by Alexis.Matte
#jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh
Change 3030946 on 2016/06/28 by Alexis.Matte
#jira UE-32515 prevent crash when re-import staticmesh userdata
Change 3031115 on 2016/06/28 by Jamie.Dale
The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass
This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed.
Change 3031146 on 2016/06/28 by Jamie.Dale
Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject
Change 3031357 on 2016/06/28 by Nick.Darnell
PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz)
Change 3031515 on 2016/06/28 by Jamie.Dale
Fixed game targets not being able to depend on other game targets
Change 3031520 on 2016/06/28 by Jamie.Dale
Localization compilation now specifies an ArchiveName to use
Change 3031671 on 2016/06/28 by Nick.Darnell
Editor - Checking to see if a weak variable is valid before using it in the editor build window.
Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt
Added ability to invert the Y axis in editor viewports for mouse look and orbit
Change 3032495 on 2016/06/29 by Jamie.Dale
Fixed some measuring issues with bi-directional text within a right-flowed document
There were three main issues:
1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering).
2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights).
3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights).
#jira UE-32526
Change 3032533 on 2016/06/29 by Nick.Darnell
UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big.
Change 3032855 on 2016/06/29 by Alexis.Matte
#jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated
#test please re-test also UE-32240
Change 3033145 on 2016/06/29 by Alex.Delesky
#jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized.
Change 3033147 on 2016/06/29 by Alex.Delesky
#jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly.
This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed.
Change 3033162 on 2016/06/29 by Alex.Delesky
#jira UE-31827 - Undo/redo now works in the Material function editor.
Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt
Fix post process settings blendable picker not being readable in the details panel
Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt
Fixed huge number of redundant calls to CanEditChange and
DiffersFromDefault that were causing massive performance loss when
thousands of objects are selected. CanEditChange and DiffersFromDefault
are now cached each time a property value changes.
Fixed redundant calls for getting visualizers for each selected
object. This is now cached on selection
Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt
Fix Mass customization on the body instance not working with undo/redo or reset to default
Change 3034357 on 2016/06/30 by Alex.Delesky
#jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent.
Change 3035915 on 2016/07/01 by Richard.TalbotWatkin
Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox.
#jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox
Change 3035951 on 2016/07/01 by Richard.TalbotWatkin
Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars.
#jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume
Change 3036991 on 2016/07/04 by Alexis.Matte
#jira UETOOL-901 Scene importer now support the rigid mesh animation
Change 3037037 on 2016/07/04 by Jamie.Dale
Fixed regression in editable text box alignment
Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead.
Change 3037057 on 2016/07/04 by Richard.TalbotWatkin
Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received.
#jira UE-29815 - In-game screenshot isn't working under certain circumstances
Change 3037082 on 2016/07/04 by Chris.Wood
Added detection of asserts and passing assert flag and crash type string to crash reports.
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point.
Change 3037095 on 2016/07/04 by Alexis.Matte
Fix the bone name when duplicating a socket.
Change 3037453 on 2016/07/05 by Stephan.Jiang
Adding ability to animate the root wigdet #2
FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint
the properties are then migrated back to the CDO
#UE 31810
Change 3037487 on 2016/07/05 by Jamie.Dale
Fixed crash caused by stale BP pointer
#jira UE-32325
Change 3037488 on 2016/07/05 by Jamie.Dale
Fixed a crash that could occur when a class and a folder had the same name
Change 3037526 on 2016/07/05 by Jamie.Dale
Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress
The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown.
#jira UE-17688
Change 3037557 on 2016/07/05 by Alex.Delesky
#jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location.
The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns.
Change 3037558 on 2016/07/05 by Alex.Delesky
#jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened.
Change 3037559 on 2016/07/05 by Alex.Delesky
#jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level.
Change 3037593 on 2016/07/05 by Stephan.Jiang
GitHub #2549: Add function for setting the playback rate of UMG animations
original code shelved in CL 3033449
#UE-32653
Change 3037605 on 2016/07/05 by Jamie.Dale
Fixed infinite recursion that could happen when gather loc from an object with a custom callback
#jira UE-32670
Change 3037649 on 2016/07/05 by Nick.Darnell
PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast, Rama (Contributed by EverNewJoy)
Change 3037652 on 2016/07/05 by Nick.Darnell
Clean - Removing commented out code.
Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt
Fix initial hitch when dragging around in a color picker opened from a material expression node.
Change 3037679 on 2016/07/05 by Nick.Darnell
Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures.
Change 3037757 on 2016/07/05 by Nick.Darnell
PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok)
Change 3037840 on 2016/07/05 by Nick.Darnell
UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand.
Change 3037924 on 2016/07/05 by Jamie.Dale
Re-ordered variable initialization to appease a warning on Mac
Change 3037981 on 2016/07/05 by Jamie.Dale
Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array
#jira UE-32639
Change 3038075 on 2016/07/05 by Cody.Albert
Removed misleading error message in HandleCECommand
#jira 28007
Change 3038231 on 2016/07/05 by Alexis.Matte
#jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag.
Change 3038275 on 2016/07/05 by Alex.Delesky
#jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself).
Change 3039310 on 2016/07/06 by Trung.Le
#jira UE-25005 Change PIE Key Bindings
- Removed Shift+F1 and Esc from BaseInput.ini
- Created new customizable key binding for
+ Shift+F1: same functionality.
+ Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session.
+ Shift+Esc: now will stop the play session
Change 3039458 on 2016/07/06 by Trung.Le
Removed unused code in StaticMeshLight.cpp
Change 3039827 on 2016/07/06 by Frank.Fella
FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path.
#jira UE-31959
Change 3041094 on 2016/07/07 by Nick.Darnell
WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault.
#jira UE-32694
Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt
Fix visualizers on blueprint actors not working when the internal components are trashed and replaced
Change 3041302 on 2016/07/07 by Chris.Wood
Increased buffer size for crash uploads.
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Trivial change in dev branch - no code review
Change 3041969 on 2016/07/07 by Nick.Darnell
UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel.
Change 3041971 on 2016/07/07 by Nick.Darnell
UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser.
Change 3042612 on 2016/07/08 by Trung.Le
#jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit
Change 3042732 on 2016/07/08 by mitchell.wilson
Adding test content for UMG Paper 2d Atlas test
Change 3042780 on 2016/07/08 by mitchell.wilson
Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing
Change 3042870 on 2016/07/08 by mitchell.wilson
Renaming UMG_Paper2d to UMG_Sprite
Change 3044104 on 2016/07/10 by Nick.Darnell
PR #2104: Improved widget input support (Contributed by projectgheist)
Change 3044107 on 2016/07/10 by Nick.Darnell
Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off.
#jira UE-25750
Change 3044377 on 2016/07/11 by Chris.Wood
Add Slack messaging module - Epic Friday
Change 3044536 on 2016/07/11 by Alex.Delesky
#jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features.
Change 3044922 on 2016/07/11 by Nick.Darnell
Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported.
Change 3045157 on 2016/07/11 by Nick.Darnell
Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat.
Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt
Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe
Change 3045358 on 2016/07/11 by Alex.Delesky
#jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break.
Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt
Enable the widget reflector from the editor console by typing "widgetreflector"
Change 3045387 on 2016/07/11 by Stephan.Jiang
Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly.
#UE-31874
Change 3046093 on 2016/07/12 by Nick.Darnell
UMG - The Slider now exposes the IsFocusable option from Slate.
#jira UE-32960
Change 3046094 on 2016/07/12 by Alexis.Matte
#jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value.
Change 3046104 on 2016/07/12 by Stephan.Jiang
typo "Syc" causing the "Sync" button doesn't show Slateicon
#UE-31409
Change 3046142 on 2016/07/12 by Nick.Darnell
Orion - Upgrading more code to use the new input mode functions and not the deprecated ones.
Change 3046165 on 2016/07/12 by Nick.Darnell
UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data.
#jira UE-32844
Change 3046255 on 2016/07/12 by Nick.Darnell
UT - More build warning fixes for the new Input Mode methods.
Change 3046604 on 2016/07/12 by Richard.Hinckley
Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard.
Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt
Better way of summoning the widget reflector from the console
Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt
Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only
Change 3048754 on 2016/07/13 by Trung.Le
#jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands
Change 3048756 on 2016/07/13 by Trung.Le
Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable
Change 3048865 on 2016/07/13 by Trung.Le
#jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly
Change 3048892 on 2016/07/13 by Nick.Darnell
UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance.
#jira UE-33250
Change 3049096 on 2016/07/13 by Trung.Le
Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game.
#jira UE-33259
Change 3049177 on 2016/07/13 by Stephan.Jiang
Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer.
#UE-33016
Change 3049726 on 2016/07/14 by Stephan.Jiang
Adding icons for terrain mirror tool
#UE-20588
Change 3049957 on 2016/07/14 by Nick.Darnell
Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like.
Change 3049994 on 2016/07/14 by Stephan.Jiang
Set viewed animtion to current animtion after switching from Graph to Designer
(This is for "No Animation Selected" showing up when switching)
#UE-33016
Change 3050194 on 2016/07/14 by Stephan.Jiang
Added ability to replace the widget the track is currently bound to
Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer
#UE-31809
[CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
if ( BuildProgressWidget . IsValid ( ) )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( BuildType ) ;
}
2014-03-14 14:13:41 -04:00
2022-04-18 15:15:30 -04:00
TSoftObjectPtr < UWorld > World = InWorld ;
2019-11-05 14:35:20 -05:00
bool bShouldMapCheck = ! FParse : : Param ( FCommandLine : : Get ( ) , TEXT ( " SkipMapCheck " ) ) ;
2015-09-07 07:48:34 -04:00
if ( Id = = FBuildOptions : : BuildGeometry )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
// We can't set the busy cursor for all windows, because lighting
// needs a cursor for the lighting options dialog.
const FScopedBusyCursor BusyCursor ;
GUnrealEd - > Exec ( InWorld , TEXT ( " MAP REBUILD " ) ) ;
if ( GetDefault < ULevelEditorMiscSettings > ( ) - > bNavigationAutoUpdate )
{
TriggerNavigationBuilder ( InWorld , Id ) ;
}
// No need to dirty the persient level if we're building BSP for a sub-level.
bDirtyPersistentLevel = false ;
}
else if ( Id = = FBuildOptions : : BuildVisibleGeometry )
{
// If any levels are hidden, prompt the user about how to proceed
bDoBuild = GEditor - > WarnAboutHiddenLevels ( InWorld , true ) ;
if ( bDoBuild )
2014-03-14 14:13:41 -04:00
{
// We can't set the busy cursor for all windows, because lighting
// needs a cursor for the lighting options dialog.
const FScopedBusyCursor BusyCursor ;
2015-09-07 07:48:34 -04:00
GUnrealEd - > Exec ( InWorld , TEXT ( " MAP REBUILD ALLVISIBLE " ) ) ;
2014-03-14 14:13:41 -04:00
2015-04-09 10:49:32 -04:00
if ( GetDefault < ULevelEditorMiscSettings > ( ) - > bNavigationAutoUpdate )
{
TriggerNavigationBuilder ( InWorld , Id ) ;
}
2014-03-14 14:13:41 -04:00
}
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildLighting )
{
if ( bDoBuild )
2014-03-14 14:13:41 -04:00
{
2015-10-28 19:18:20 -04:00
bool bBSPRebuildNeeded = false ;
// Only BSP brushes affect lighting. Check if there is any BSP in the level and skip the geometry rebuild if there isn't any.
for ( TActorIterator < ABrush > ActorIt ( InWorld ) ; ActorIt ; + + ActorIt )
{
ABrush * Brush = * ActorIt ;
if ( ! Brush - > IsVolumeBrush ( ) & & ! Brush - > IsBrushShape ( ) & & ! FActorEditorUtils : : IsABuilderBrush ( Brush ) )
{
// brushes that aren't volumes are considered bsp
bBSPRebuildNeeded = true ;
break ;
}
}
2014-03-14 14:13:41 -04:00
2015-10-28 19:18:20 -04:00
if ( bBSPRebuildNeeded )
{
// BSP export to lightmass relies on current BSP state
GUnrealEd - > Exec ( InWorld , TEXT ( " MAP REBUILD ALLVISIBLE " ) ) ;
}
2014-03-14 14:13:41 -04:00
2015-09-07 07:48:34 -04:00
GUnrealEd - > BuildLighting ( LightingBuildOptions ) ;
bShouldMapCheck = false ;
2014-03-14 14:13:41 -04:00
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3680113)
#lockdown Nick.Penwarden
#rb none
============================
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 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 3636145 by Chris.Bunner
Linux compile fix.
Change 3636198 by Chris.Bunner
Include fix.
Change 3636225 by Daniel.Wright
Removed spammy draw event
Change 3636397 by Daniel.Wright
Visualize volumetric lightmaps uses 18% grey in lit mode
Change 3636398 by Daniel.Wright
Translucency lighting modes work with Volumetric Lightmaps
* The old Indirect Lighting Cache always interpolated one sample per object, while Volumetric lightmaps operate at the frequency of the Translucency Lighting Mode (per-vertex or per-pixel) so the lighting accuracy is much higher.
* The old ILC always applied the single lighting sample with a per-pixel normal, even in per-vertex lighting modes
* Volumetric PerVertex NonDirectional (cheapest lit translucency) went from 74 instructions down to 42
* Volumetric Directional went from 104 up to 122
Change 3636604 by Chris.Bunner
Added a material translation error on identically named/associated but differently valued parameters as this will cause one of them to be lost during parameter evaluation, the result being "random".
Change 3637668 by Rolando.Caloca
DR - hlslcc - Skip preprocessor when not required which reduces peak mem consumption by ~500 MB
- Fix missing indexing on intrinsic return type
Change 3638541 by Chris.Bunner
Fixed editor materials - Skip hardcoded parameter names that we rely on being overridden when checking for non-matching duplicate parameters.
Change 3638798 by Mark.Satterthwaite
Rebuilt hlslcc for Mac for Rolando's 3637668 changes.
Change 3638861 by Mark.Satterthwaite
Missed making a log verbose in the Metal ring-buffer.
Change 3639482 by Rolando.Caloca
DR - vk - Minor fixes
Change 3639909 by Michael.Lentine
Add special case for struct needed to compile.
Workaround issues in parser such that (x)[0] is replaced with x[0] and (x).a is replaced with x.a.
Change 3639916 by Michael.Lentine
Spelling fix.
Change 3640053 by Mark.Satterthwaite
Fix Desktop Forward rendering on Nvidia Metal rendering on macOS by modifying the shader and runtime to treat ForwardLocalLightBuffer data as uint rather than float and invert the use of as*() casts.
Tthis is *necessary* to avoid a bug/limitation of Nvidia's current Metal shader compiler that flushes all denorm values to zero on load from any resource. AMD & iOS Metal only flush-to-zero when sampling from textures and that's what Apple regard as the expected behaviour. I have however asked them to standardise on the D3D behaviour of preserving denorms on all load, move (incl. min/max/as*()-casts) & store operations. This won't happen in the current or imminent OS/Xcode releases.
Now only Intel Metal is broken and their problems run deeper.
#jira UE-48881
Change 3640983 by Olaf.Piesche
Cache the depth buffer collision shader for GPU particles even when simple forward is enabled, as that can be turned off at runtime.
#jira UE-48799
Change 3641480 by Michael.Lentine
Add min16float to FP16Math
Change 3642442 by Mark.Satterthwaite
Fix the native shader libraries again & undo the increase in cook time from changes to the way FShaderCodeLibrary was compiling & deduplicating the shaders.
- Remvoe the single linear array for accumulated shader code: reallocating this is tremendously expensive and will double the time taken to iteratively cook large projects.
- Uncompress the shader data for the native library system so that it actually works again.
- Fix some errant change to the Metal compiler that was trying to wedge the fully compiled library into the single Metal library which is 100% bogus.
#jira UE-49192
Change 3642919 by Chris.Bunner
Reverted unintended changes to material static parameter set serialization.
Bumped material version to force re-serialization.
Fixed a few typos.
Change 3642923 by Richard.Wallis
Fix for "Pixel Inspector On" message not disappearing when closing pixel inspector window while on. Handle tab closed events to cancel the pixel inspector if window closed while running.
#jira UE-46504
Change 3643296 by Michael.Lentine
Convert all structures that aren't use globally to halfs.
Change 3643381 by Ryan.Brucks
New Plugin allowing Blueprint Texture and RT reads as well as MIC creation and modification.
Change 3643929 by Ben.Salem
Added better precision on thread values in Perf Monitor. Also added global thread values to go with per-world ones to help track down the most accurate numbers possible.
#tests Ran locally, changes validated by benj
Change 3644203 by Mark.Satterthwaite
Refactor mtlpp a little bit to make the compiler do more of the work & update for all the latest publicly exposed APIs.
Change 3644336 by Mark.Satterthwaite
Ref-count the mtlpp Device object so that it can be the repository for IMP caching - now just have to go through the types created from a specific device and have them keep a reference....
Change 3644431 by Uriel.Doyon
Added a intensity units property, for point lights and spot lights, that can be set to Candelas, Lumens or Unitless (legacy).
The default units value for newly placed point lights and spot lights is configured in the project settings.
Spot lights configured in lumens have their whole luminous energy redirected toward the cone.
This means that changing the outer cone angle, changes the spot light brightness.
New exposure menu that uses an EV100 slider.
New post process settings "camera" tab regrouping : ShutterSpeed, ISO, Aperture and ExposureCompensation.
Post process settings "auto exposure" tab renamed "exposure".
The calibration constant for "Auto Exposure Basic" is now configurable in the advanced tab.
The auto exposure method is renamed "Metering Mode"
New pre-exposure feature that allows the engine to apply the previous frame exposure before writing to the scene color.
This allows the engine to render the scene with similar range than the final color (after exposure), and avoid arithmetic overflow for low precision RT formats.
The amount of exposure applied directly is called pre-exposure, and is compensated by a smaller post-exposure value.
Change 3645098 by Marcus.Wassmer
Don't add meshes twice when in simpleforward
Change 3645551 by Daniel.Wright
VolumetricScatteringIntensity is greyed out based on Mobility
Change 3645707 by Chris.Bunner
Skip empty parameters when identifying invalid duplicates during material translation.
Change 3646225 by Uriel.Doyon
Texture streaming support for particle sub-uv
Change 3646323 by Rolando.Caloca
DR - vk - Fix bad update texture 2/3d parameters
Change 3646463 by Mark.Satterthwaite
Metal shader files that can serve as extensions to the metal_stdlib rather than trying to wedge even more into the shader compiler. Might as well leverage Metal's C++'ness.
Currently just a skeleton of a buffer type that would better emulate HLSL Buffer<>/RWBuffer<> objects.
Change 3646727 by Marcus.Wassmer
fix linux and nonunity compiles
Change 3647777 by Rolando.Caloca
DR - Mobile Vulkan optimization
Change 3647822 by Lauren.Ridge
Layers are now renameable (except Layer 0 is always "Background") in Material Layers Functions
Change 3647918 by Chris.Bunner
Static analysis fixes - Monolithic include, forward delcared enums, locally shadowed variable.
Change 3648010 by Michael.Lentine
Don't use min16float by default.
Change 3648015 by Michael.Lentine
Add special case fixes for min16float as well as half on console.
Change 3648024 by Lauren.Ridge
Moving MaterialLayersFunctions Layer naming to EditorOnly wrappers
Change 3648127 by Lauren.Ridge
Moving name getter functionality to FMaterialLayersFunctions
Change 3648265 by Lauren.Ridge
Fixing loctext key
Change 3648293 by Rolando.Caloca
DR - D3D12 fix
Change 3648326 by Rolando.Caloca
DR - vk - Added subrectangle support when updating Texture2D and Texture3D
Change 3648522 by Rolando.Caloca
DR - vk - Do not try to create a BufferView of a StructuredBuffer (no valid pixelformat)
Change 3648612 by Rolando.Caloca
DR - vk - Implement RHIMapStagingSurface
Change 3648673 by Rolando.Caloca
DR - vk - Reduce Vulkan pipeline cache disk size by filtering duplicated shader ucodes
Change 3648913 by Arne.Schober
DR - Performance optimization during HLod traversal. using vector load and avoiding array copy by passing it through reference instead through value.
Change 3649443 by Daniel.Wright
Exposed EmissiveBoost, since Lightmass supports Emissive areas on meshes
Change 3650436 by Mark.Satterthwaite
Implemented the necessary extensions for Metal shading language to move lots of complexity out of MetalBackend and into actual shader code to make life *vastly* simpler.
- Full ue4::typed_buffer<T> wrapper type & associated ue4::buffer<>/ue4::buffer_atomic<> API - totally untested but should be functionally equivalent to HLSL Buffer<T>/RWBuffer<T>.
- All the sensible casts I can think of are now defined in ue4_format - any additional ones can just be added. The enurm of formats needs to be exposed to MetalRHI so we upload the correct values, but this should be trivial.
- Added a full series of wrappers around texturecube_array and depthcube_array to insulate code from whether it is backed by a real cube_array or a texture2d_array so we don't have to maintain complicated variants for new/old iOS devices.
- Added implementations for a bunch of annoying HLSL & GLSL intrinsics that were being matched by name + reverse_bits which needs a custom implementation on old shader standards.
Change 3650861 by Rolando.Caloca
DR - vk - Fix warnings
Change 3651116 by Rolando.Caloca
DR - vk - Support for compressed saved PSO cache
Change 3651321 by Rolando.Caloca
DR - vk - Prep for load multiple PSO files
Change 3651337 by Chris.Bunner
Editor-only default material fallback (hardcoded material).
#jira UE-48404
Change 3651839 by Rolando.Caloca
DR - vk - Integrate minor pipeline changes
Change 3652042 by Mark.Satterthwaite
More work on mtlpp:
- Selector class that caches IMP from SEL & Class.
- Fixes to ns::Error.
- Added test case application for testing denorm & float reinterpret-cast behaviour on Metal.
Change 3652370 by Uriel.Doyon
New "stat StreamingOverview" giving high level metrics of texture usage.
New function ResetAverageRequiredTexturePoolSize() and GetAverageRequiredTexturePoolSize() giving the average ideal value for "r.streaming.poolsize".
Change 3653658 by Chris.Bunner
Material vertex interpolator for sprite and gpu sprite particles.
Change 3653676 by Rolando.Caloca
DR - vk - Integrate changes: Multiple PSO caches, shared ucode & compression, size reduction up to 80%
Change 3653940 by Daniel.Wright
Moved Volumetric Lightmap textures out of FScene and into FPrecomputedVolumetricLightmapData so their lifetime can match the MapBuildData. This allows tossing the source BulkData in game after RHI texture creation even though switching lighting scenarios does Release/InitializeRenderingResources multiple times.
Change 3653956 by Daniel.Wright
Fixed leak of BatchVisibilityId's
Change 3653991 by Daniel.Wright
Fixed missing include
Change 3654013 by Daniel.Wright
Refactored reflection capture composite SM4 handling, now forces fully rough even if !REFLECTION_COMPOSITE_USE_BLENDED_REFLECTION_CAPTURES (forward shading default)
Change 3654018 by Daniel.Wright
Remove unused SM4 reflection capture cubemap
Change 3654118 by Rolando.Caloca
DR - vk - Fix for queries; support for r.Vulkan.ProfileCmdBuffers to only time cmd buffers w/o gpu bubbles
Change 3654339 by Chris.Bunner
Temporarily disabed a material error whilst working with content teams to fix the introduced bugs.
Change 3654534 by Daniel.Wright
Editor is only supported on Feature Level 5 platforms. Added a message box and exit when SM4 is detected (d3d10, OpenGL 3).
Change 3654751 by Rolando.Caloca
DR - vk - Add readback for RGB10A2; minor optimization
Change 3654940 by Rolando.Caloca
DR - vk - Warning fix
Change 3655104 by Mark.Satterthwaite
Add a bunch of code to mtlpp to wrap the Xcode command-line Metal tools and use them to provide a convenient command-line tool that can compile two Metal shaders & diff the resulting AIR to make debugging easier. Obviously this only works on macOS.
Change 3655173 by Jian.Ru
Render dithered material as masked if a stencil prepass is not used
#jira UE-50064, UE-49537
Change 3655479 by Daniel.Wright
Fixed HandleLegacyMapBuildData not getting called on P maps loaded in the editor, which apparently was dropped in an integration error, causing all legacy maps (before the BuildData change) to lose their built lighting.
Change 3656341 by Richard.Wallis
Metal validation checks to test for drawing of the end of a vertex stream as seen in UE-48172 (Landscape Mesh Flickers Rapidly When Using Sculpting Landscape). This is not a fix for that but just a error log to catch the bad draw calls.
#jira UE-48172
Change 3656844 by Rolando.Caloca
DR - vk - Avoid microcode copy
- Fix link error
Change 3656894 by Rolando.Caloca
DR - vk - Enable api dump without needing validation enabled
Change 3656915 by Marcus.Wassmer
Fix DX12 buffer lock for read
Change 3657166 by Rolando.Caloca
DR - vk - Proper fix for api dump layer
Change 3657401 by Rolando.Caloca
DR - vk - Linux compile fix
Change 3657607 by Rolando.Caloca
DR - vk - Prep for changes
Change 3658722 by Chris.Bunner
Refresh shared texture samplers when changing max ansiotropy level (e.g. scalability settings).
#jira UE-30086
Change 3659499 by Daniel.Wright
Moved bEnableAutoLODGeneration to LOD category so it's not the only one in HLOD category
Change 3659644 by Mark.Satterthwaite
D3D11 equivalent to 3656341 (only enabled when -d3ddebug is) to validate DrawIndexedPrimitives isn't trying to draw off the end of the instanced vertex streams which has inconsistent (and potentially undefined) behaviour across the various APIs we support. This fires when painting the landscape because the code attempts to render with a FirstInstance value that is as large as the number of elements in the instance-data streams which D3D11 drivers silently fails to render, but which Metal (& probably Vulkan too) will renders as garbage. This pattern is wrong & will be even more dangerous in a Draw*Indirect world.
#jira UE-48172
Change 3659831 by Rolando.Caloca
DR - vk - Copy 3657927 (fixes for Mali)
Change 3661921 by Rolando.Caloca
DR - vk - Minor log/info changes
Change 3661985 by Mark.Satterthwaite
Change the Metal sampler filter translation to better match D3D.
Change 3662050 by Richard.Wallis
Compile fix for Metal enums.
Change 3662062 by Rolando.Caloca
DR - Copy from 3662060
- OpenGL cloth fix
Change 3662100 by Mark.Satterthwaite
Use a temporary file and an atomic move to put the Metal PCH into the right place and reduce the number of false PCH compile failures on the build farm.
Change 3662253 by Daniel.Wright
Reflection Captures support Lighting Scenarios without recapturing
* Reflection Captures are now part of the Map Build
* Modifying a capture in editor will display a preview, but game can only display built captures (black for unbuilt with screen message)
* Reflection Capture build data moved to the BuildData package
* Building lighting / reflection captures no longer dirties ULevels
* Sky lights which capture the scene now work correctly with Lighting Scenarios
* Lighting Scenarios must now be loaded for each time they are made visible (no switching back and forth while keeping both loaded)
Change 3663215 by Mark.Satterthwaite
Initial, incomplete, tool added to mtlpp to help debug macOS Internal Compiler Errors - the mtlpp command-line tool can be fed the debug output from UE4 along with compiler settings to automatically compile shaders and construct the render pipeline that crashes the runtime compiler.
So far only macOS render-pipeline-states are supported currently.
Change 3663293 by Mark.Satterthwaite
Added Metal device selection to the mtlpp command-line tool so I can quickly test compile on dual-GPU Macbook Pro's.
Change 3663471 by Daniel.Wright
Reflection Capture Builds no longer use UEditorLevelUtils::SetLevelVisibility to control level visibility, which streams out sublevels, modifying nav mesh
Fixed status updates during Reflection Capture Build
Captures overflowing GMaxNumReflectionCaptures now log a warning instead of pretending that they built successfully
Change 3664056 by Rolando.Caloca
DR - Linux compile fix
Change 3664460 by Daniel.Wright
Restored unused LoadTimesObjectVersion, packages saved with it will issue a warning on load
Change 3664802 by Uriel.Doyon
Fixed flash created by pre-exposure when the value changed dramatically between frames
Change 3664890 by Daniel.Wright
Created 'Stat MapBuildData' to track the memory size of lighting and reflection capture build outputs
Change 3665163 by Rolando.Caloca
DR - Copy from 3665156
- Gracefully fail when there are mem leaks exiting Vulkan
Change 3665629 by Daniel.Wright
Only Surface domain materials cast shadows in Lightmass
Change 3665855 by Marcus.Wassmer
PR #4032: Fix comparison of SceneColorFormat (Contributed by Hybrid0)
Change 3666707 by Guillaume.Abadie
Replaces some custom material node to get View.BufferSizeAndInvSize with ViewProperty material expression in some engine material functions.
Change 3667239 by Rolando.Caloca
DR - Use hlslcc define for common issues
Change 3668108 by Brian.Karis
Disabled to Catmull-Rom filter. Too many flickering issues. Disabled antiflicker as well.
Change 3668157 by Mark.Satterthwaite
In the prototype Metal stdlib extension library add inline versions of the D3D SM6 "wave" intrinsics that can be expressed in terms of Metal 2.0 simd/quad group operations (macOS=simd, iOS=quad). These are unlikely to be as efficient as direct intrinsics but they should be functionally equivalent.
These functions are not available *yet* as I still need to hook the ue4_stdlib into MetalShaderFormat & MetalRHI.
The following HLSL 6 functions are implemented:
WaveAllBitAnd
WaveAllMax
WaveAllMin
WaveAllBitOr
WaveAllBitXor
WaveAllEqual
WaveAllProduct
WaveAllSum
WaveAllTrue
WaveAnyTrue
WaveBallot
WaveGetLaneCount
WaveGetLaneIndex
WaveOnce
WavePrefixProduct
WavePrefixSum
WaveReadFirstLane
WaveReadLaneAt
The following can't be implemented in Metal as of Metal 2.0 AFAIK:
WaveGetOrderedIndex
WaveIsHelperLane
GlobalOrderedCountIncrement
QuadReadLaneAt
QuadSwapX
QuadSwapY
Change 3668260 by Olaf.Piesche
Cache particle collision shaders regardless of simple forward state
Missed this checkin
#jira FORT-51307
Change 3669243 by Daniel.Wright
Bumped shader version to propagate FReflectionCaptureData rename
Change 3669369 by Mark.Satterthwaite
Duplicating Metal changes from //UE4/Release-4.18 to Dev-Rendering (//UE4/Dev-Rendering)
3662503 Collapse system-variables to one declaration in MetalUtils to avoid later shader compiler errors when they are specified more than once, which is seemingly permissable. Fixes volumetric fog.
#jira UE-50293
3665210 - Invalidate all Metal shaders again to force a recompile to workaround another driver bug.
- On macOS compact the clip-distance value into a single output to avoid bugs in the runtime pipeline compilers.
- In SCW's direct-compile mode MetalShaderForamt should always dump the resulting Metal shader and print any errors we encounter to the log.
- Change FGenerateMetalVisitor to take a FMetalCodeBackend& not a FMetalCodeBackend* to avoid a lot of pointless pointer validation.
#jira UE-50244
3665429 Fix a crash on shutdown due to MetalRHI caching vertex-declarations beyond the lifetime of the RHI by moving the cache into the FMetalDynamicRHI itself.
#jira UE-50356
3665613 Fix DistanceField rendering on Metal & the associated validation layer error when it is enabled - MetalRHI can't use the same approach as Vulkan without a bit more work.
#jira UE-50364
3667584 Fix black flickering on some materials that use World Position Offset - the Metal sincos intrinsic comes into two flavours for single precision floats and we want the precise version not the fast version. The "cross" implementation needed a few more fma's too and this change has to invalidate Metal shaders again to take effect.
#jira UE-50399
3667805 Changing sincos in Metal fragment shaders had undesirable side-effects - the compiler is now re-associating another floating point operation - so limit the use of precise::sincos to vertex-shaders for now. This fixes the WPO materials without causing any other obvious problems.
#jira UE-50399
Change 3669912 by Mark.Satterthwaite
Fix Metal compilation for PCSS shadows - the HLSL that is compiled uses both SampleCmp and Sample which GLSL disallows (shadowSampler types in GLSL only allow SampleCmp) but is perfectly valid in Metal where only the texture type declaration changes.
Duplicate MetalBackend.cpp changes from Joe.Graf's: 3667781
Fixed an extra ) being emitted during HLSL->Metal translation
Added depthcube_array support per Mark's instructions
Change 3670308 by Mark.Satterthwaite
Missing autorelease pool blocks in MetalTexture functions.
Change 3670989 by Mark.Satterthwaite
Stop trying to be so clever with Metal clip-distances: AMD have a bug in 10.13.0 that means we can only emit one clip-distance value, so simply emit the value with the lowest index (we have handily ordered them by importance!) and let the others become user-interpolators until this bug is resolved in a macOS SU (according to Max@AMD the fix is in, just not in time for 4.18). This means planar reflections will work, VR no-multi-view-fallback will work & layered rendering will work either individually or together - the difference being that on macOS *only* the VR no-multi-view-fallback & layered rendering paths may be slower when combined with the global clip plane.
Hit & run fix to MetalCaptureManager and availability of tile-shader functions while I'm here.
#jira UE-50518
Change 3671014 by Mark.Satterthwaite
Correct handling of RowLinearPVRTC blits for iOS Metal desired for Ocean.
Change 3671575 by Rolando.Caloca
DR - Copy 3668036
Stop syncing CPU with GPU on Vulkan
Change 3671637 by Rolando.Caloca
DR - Copy 3670937
Fixes Vulkan editor outline
Change 3672309 by Mark.Satterthwaite
Submitted on behalf of Richard Wallis:
Only disable V-Sync on Metal in macOS 10.13 when running in "true" fullscreen mode (where we switch display modes & forbid switching spaces or tabbing out) so that you won't see the rainbow artefact caused by being out-of-sync with WindowServer, only the tearing you'd expect when V-Sync is disabled. We'll chat with Apple about whether there is a way to avoid the rainbow artefact when switching spaces in Windowed Fullscreen with displaySync disabled.
#jira UE-50134
Change 3672314 by Daniel.Wright
User friendly message dialog for when a required key is missing from BaseLightmass.ini
Change 3672315 by Daniel.Wright
Assert on load when a uniform buffer struct goes missing, instead of a crash on save
Change 3672476 by Chris.Bunner
Removed duplicate material instance editor command binding that appeared in a task stream merge.
Change 3672626 by Mark.Satterthwaite
Move the ue4_stdlib.metal extensions to MetalRHI's Public header directory as it'll need to be available to both modules and that's easier to accomplish from here.
Change 3672643 by Mark.Satterthwaite
iOS compilation fixes.
Change 3672728 by Daniel.Wright
Fixed encoded HDR reflection captures
Change 3672753 by Jian.Ru
Fix texture swimming
#jira UE-49369
Change 3672815 by Daniel.Wright
Tooltip for build button explaining why it might be disabled
Change 3673350 by Rolando.Caloca
DR - vk - Do not reallocate memory every draw call
Change 3673501 by Rolando.Caloca
DR - vk - Remove more reallocations
Change 3673505 by Rolando.Caloca
DR - Remove global variable with semantic
Change 3673514 by Rolando.Caloca
DR - vk - compile fix
Change 3675899 by Chris.Bunner
Fixed support for editor-time transient parameter overrides. This happens when a compiled material's scalar or vector parameter is changed in value only, the active material resources should also update and be reverted when the material graph is closed. The code was incorrectly pulling base parameters from expressions instead of the actual uniform.
Change 3676843 by Arne.Schober
DR - UE-49473 - Fix Stateleak caused by custom drawer in the long for loop, where the depth stencil state might not be reset in a subsequent itteration of the loop.
Change 3678269 by Daniel.Wright
Fixed Encoded HDR reflection capture data getting the wrong Brightness applied when cooking
Change 3678543 by Daniel.Wright
MapBuildData now tosses the unneeded reflection capture format on load. Affects target platforms that require multiple formats at cook time.
Change 3679602 by Jian.Ru
Fix up mesh decal shader complexity view mode
#jira UE-50272
Change 3679959 by Chris.Bunner
Fixed logic on overriden vector parameter retrieval for material instances checking a function owned parameter.
#jira UE-50712
Change 3679998 by Daniel.Wright
Fixed crash when precomputing static visibility only
[CL 3680175 by Marcus Wassmer in Main branch]
2017-10-04 13:36:51 -04:00
bDirtyPersistentLevel = false ;
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildAIPaths )
{
bDoBuild = GEditor - > WarnAboutHiddenLevels ( InWorld , false ) ;
if ( bDoBuild )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
GEditor - > ResetTransaction ( NSLOCTEXT ( " UnrealEd " , " RebuildNavigation " , " Rebuilding Navigation " ) ) ;
2015-03-30 21:07:03 -04:00
2015-09-07 07:48:34 -04:00
// We can't set the busy cursor for all windows, because lighting
// needs a cursor for the lighting options dialog.
const FScopedBusyCursor BusyCursor ;
2015-03-30 21:07:03 -04:00
2015-09-07 07:48:34 -04:00
TriggerNavigationBuilder ( InWorld , Id ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-07 07:48:34 -04:00
}
else if ( CustomBuildTypes . Contains ( Id ) )
{
2015-09-07 11:00:55 -04:00
const auto & CustomBuild = CustomBuildTypes . FindChecked ( Id ) ;
check ( CustomBuild . DoBuild . IsBound ( ) ) ;
2014-03-14 14:13:41 -04:00
2015-09-07 07:48:34 -04:00
// Invoke custom build.
2015-09-07 11:00:55 -04:00
auto Result = CustomBuild . DoBuild . Execute ( InWorld , Id ) ;
2015-09-07 07:48:34 -04:00
bDoBuild = Result ! = EEditorBuildResult : : Skipped ;
bShouldMapCheck = Result = = EEditorBuildResult : : Success ;
bDirtyPersistentLevel = Result = = EEditorBuildResult : : Success ;
if ( Result = = EEditorBuildResult : : InProgress )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
InProgressBuildId = Id ;
2014-03-14 14:13:41 -04:00
}
2015-09-07 07:48:34 -04:00
}
else if ( Id = = FBuildOptions : : BuildHierarchicalLOD )
{
bDoBuild = GEditor - > WarnAboutHiddenLevels ( InWorld , false ) ;
if ( bDoBuild )
2015-01-22 11:05:14 -05:00
{
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
GEditor - > ResetTransaction ( NSLOCTEXT ( " UnrealEd " , " BuildHLODMeshes " , " Building Hierarchical LOD Meshes " ) ) ;
2015-07-13 05:27:21 -04:00
2015-09-07 07:48:34 -04:00
// We can't set the busy cursor for all windows, because lighting
// needs a cursor for the lighting options dialog.
const FScopedBusyCursor BusyCursor ;
2015-07-13 05:27:21 -04:00
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
if ( InWorld - > IsPartitionedWorld ( ) )
{
bShouldMapCheck = false ;
bDirtyPersistentLevel = false ;
}
2015-09-07 07:48:34 -04:00
TriggerHierarchicalLODBuilder ( InWorld , Id ) ;
2015-07-13 05:27:21 -04:00
}
2015-09-07 07:48:34 -04:00
}
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
else if ( Id = = FBuildOptions : : BuildMinimap )
{
bDoBuild = InWorld - > IsPartitionedWorld ( ) ;
if ( bDoBuild )
{
GEditor - > ResetTransaction ( NSLOCTEXT ( " UnrealEd " , " BuildHLODMeshes " , " Building Hierarchical LOD Meshes " ) ) ;
// We can't set the busy cursor for all windows, because lighting
// needs a cursor for the lighting options dialog.
const FScopedBusyCursor BusyCursor ;
bShouldMapCheck = false ;
bDirtyPersistentLevel = false ;
TriggerMinimapBuilder ( InWorld , Id ) ;
}
}
2020-11-26 14:22:44 -04:00
else if ( Id = = FBuildOptions : : BuildAllLandscape )
2020-04-27 16:16:09 -04:00
{
bDoBuild = GEditor - > WarnAboutHiddenLevels ( InWorld , false ) ;
if ( bDoBuild )
{
2020-11-26 14:22:44 -04:00
GEditor - > ResetTransaction ( NSLOCTEXT ( " UnrealEd " , " BuildAllLandscape " , " Building Landscape " ) ) ;
EditorBuildAllLandscape ( InWorld ) ;
2020-04-27 16:16:09 -04:00
}
}
2015-09-07 07:48:34 -04:00
else if ( Id = = FBuildOptions : : BuildAll | | Id = = FBuildOptions : : BuildAllSubmit )
{
// TODO: WarnIfLightingBuildIsCurrentlyRunning should check with FBuildAllHandler
bDoBuild = GEditor - > WarnAboutHiddenLevels ( InWorld , true ) ;
bool bLightingAlreadyRunning = GUnrealEd - > WarnIfLightingBuildIsCurrentlyRunning ( ) ;
if ( bDoBuild & & ! bLightingAlreadyRunning )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
FBuildAllHandler : : Get ( ) . StartBuild ( InWorld , Id , BuildProgressWidget ) ;
2014-03-14 14:13:41 -04:00
}
2015-09-07 07:48:34 -04:00
}
else
{
UE_LOG ( LogEditorBuildUtils , Warning , TEXT ( " Invalid build Id: %s " ) , * Id . ToString ( ) ) ;
bDoBuild = false ;
2014-03-14 14:13:41 -04:00
}
2022-04-18 15:15:30 -04:00
// It's possible the world was unloaded & reloaded if external commands were run.
// To work around this, reassign the initial world from it's soft object path.
2022-05-05 09:40:14 -04:00
InWorld = World . IsValid ( ) ? World . Get ( ) : GEditor - > GetEditorWorldContext ( ) . World ( ) ;
2022-04-18 15:15:30 -04:00
2014-03-14 14:13:41 -04:00
// Check map for errors (only if build operation happened)
if ( bShouldMapCheck & & bDoBuild & & ! GEditor - > GetMapBuildCancelled ( ) )
{
GUnrealEd - > Exec ( InWorld , TEXT ( " MAP CHECK DONTDISPLAYDIALOG " ) ) ;
}
if ( bDoBuild )
{
// Display elapsed build time.
UE_LOG ( LogEditorBuildUtils , Log , TEXT ( " Build time %s " ) , * BuildProgressWidget . Pin ( ) - > BuildElapsedTimeText ( ) . ToString ( ) ) ;
}
// Build completed, hide the build progress dialog.
// NOTE: It's important to turn off modalness before hiding the window, otherwise a background
// application may unexpectedly be promoted to the foreground, obscuring the editor.
GWarn - > CloseBuildProgressWindow ( ) ;
GUnrealEd - > RedrawLevelEditingViewports ( ) ;
if ( bDoBuild )
{
if ( bDirtyPersistentLevel )
{
InWorld - > MarkPackageDirty ( ) ;
}
ULevel : : LevelDirtiedEvent . Broadcast ( ) ;
}
// Don't show map check if we cancelled build because it may have some bogus data
const bool bBuildCompleted = bDoBuild & & ! GEditor - > GetMapBuildCancelled ( ) ;
if ( bBuildCompleted )
{
if ( bShouldMapCheck )
{
FMessageLog ( " MapCheck " ) . Open ( EMessageSeverity : : Warning ) ;
}
FMessageLog ( " LightingResults " ) . Notify ( LOCTEXT ( " LightingErrorsNotification " , " There were lighting errors. " ) , EMessageSeverity : : Error ) ;
}
return bBuildCompleted ;
}
/**
* Private helper method to log an error both to GWarn and to the build ' s list of accumulated errors
*
* @ param InErrorMessage Message to log to GWarn / add to list of errors
* @ param OutAccumulatedErrors List of errors accumulated during a build process so far
*/
void FEditorBuildUtils : : LogErrorMessage ( const FText & InErrorMessage , FText & OutAccumulatedErrors )
{
OutAccumulatedErrors = FText : : Format ( LOCTEXT ( " AccumulateErrors " , " {0} \n {1} " ) , OutAccumulatedErrors , InErrorMessage ) ;
UE_LOG ( LogEditorBuildUtils , Warning , TEXT ( " %s " ) , * InErrorMessage . ToString ( ) ) ;
}
/**
* Helper method to handle automated build behavior in the event of an error . Depending on the specified behavior , one of three
* results are possible :
* a ) User is prompted on whether to proceed with the automated build or not ,
* b ) The error is regarded as a build - stopper and the method returns failure ,
* or
* c ) The error is acknowledged but not regarded as a build - stopper , and the method returns success .
* In any event , the error is logged for the user ' s information .
*
* @ param InBehavior Behavior to use to respond to the error
* @ param InErrorMsg Error to log
* @ param OutAccumulatedErrors List of errors accumulated from the build process so far ; InErrorMsg will be added to the list
*
* @ return true if the build should proceed after processing the error behavior ; false if it should not
*/
bool FEditorBuildUtils : : ProcessAutomatedBuildBehavior ( EAutomatedBuildBehavior InBehavior , const FText & InErrorMsg , FText & OutAccumulatedErrors )
{
// Assume the behavior should result in the build being successful/proceeding to start
bool bSuccessful = true ;
switch ( InBehavior )
{
// In the event the user should be prompted for the error, display a modal dialog describing the error and ask the user
// if the build should proceed or not
case ABB_PromptOnError :
{
bSuccessful = EAppReturnType : : Yes = = FMessageDialog : : Open ( EAppMsgType : : YesNo , InErrorMsg ) ;
}
break ;
// In the event that the specified error should abort the build, mark the processing as a failure
case ABB_FailOnError :
bSuccessful = false ;
break ;
}
// Log the error message so the user is aware of it
LogErrorMessage ( InErrorMsg , OutAccumulatedErrors ) ;
// If the processing resulted in the build inevitably being aborted, write to the log about the abortion
if ( ! bSuccessful )
{
LogErrorMessage ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_AutomatedBuildAborted " , " Automated build aborted. " ) , OutAccumulatedErrors ) ;
}
return bSuccessful ;
}
/**
* Helper method designed to perform the necessary preparations required to complete an automated editor build
*
* @ param BuildSettings Build settings that will be used for the editor build
* @ param OutPkgsToSubmit Set of packages that need to be saved and submitted after a successful build
* @ param OutErrorMessages Errors that resulted from the preparation ( may or may not force the build to stop , depending on build settings )
*
* @ return true if the preparation was successful and the build should continue ; false if the preparation failed and the build should be aborted
*/
bool FEditorBuildUtils : : PrepForAutomatedBuild ( const FEditorAutomatedBuildSettings & BuildSettings , TSet < UPackage * > & OutPkgsToSubmit , FText & OutErrorMessages )
{
// Assume the preparation is successful to start
bool bBuildSuccessful = true ;
OutPkgsToSubmit . Empty ( ) ;
ISourceControlProvider & SourceControlProvider = ISourceControlModule : : Get ( ) . GetProvider ( ) ;
// Source control is required for the automated build, so ensure that SCC support is compiled in and
// that the server is enabled and available for use
2015-05-27 09:04:30 -04:00
if ( BuildSettings . bUseSCC & & ! ( ISourceControlModule : : Get ( ) . IsEnabled ( ) & & SourceControlProvider . IsAvailable ( ) ) )
2014-03-14 14:13:41 -04:00
{
bBuildSuccessful = false ;
LogErrorMessage ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_SCCError " , " Cannot connect to source control; automated build aborted. " ) , OutErrorMessages ) ;
}
TArray < UPackage * > PreviouslySavedWorldPackages ;
TArray < UPackage * > PackagesToCheckout ;
TArray < ULevel * > LevelsToSave ;
if ( bBuildSuccessful )
{
TArray < UWorld * > AllWorlds ;
FString UnsavedWorlds ;
EditorLevelUtils : : GetWorlds ( GWorld , AllWorlds , true ) ;
// Check all of the worlds that will be built to ensure they have been saved before and have a filename
// associated with them. If they don't, they won't be able to be submitted to source control.
FString CurWorldPkgFileName ;
for ( TArray < UWorld * > : : TConstIterator WorldIter ( AllWorlds ) ; WorldIter ; + + WorldIter )
{
const UWorld * CurWorld = * WorldIter ;
check ( CurWorld ) ;
UPackage * CurWorldPackage = CurWorld - > GetOutermost ( ) ;
check ( CurWorldPackage ) ;
2021-11-07 23:43:01 -05:00
if ( FPackageName : : DoesPackageExist ( CurWorldPackage - > GetName ( ) , & CurWorldPkgFileName ) )
2014-03-14 14:13:41 -04:00
{
PreviouslySavedWorldPackages . AddUnique ( CurWorldPackage ) ;
// Add all packages which have a corresponding file to the set of packages to submit for now. As preparation continues
// any packages that can't be submitted due to some error will be removed.
OutPkgsToSubmit . Add ( CurWorldPackage ) ;
}
else
{
UnsavedWorlds + = FString : : Printf ( TEXT ( " %s \n " ) , * CurWorldPackage - > GetName ( ) ) ;
}
}
// If any of the worlds haven't been saved before, process the build setting's behavior to see if the build
// should proceed or not
if ( UnsavedWorlds . Len ( ) > 0 )
{
bBuildSuccessful = ProcessAutomatedBuildBehavior ( BuildSettings . NewMapBehavior ,
FText : : Format ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_UnsavedMap " , " The following levels have never been saved before and cannot be submitted: \n \n {0} \n \n Attempt to continue the build? " ) , FText : : FromString ( UnsavedWorlds ) ) ,
OutErrorMessages ) ;
}
}
// Load the asset tools module
FAssetToolsModule & AssetToolsModule = FModuleManager : : GetModuleChecked < FAssetToolsModule > ( " AssetTools " ) ;
2015-05-27 09:04:30 -04:00
if ( bBuildSuccessful & & BuildSettings . bUseSCC )
2014-03-14 14:13:41 -04:00
{
// Update the source control status of any relevant world packages in order to determine which need to be
// checked out, added to the depot, etc.
SourceControlProvider . Execute ( ISourceControlOperation : : Create < FUpdateStatus > ( ) , SourceControlHelpers : : PackageFilenames ( PreviouslySavedWorldPackages ) ) ;
FString PkgsThatCantBeCheckedOut ;
for ( TArray < UPackage * > : : TConstIterator PkgIter ( PreviouslySavedWorldPackages ) ; PkgIter ; + + PkgIter )
{
UPackage * CurPackage = * PkgIter ;
const FString CurPkgName = CurPackage - > GetName ( ) ;
FSourceControlStatePtr SourceControlState = SourceControlProvider . GetState ( CurPackage , EStateCacheUsage : : ForceUpdate ) ;
if ( ! SourceControlState . IsValid ( ) | |
( ! SourceControlState - > IsSourceControlled ( ) & &
! SourceControlState - > IsUnknown ( ) & &
! SourceControlState - > IsIgnored ( ) ) )
{
FString CurFilename ;
2021-11-07 23:43:01 -05:00
if ( FPackageName : : DoesPackageExist ( CurPkgName , & CurFilename ) )
2014-03-14 14:13:41 -04:00
{
if ( IFileManager : : Get ( ) . IsReadOnly ( * CurFilename ) )
{
PkgsThatCantBeCheckedOut + = FString : : Printf ( TEXT ( " %s \n " ) , * CurPkgName ) ;
OutPkgsToSubmit . Remove ( CurPackage ) ;
}
}
}
2015-05-27 09:04:30 -04:00
else if ( SourceControlState - > IsCheckedOut ( ) )
{
}
2014-03-14 14:13:41 -04:00
else if ( SourceControlState - > CanCheckout ( ) )
{
PackagesToCheckout . Add ( CurPackage ) ;
}
else
{
PkgsThatCantBeCheckedOut + = FString : : Printf ( TEXT ( " %s \n " ) , * CurPkgName ) ;
OutPkgsToSubmit . Remove ( CurPackage ) ;
}
}
// If any of the packages can't be checked out or are read-only, process the build setting's behavior to see if the build
// should proceed or not
if ( PkgsThatCantBeCheckedOut . Len ( ) > 0 )
{
bBuildSuccessful = ProcessAutomatedBuildBehavior ( BuildSettings . UnableToCheckoutFilesBehavior ,
FText : : Format ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_UnsaveableFiles " , " The following assets cannot be checked out of source control (or are read-only) and cannot be submitted: \n \n {0} \n \n Attempt to continue the build? " ) , FText : : FromString ( PkgsThatCantBeCheckedOut ) ) ,
OutErrorMessages ) ;
}
}
if ( bBuildSuccessful )
{
// Check out all of the packages from source control that need to be checked out
if ( PackagesToCheckout . Num ( ) > 0 )
{
TArray < FString > PackageFilenames = SourceControlHelpers : : PackageFilenames ( PackagesToCheckout ) ;
SourceControlProvider . Execute ( ISourceControlOperation : : Create < FCheckOut > ( ) , PackageFilenames ) ;
// Update the package status of the packages that were just checked out to confirm that they
// were actually checked out correctly
SourceControlProvider . Execute ( ISourceControlOperation : : Create < FUpdateStatus > ( ) , PackageFilenames ) ;
FString FilesThatFailedCheckout ;
for ( TArray < UPackage * > : : TConstIterator CheckedOutIter ( PackagesToCheckout ) ; CheckedOutIter ; + + CheckedOutIter )
{
UPackage * CurPkg = * CheckedOutIter ;
FSourceControlStatePtr SourceControlState = SourceControlProvider . GetState ( CurPkg , EStateCacheUsage : : ForceUpdate ) ;
// If any of the packages failed to check out, remove them from the set of packages to submit
if ( ! SourceControlState . IsValid ( ) | | ( ! SourceControlState - > IsCheckedOut ( ) & & ! SourceControlState - > IsAdded ( ) & & SourceControlState - > IsSourceControlled ( ) ) )
{
FilesThatFailedCheckout + = FString : : Printf ( TEXT ( " %s \n " ) , * CurPkg - > GetName ( ) ) ;
OutPkgsToSubmit . Remove ( CurPkg ) ;
}
}
// If any of the packages failed to check out correctly, process the build setting's behavior to see if the build
// should proceed or not
if ( FilesThatFailedCheckout . Len ( ) > 0 )
{
bBuildSuccessful = ProcessAutomatedBuildBehavior ( BuildSettings . UnableToCheckoutFilesBehavior ,
FText : : Format ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_FilesFailedCheckout " , " The following assets failed to checkout of source control and cannot be submitted: \n {0} \n \n Attempt to continue the build? " ) , FText : : FromString ( FilesThatFailedCheckout ) ) ,
OutErrorMessages ) ;
}
}
}
// Verify there are still actually any packages left to submit. If there aren't, abort the build and warn the user of the situation.
if ( bBuildSuccessful )
{
bBuildSuccessful = OutPkgsToSubmit . Num ( ) > 0 ;
if ( ! bBuildSuccessful )
{
LogErrorMessage ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_Error_NoValidLevels " , " None of the current levels are valid for submission; automated build aborted. " ) , OutErrorMessages ) ;
}
}
// If the build is safe to commence, force all of the levels visible to make sure the build operates correctly
if ( bBuildSuccessful )
{
bool bVisibilityToggled = false ;
2019-08-21 15:47:26 -04:00
UWorld * World = GWorld ;
if ( ! FLevelUtils : : IsLevelVisible ( World - > PersistentLevel ) )
2014-03-14 14:13:41 -04:00
{
2019-08-21 15:47:26 -04:00
EditorLevelUtils : : SetLevelVisibility ( World - > PersistentLevel , true , false ) ;
2014-03-14 14:13:41 -04:00
bVisibilityToggled = true ;
}
2019-08-21 15:47:26 -04:00
for ( ULevelStreaming * CurStreamingLevel : World - > GetStreamingLevels ( ) )
2014-03-14 14:13:41 -04:00
{
2018-02-22 11:25:06 -05:00
if ( CurStreamingLevel & & ! FLevelUtils : : IsStreamingLevelVisibleInEditor ( CurStreamingLevel ) )
2014-03-14 14:13:41 -04:00
{
2018-02-22 11:25:06 -05:00
CurStreamingLevel - > SetShouldBeVisibleInEditor ( true ) ;
2014-03-14 14:13:41 -04:00
bVisibilityToggled = true ;
}
}
if ( bVisibilityToggled )
{
2019-08-21 15:47:26 -04:00
World - > FlushLevelStreaming ( ) ;
2014-03-14 14:13:41 -04:00
}
}
return bBuildSuccessful ;
}
/**
* Helper method to submit packages to source control as part of the automated build process
*
* @ param InPkgsToSubmit Set of packages which should be submitted to source control
* @ param BuildSettings Build settings used during the automated build
*/
void FEditorBuildUtils : : SubmitPackagesForAutomatedBuild ( const TSet < UPackage * > & InPkgsToSubmit , const FEditorAutomatedBuildSettings & BuildSettings )
{
TArray < FString > LevelsToAdd ;
TArray < FString > LevelsToSubmit ;
ISourceControlProvider & SourceControlProvider = ISourceControlModule : : Get ( ) . GetProvider ( ) ;
// first update the status of the packages
SourceControlProvider . Execute ( ISourceControlOperation : : Create < FUpdateStatus > ( ) , SourceControlHelpers : : PackageFilenames ( InPkgsToSubmit . Array ( ) ) ) ;
// Iterate over the set of packages to submit, determining if they need to be checked in or
// added to the depot for the first time
for ( TSet < UPackage * > : : TConstIterator PkgIter ( InPkgsToSubmit ) ; PkgIter ; + + PkgIter )
{
const UPackage * CurPkg = * PkgIter ;
const FString PkgName = CurPkg - > GetName ( ) ;
const FString PkgFileName = SourceControlHelpers : : PackageFilename ( CurPkg ) ;
FSourceControlStatePtr SourceControlState = SourceControlProvider . GetState ( CurPkg , EStateCacheUsage : : ForceUpdate ) ;
if ( SourceControlState . IsValid ( ) )
{
if ( SourceControlState - > IsCheckedOut ( ) | | SourceControlState - > IsAdded ( ) )
{
LevelsToSubmit . Add ( PkgFileName ) ;
}
else if ( BuildSettings . bAutoAddNewFiles & & ! SourceControlState - > IsSourceControlled ( ) & & ! SourceControlState - > IsIgnored ( ) )
{
LevelsToSubmit . Add ( PkgFileName ) ;
LevelsToAdd . Add ( PkgFileName ) ;
}
}
}
// Then, if we've also opted to check in any packages, iterate over that list as well
if ( BuildSettings . bCheckInPackages )
{
TArray < FString > PackageNames = BuildSettings . PackagesToCheckIn ;
for ( TArray < FString > : : TConstIterator PkgIterName ( PackageNames ) ; PkgIterName ; PkgIterName + + )
{
const FString & PkgName = * PkgIterName ;
const FString PkgFileName = SourceControlHelpers : : PackageFilename ( PkgName ) ;
FSourceControlStatePtr SourceControlState = SourceControlProvider . GetState ( PkgFileName , EStateCacheUsage : : ForceUpdate ) ;
if ( SourceControlState . IsValid ( ) )
{
if ( SourceControlState - > IsCheckedOut ( ) | | SourceControlState - > IsAdded ( ) )
{
LevelsToSubmit . Add ( PkgFileName ) ;
}
else if ( ! SourceControlState - > IsSourceControlled ( ) & & ! SourceControlState - > IsIgnored ( ) )
{
// note we add the files we need to add to the submit list as well
LevelsToSubmit . Add ( PkgFileName ) ;
LevelsToAdd . Add ( PkgFileName ) ;
}
}
}
}
// first add files that need to be added
SourceControlProvider . Execute ( ISourceControlOperation : : Create < FMarkForAdd > ( ) , LevelsToAdd , EConcurrency : : Synchronous ) ;
// Now check in all the changes, including the files we added above
TSharedRef < FCheckIn , ESPMode : : ThreadSafe > CheckInOperation = StaticCastSharedRef < FCheckIn > ( ISourceControlOperation : : Create < FCheckIn > ( ) ) ;
2015-05-27 09:04:30 -04:00
if ( BuildSettings . ChangeDescription . IsEmpty ( ) )
{
CheckInOperation - > SetDescription ( NSLOCTEXT ( " UnrealEd " , " AutomatedBuild_AutomaticSubmission " , " [Automatic Submission] " ) ) ;
}
else
{
CheckInOperation - > SetDescription ( FText : : FromString ( BuildSettings . ChangeDescription ) ) ;
}
2014-03-14 14:13:41 -04:00
SourceControlProvider . Execute ( CheckInOperation , LevelsToSubmit , EConcurrency : : Synchronous ) ;
}
2021-11-25 11:52:31 -05:00
void FEditorBuildUtils : : TriggerNavigationBuilder ( UWorld * & InOutWorld , FName Id )
2014-03-14 14:13:41 -04:00
{
2021-11-25 11:52:31 -05:00
if ( InOutWorld )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
if ( Id = = FBuildOptions : : BuildAIPaths | |
Id = = FBuildOptions : : BuildSelectedAIPaths | |
Id = = FBuildOptions : : BuildAllOnlySelectedPaths | |
Id = = FBuildOptions : : BuildAll | |
Id = = FBuildOptions : : BuildAllSubmit )
2014-03-14 14:13:41 -04:00
{
2015-09-07 07:48:34 -04:00
bBuildingNavigationFromUserRequest = true ;
}
else
{
bBuildingNavigationFromUserRequest = false ;
2014-03-14 14:13:41 -04:00
}
2022-05-19 09:59:18 -04:00
if ( UE : : EditorBuildUtils : : bNavmeshAllowPartitionedBuildingFromEditor & & InOutWorld - > IsPartitionedWorld ( ) )
2021-11-25 11:52:31 -05:00
{
2022-05-19 09:59:18 -04:00
const FString & LongPackageName = GetNameSafe ( InOutWorld - > GetPackage ( ) ) ;
2021-11-25 11:52:31 -05:00
WorldPartitionBuildNavigation ( LongPackageName ) ;
InOutWorld = GEditor - > GetEditorWorldContext ( ) . World ( ) ;
}
else
{
// Invoke navmesh generator
FNavigationSystem : : Build ( * InOutWorld ) ;
}
2014-03-14 14:13:41 -04:00
}
}
2021-11-25 11:52:31 -05:00
bool FEditorBuildUtils : : WorldPartitionBuildNavigation ( const FString & InLongPackageName )
{
2022-01-14 14:27:31 -05:00
UWorldPartitionBuildNavigationOptions * DefaultBuildNavigationOptions = GetMutableDefault < UWorldPartitionBuildNavigationOptions > ( ) ;
DefaultBuildNavigationOptions - > bVerbose = false ;
DefaultBuildNavigationOptions - > bCleanPackages = false ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
TSharedPtr < SWindow > DlgWindow =
SNew ( SWindow )
. Title ( LOCTEXT ( " BuildNavigationWindowTitle " , " Build Navigation Settings " ) )
. ClientSize ( SWorldPartitionBuildNavigationDialog : : DEFAULT_WINDOW_SIZE )
. SupportsMinimize ( false )
. SupportsMaximize ( false )
. SizingRule ( ESizingRule : : FixedSize ) ;
TSharedRef < SWorldPartitionBuildNavigationDialog > Dialog =
SNew ( SWorldPartitionBuildNavigationDialog )
. ParentWindow ( DlgWindow )
. BuildNavigationOptions ( DefaultBuildNavigationOptions ) ;
DlgWindow - > SetContent ( Dialog ) ;
IMainFrameModule & MainFrameModule = FModuleManager : : LoadModuleChecked < IMainFrameModule > ( TEXT ( " MainFrame " ) ) ;
FSlateApplication : : Get ( ) . AddModalWindow ( DlgWindow . ToSharedRef ( ) , MainFrameModule . GetParentWindow ( ) ) ;
if ( Dialog - > ClickedOk ( ) )
2021-11-25 11:52:31 -05:00
{
2022-01-14 14:27:31 -05:00
// Ask user to save dirty packages
if ( ! FEditorFileUtils : : SaveDirtyPackages ( /*bPromptUserToSave=*/ true , /*bSaveMapPackages=*/ true , /*bSaveContentPackages=*/ false ) )
{
return false ;
}
// Unload any loaded map
if ( ! UEditorLoadingAndSavingUtils : : NewBlankMap ( /*bSaveExistingMap*/ false ) )
{
return false ;
}
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
FProcHandle ProcessHandle ;
bool bCancelled = false ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
// Task scope
{
FScopedSlowTask SlowTask ( 0 , LOCTEXT ( " WorldPartitionBuildNavigationProgress " , " Building navigation... " ) ) ;
SlowTask . MakeDialog ( true ) ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
const FString CurrentExecutableName = FPlatformProcess : : ExecutablePath ( ) ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
// Try to provide complete Path, if we can't try with project name
const FString ProjectPath = FPaths : : IsProjectFilePathSet ( ) ? FPaths : : GetProjectFilePath ( ) : FApp : : GetProjectName ( ) ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
uint32 ProcessID ;
2021-11-25 11:52:31 -05:00
2022-01-19 11:44:26 -05:00
ISourceControlProvider & SCCProvider = ISourceControlModule : : Get ( ) . GetProvider ( ) ;
const FString Arguments = FString : : Printf ( TEXT ( " \" %s \" -run=WorldPartitionBuilderCommandlet %s %s -SCCProvider=%s %s %s " ) ,
2022-01-14 14:27:31 -05:00
* ProjectPath ,
* InLongPackageName ,
2022-01-19 11:44:26 -05:00
TEXT ( " -AllowCommandletRendering -Builder=WorldPartitionNavigationDataBuilder -log=WPNavigationBuilderLog.txt " ) ,
* SCCProvider . GetName ( ) . ToString ( ) ,
2022-01-14 14:27:31 -05:00
DefaultBuildNavigationOptions - > bVerbose ? TEXT ( " -Verbose " ) : TEXT ( " " ) ,
DefaultBuildNavigationOptions - > bCleanPackages ? TEXT ( " -CleanPackages " ) : TEXT ( " " ) ) ;
ProcessHandle = FPlatformProcess : : CreateProc ( * CurrentExecutableName , * Arguments , true , false , false , & ProcessID , 0 , nullptr , nullptr ) ;
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
while ( FPlatformProcess : : IsProcRunning ( ProcessHandle ) )
2021-11-25 11:52:31 -05:00
{
2022-01-14 14:27:31 -05:00
if ( SlowTask . ShouldCancel ( ) )
{
bCancelled = true ;
FPlatformProcess : : TerminateProc ( ProcessHandle ) ;
break ;
}
2021-11-25 11:52:31 -05:00
2022-01-14 14:27:31 -05:00
SlowTask . EnterProgressFrame ( 0 ) ;
FPlatformProcess : : Sleep ( 0.1 ) ;
}
2021-11-25 11:52:31 -05:00
}
2022-01-14 14:27:31 -05:00
int32 Result = 0 ;
if ( ! bCancelled & & FPlatformProcess : : GetProcReturnCode ( ProcessHandle , & Result ) )
{
2022-02-11 15:38:51 -05:00
// Force a directory watcher tick for the asset registry to get notified of the changes
FDirectoryWatcherModule & DirectoryWatcherModule = FModuleManager : : Get ( ) . LoadModuleChecked < FDirectoryWatcherModule > ( TEXT ( " DirectoryWatcher " ) ) ;
DirectoryWatcherModule . Get ( ) - > Tick ( - 1.0f ) ;
// Unload any loaded map
if ( ! UEditorLoadingAndSavingUtils : : NewBlankMap ( /*bSaveExistingMap*/ false ) )
2021-11-25 11:52:31 -05:00
{
2022-02-11 15:38:51 -05:00
return false ;
2022-01-14 14:27:31 -05:00
}
2022-02-11 15:38:51 -05:00
// Force registry update before loading converted map
const FAssetRegistryModule & AssetRegistryModule = FModuleManager : : LoadModuleChecked < FAssetRegistryModule > ( " AssetRegistry " ) ;
IAssetRegistry & AssetRegistry = AssetRegistryModule . Get ( ) ;
FString MapToLoad = InLongPackageName ;
AssetRegistry . ScanModifiedAssetFiles ( { MapToLoad } ) ;
AssetRegistry . ScanPathsSynchronous ( ULevel : : GetExternalObjectsPaths ( MapToLoad ) , true ) ;
FEditorFileUtils : : LoadMap ( MapToLoad ) ;
2022-01-14 14:27:31 -05:00
}
else if ( bCancelled )
{
FMessageDialog : : Open ( EAppMsgType : : Ok , LOCTEXT ( " WorldPartitionBuildNavigationCancelled " , " Building navigation cancelled! " ) ) ;
}
if ( Result ! = 0 )
{
2022-02-11 15:38:51 -05:00
FMessageDialog : : Open ( EAppMsgType : : Ok , LOCTEXT ( " WorldPartitionBuildNavigationFailed " , " Errors occured during the build process, please refer to the logs ('WPNavigationBuilderLog.txt'). " ) ) ;
2021-11-25 11:52:31 -05:00
}
}
return false ;
}
2015-09-07 07:48:34 -04:00
/**
* Call this when an async custom build step has completed ( successfully or not ) .
*/
void FEditorBuildUtils : : AsyncBuildCompleted ( )
{
check ( InProgressBuildId ! = NAME_None ) ;
// Reset in-progress id before resuming build all do we don't overwrite something that's just been set.
auto BuildId = InProgressBuildId ;
InProgressBuildId = NAME_None ;
if ( BuildId = = FBuildOptions : : BuildAll | | BuildId = = FBuildOptions : : BuildAllSubmit )
{
FBuildAllHandler : : Get ( ) . ResumeBuild ( ) ;
}
}
/**
* Is there currently an ( async ) build in progress ?
*/
bool FEditorBuildUtils : : IsBuildCurrentlyRunning ( )
{
return InProgressBuildId ! = NAME_None ;
}
/**
* Register a custom build type .
* @ param Id The identifier to use for this build type .
* @ param DoBuild The delegate to execute to run this build .
* @ param BuildAllExtensionPoint If a valid name , run this build * before * running the build with this id when performing a Build All .
*/
void FEditorBuildUtils : : RegisterCustomBuildType ( FName Id , const FDoEditorBuildDelegate & DoBuild , FName BuildAllExtensionPoint )
{
check ( ! CustomBuildTypes . Contains ( Id ) ) ;
CustomBuildTypes . Add ( Id , FCustomBuildType ( DoBuild , BuildAllExtensionPoint ) ) ;
if ( BuildAllExtensionPoint ! = NAME_None )
{
FBuildAllHandler : : Get ( ) . AddCustomBuildStep ( Id , BuildAllExtensionPoint ) ;
}
}
/**
* Unregister a custom build type .
* @ param Id The identifier of the build type to unregister .
*/
void FEditorBuildUtils : : UnregisterCustomBuildType ( FName Id )
{
CustomBuildTypes . Remove ( Id ) ;
FBuildAllHandler : : Get ( ) . RemoveCustomBuildStep ( Id ) ;
}
/**
* Initialise Build All handler .
*/
FBuildAllHandler : : FBuildAllHandler ( )
: CurrentStep ( 0 )
{
// Add built in build steps.
2020-11-26 14:22:44 -04:00
BuildSteps . Add ( FBuildOptions : : BuildAllLandscape ) ;
2015-09-07 07:48:34 -04:00
BuildSteps . Add ( FBuildOptions : : BuildGeometry ) ;
BuildSteps . Add ( FBuildOptions : : BuildHierarchicalLOD ) ;
BuildSteps . Add ( FBuildOptions : : BuildAIPaths ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3219450)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3148067 on 2016/10/01 by Daniel.Wright
Support for ReflectionEnvironment and light type show flags with ForwardShading
Change 3149085 on 2016/10/03 by Daniel.Wright
Support for ReflectionEnvironment show flag in base pass reflections without any shader overhead
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3186067 on 2016/11/03 by Daniel.Wright
Updated Stationary primitive tooltip to indicate that it allows the primitive to be changed, but not moved
Change 3186069 on 2016/11/03 by Daniel.Wright
Using a weighted geometric mean to combine multiple Distance Field Indirect Shadows, greatly reduces over-occlusion when overlap is high
Change 3186084 on 2016/11/03 by Mark.Satterthwaite
Duplicate 3172511:
Don't set Metal resource option fields on texture descriptors when running on an OS that doesn't support them.
#jira UE-37481
Change 3186089 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3169764:
Fixed automatic conversion of G8_sRGB into RGBA8_sRGB required for Mac Metal, which fixes FORT-27627.
#jira FORT-27627
Change 3186113 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183807:
Change the way we access the Metal viewport's backbuffer, to reduce possible causes of FORT-31649:
- Added console variable "rhi.Metal.SupportsIntermediateBackBuffer" to control whether to use an extra render-target so we can support screenshots & movie capture, or render directly to the back-buffer to save memory & GPU performance. Still defaults to ON for Mac & OFF for iOS/tvOS.
- Change the way we handle updates to the back-buffer size to ensure that the different threads access their intended version.
#jira FORT-31649
Change 3186116 on 2016/11/03 by Mark.Satterthwaite
Duplicate CL #3183823:
Record Metal resource & state objects used in a command-buffer when rhi.Metal.RuntimeDebugLevel is set to 3 or higher. The object labels, types & descriptions will be printed on failure - if the object is deleted prior to this then we have a lifetime error and it will crash at this point and can be debugged further using our -metalretainrefs command-line option or Xcode's zombie-objects.
Used to verify that FORT-31649 is not a simple resource lifetime error and thereby speed up Apple/vendor investigations.
#jira FORT-31649
Change 3186818 on 2016/11/04 by Chris.Bunner
PR #2907 Export UMaterialExpressionNoise (contributed by kayosiii).
Change 3186979 on 2016/11/04 by Rolando.Caloca
DR - Misc minor cleanup
Change 3187169 on 2016/11/04 by Uriel.Doyon
Incremental insertion of level data between PostLoad and AddToWorld
Change 3187205 on 2016/11/04 by Mark.Satterthwaite
Compile fixes for iOS.
Change 3187389 on 2016/11/04 by Uriel.Doyon
Fix for possible stall when loading hidden level
Change 3187598 on 2016/11/04 by Michael.Trepka
MetalViewport compile fix
Change 3187678 on 2016/11/04 by Uriel.Doyon
Fix for landscape grass textures not being streamed in correctly.
Change 3187731 on 2016/11/04 by Rolando.Caloca
DR - Start making type safe some cross compiler enums
Change 3187824 on 2016/11/04 by Rolando.Caloca
DR - clang compile fix
Change 3187953 on 2016/11/04 by Rolando.Caloca
DR - vk - Mac compile fix
Change 3188696 on 2016/11/07 by Mark.Satterthwaite
Another iOS compile fix for new MetalViewport validation code.
Change 3188906 on 2016/11/07 by Rolando.Caloca
DR - Show permutation of LUTBlender
Change 3189094 on 2016/11/07 by Chris.Bunner
Fix RemoveAAJitter from projection matrix.
#jira UE-37701, UE-38003
Change 3189134 on 2016/11/07 by Daniel.Wright
Fix for CreateRenderTarget2D called in construction script during cooking
Change 3189145 on 2016/11/07 by Chris.Bunner
Follow-up to CL 3186818, export UMaterialExpressionVectorNoise.
Change 3189239 on 2016/11/07 by Daniel.Wright
Added show flag for Contact Shadows, disabled in planar reflections
Change 3189252 on 2016/11/07 by Daniel.Wright
Support for Reflection Capture intensity with simple reflections, which are the default with Forward Shading
Change 3189406 on 2016/11/07 by Mark.Satterthwaite
Really fix the last of the iOS compile errors from changes to the MetalViewport code.
Change 3190854 on 2016/11/08 by Ben.Woodhouse
XB1: Fix memory corruption with RHICreateVertexBuffer and RHICreateIndexBuffer when using initial data (Procedural Mesh Component crash)
#jira UE-34264
#fyi james.golding
#fyi keith.judge
Change 3190962 on 2016/11/08 by Olaf.Piesche
Unshelved from pending changelist '3176615' - Gil's fix for race condiiton with particle vertex factory reuse across different passes; potential to fix a number of issues
Change 3191959 on 2016/11/09 by Uriel.Doyon
Removed some static primitives from the dynamic primitive handler for texture streaming.
Change 3193122 on 2016/11/10 by Chris.Bunner
Always update non-preview material resources for use in code preview.
#jira UE-38223
Change 3193190 on 2016/11/10 by Gil.Gribb
UE4 - Fixed rare bug with shadow groups rendering things that have not been setup to render this frame.
#jira UE-36379
Change 3193523 on 2016/11/10 by Uriel.Doyon
Fixed incorrect section bounds used for texture streaming.
Change 3193962 on 2016/11/10 by Uriel.Doyon
Added defrag of dynamic bounds used for the texture streaming. Allows to remove unused bounds over time.
Change 3193974 on 2016/11/10 by Uriel.Doyon
New "Required Texture Resolution" view mode. Showing the ratio between the currently streamed texture resolution and the resolution wanted by the GPU.
Change 3194109 on 2016/11/10 by Uriel.Doyon
Another patch on material bounds used for texture streaming.
Change 3194665 on 2016/11/11 by Chris.Bunner
Duplicated behavior for inherited velocity scaling scaling to vert/surface spawned particles.
Change 3194734 on 2016/11/11 by Rolando.Caloca
DR - vk - Simplified some texture casting
Change 3194867 on 2016/11/11 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3195176 on 2016/11/11 by Chris.Bunner
Fixed incorrectly updated NVAPI error.
Change 3195425 on 2016/11/11 by Uriel.Doyon
Fixed possible invalid level reference in the texture streamer
Change 3196512 on 2016/11/14 by Gil.Gribb
Merging //UE4/Dev-Main@3196156 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3196750 on 2016/11/14 by Marcus.Wassmer
Fix ordering problem with GPU cache transitions
Change 3196815 on 2016/11/14 by Daniel.Wright
Suppressed 'Instanced stereo rendering is not supported' warning showing up in CIS
Change 3196818 on 2016/11/14 by Daniel.Wright
Fixed FIndirectLightingCache::UpdateCachePrimitivesInternal churning through a bunch of temporary memory
Change 3196819 on 2016/11/14 by Daniel.Wright
Volume lighting samples are allowed outside of the importance volume if their influence affects the volume. Fixes black indirect lighting on movable components in maps with small importance volumes.
Volume lighting samples placed on surfaces use a radius that covers the layer height spacing, which prevents an uncovered region between layers
Change 3197243 on 2016/11/14 by Uriel.Doyon
Async Task For Updating static component LastRender time
#jira UE-24268
Change 3197359 on 2016/11/14 by Daniel.Wright
Added Inscattering Texture controls to ExponentialHeightFog
* When InscatteringColorCubemap is specified, directional light inscattering is disabled
* Lerps betwen 1x1 mip at NonDirectionalInscatteringColorDistance to mip 0 at FullyDirectionalInscatteringColorDistance
* Added FogCutoffDistance, so artists can prevent fog on skyboxes (requires fog to be setup matching the fog that was rendered into the sky texture so that distant mountains match)
* Fog shader permutations based on what feature is enabled
Change 3198419 on 2016/11/15 by Chris.Bunner
PS4 HDR: Runtime toggle (backbuffer recreation on resize matching), UI composition. Matches PC behavior and controls.
HDR: Generalized buffer formats, cvar consistency pass, LUT for UI composition, refactoring common functions.
Exposed RHICreateTargetableShaderResource3D.
Moved some (translucent) volume rendering helpers to allow access in Slate.
Change 3198822 on 2016/11/15 by Daniel.Wright
Mac compile fix
Change 3199509 on 2016/11/15 by Uriel.Doyon
Added support for viewmode param asset name (and note just param value).
Used to investigate texture streamer behavior.
Change 3199578 on 2016/11/15 by Rolando.Caloca
DR - Add some shader resource tables to SCW when running with -directcompile
Change 3199698 on 2016/11/15 by Rolando.Caloca
DR - vk - Refactor shader & descriptor bindings
Change 3199712 on 2016/11/15 by Rolando.Caloca
DR - vk - r.Vulkan.StripGlsl to always strip glsl at runtime to save memory per shader
Change 3199717 on 2016/11/15 by Rolando.Caloca
DR - vk - Show hitching PSO info again
Change 3199750 on 2016/11/15 by Rolando.Caloca
DR - SCW clang compile fixes
Change 3200353 on 2016/11/16 by Rolando.Caloca
DR - vk - Mac fix
Change 3200358 on 2016/11/16 by Chris.Bunner
Only allow UI composition on platforms we currently use it.
Change 3200823 on 2016/11/16 by Chris.Bunner
Remove expression key attribute ID when not translating an attribute output to allow intended expression sharing.
#jira UE-38699
Change 3200947 on 2016/11/16 by Mark.Satterthwaite
Fix UE-38695 by not trying to resize the viewport on the wrong thread.
#jira UE-38695
Change 3201069 on 2016/11/16 by Daniel.Wright
Fog inscattering texture limited to SM4 and above, fixes ES2 compile errors
Change 3201346 on 2016/11/16 by Brian.Karis
Temporal AA fix for correct edge gradients.
Filtering now combined with importance sampling.
Enabled Catmull-Rom resolve filter. Results are now slightly sharper.
Fixed antighosting. Will yet require a dilation to be perfect.
Optimized bicubic filtering to 5 taps instead of 9.
Cleaned out unused code.
Change 3201369 on 2016/11/16 by Brian.Karis
Bicubic texture sample
Change 3201522 on 2016/11/16 by Rolando.Caloca
DR - vk - Fix static analysis issues
Change 3201878 on 2016/11/17 by Chris.Bunner
Temporarily disable Nvapi HDR error logging.
#jira UE-38529
Change 3202108 on 2016/11/17 by Simon.Tovey
Assets with easy repro for flickering particles bug
Change 3202181 on 2016/11/17 by Rolando.Caloca
DR - vk - CIS android fix
Change 3202325 on 2016/11/17 by Ben.Woodhouse
Integrate 4.14.1 fix from 14 //UE4/Release-4.14 (@3201850)
Fix CreateVertexbuffer and CreateIndexBuffer memory corruption (Procedural Mesh Component crash)
#jira UE-34264
Change 3204394 on 2016/11/18 by Guillaume.Abadie
PR #2808: AlphaComposite Fog Opacity fix (Contributed by moritz-wundke)
#br Ben.Woodhouse
Change 3204428 on 2016/11/18 by Guillaume.Abadie
Fixes a couple of issues in decals:
* Crash in FDecalDrawingPolicyFactory::DrawMesh()
* ActorPostion material expression
* PixelNormalWS material expression
* Missing renaming from DEFERRED_DECAL to DECAL_PRIMITIVE
#jira UE-38327, UE-38158, UE-37818, UE-37350
Change 3204429 on 2016/11/18 by Uriel.Doyon
Darker default undefined accuracy.
Reenabled the texture streaming build in the build all.
Change 3204458 on 2016/11/18 by Chris.Bunner
Shader truncation warnings fix.
Change 3204459 on 2016/11/18 by Chris.Bunner
Engine 'Passthrough' material fuction fix. V4 is now actually a V4.
Change 3204460 on 2016/11/18 by Chris.Bunner
Correctly handle some known Nvapi warnings.
#jira UE-38529
Change 3204653 on 2016/11/18 by Marc.Olano
Helper functions for tiled textures
Checking in for Ryan Brucks
Change 3204863 on 2016/11/18 by Arne.Schober
DR - Replaced ENQUEUE_UNIQUE_RENDER_COMMAND with a Debuggable template Implementation
Change 3204939 on 2016/11/18 by Arne.Schober
DR - Make clang happy
Change 3204968 on 2016/11/18 by Arne.Schober
DR - UE-38494 - Fixed SpeedTree Wind crash, when force deleting the Asset.
Change 3206293 on 2016/11/21 by Uriel.Doyon
New member bHasStreamingUpdatePending in UTexture2D to delay update of global distance fields.
Set to true when the streamer can possibly load a mip in the near future.
#jira UE-37787
Change 3206551 on 2016/11/21 by Chris.Bunner
Added material update context when forcing all shaders to recompile.
#jira UE-38481
Change 3206644 on 2016/11/21 by Benjamin.Hyder
Updating Planar Reflection example in TM-Shadermodels.
Change 3206899 on 2016/11/21 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3206900 on 2016/11/21 by Rolando.Caloca
DR - Added missing strings for shader formats
Change 3206983 on 2016/11/21 by Rolando.Caloca
DR - vk - Support for SV_Coverage
Change 3207237 on 2016/11/22 by Simon.Tovey
Exporting particle module base and a couple of child classes as it's commonly requested.
#test compiles
Change 3207241 on 2016/11/22 by Gil.Gribb
Merging //UE4/Dev-Main@3206998 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3207520 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //Fortnite/Main@3206301
Fixed GPU hang in Zone Map view. Was an issue with RenderThread using the device context without appropriate RHIThread flushes.
#jira FORT-31616
#code_review keith.judge
Change 3207541 on 2016/11/22 by Ben.Woodhouse
Cherry picked from //fortnite/Main@3207422
* Fix UpdateTexture3D to create a staging texture of the region to update rather than the whole texture. This prevents distance fields crashing during update (allocating 18GB per frame in some cases)
* Put UpdateTexture2D DMA support onto a cvar, disabled by default (corruption issues reported by licensees, plus not sure it's actually faster - could be slower due to reduced bandwidth; issues reported by licensees)
* Fix UpdateTexture2D to only create a staging texture of the region to update, saving memory
#jira UE-38609
Change 3207654 on 2016/11/22 by Chris.Bunner
Don't flag 16-bit PNG/JPG textures as sRGB on import.
#jira UE-30279
Change 3208434 on 2016/11/22 by Rolando.Caloca
DR - vk - UAV transitions
Change 3208490 on 2016/11/22 by Chris.Bunner
Break material code sharing when we detect an unresolvable loop.
By default change IsResultMA loop detection to stop on functions as we can determine type definitively.
Unified IsResultMA detection across switch nodes.
Change 3208860 on 2016/11/23 by Rolando.Caloca
DR - vk - Fix some format issues
Change 3209265 on 2016/11/23 by Arne.Schober
DR - originally unshelved from 3153924 - Made Depth and Velocity Rendering Passes to use PSO only RHI interface,
We are now passing down two structs that collect all the necessary information for the drawing policies to construct a PSO object.
One during construction of the Policy, which contains information abouyt the CullMode, FillMode and PrimType.
And another during rendering that passes infomation like BlendState and DepthStencilState down to the low levelrenderer into SetSharedState.
Performance of the static drawlist ist slightly slower (less than 0.1ms on Consoles) due to some addtional branches and copies. The branches in the FDrawingPolicyRenderState will go away as soon as everything is converted to use the PSO interface.
Performace of the GPU is slightly better due to less context rolls (mainly CullMode sorts in differently now)
Change 3209305 on 2016/11/23 by Guillaume.Abadie
Fix contact shadow's assemption on objects thickness
Change 3209334 on 2016/11/23 by Brian.Karis
Fixed TAA handling of alpha. Switched the meaning of AA_ALPHA to make sense.
Change 3209903 on 2016/11/24 by Guillaume.Abadie
Cherry picks alpha through post processing changelists 3201959, 3204143 and 3209883 from //UE4/Private-Partner-NREAL
Change 3209973 on 2016/11/24 by Ben.Woodhouse
Fix D3D11 and 12 static analysis warnings reported by Rob Troughton of Coconut Lizard (http://coconutlizard.co.uk/blog/ue4/pvs-studio-part5/)
Change 3210023 on 2016/11/24 by Uriel.Doyon
Fixed an issue with DropDetail when FixedFrameRate was set to a value smaller than MinDesiredFrameRate.
#jira UE-37210
Change 3210026 on 2016/11/24 by Ben.Woodhouse
Disable renderthread hang detection if a debugger is present, so we can debug the renderthread without crashing
Change 3210049 on 2016/11/24 by Ben.Woodhouse
Fix mac build
Change 3210071 on 2016/11/24 by Uriel.Doyon
Fixed an issue with masked materials and shader complexity viewmode when DBuffer Decals are enabled.
#jira UE-37542
Change 3210374 on 2016/11/25 by Ben.Woodhouse
* Fix issues with fast cleared dbuffer targets not being resolved when no decals are in the scene. This caused graphical corruption on XB1 and ensure failures on PS4 (with RHIThread disabled)
* Move Decal rendertarget manager function implementations out of the header.
#jira UE-38879
Change 3210390 on 2016/11/25 by Uriel.Doyon
Fixed cubemap resourcesize not taking into account mipgen settings
#jira UE-37045
Change 3210407 on 2016/11/25 by Uriel.Doyon
"resavepackages" commandlet now supports -buildtexturestreaming that rebuilds the map texture streaming data.
That can be used in combination with -buildlighting.
Change 3210563 on 2016/11/27 by Rolando.Caloca
DR - vk - Integrate cached memory fixes and PF_D24 format fix
#jira UE-39025
PR #2974
Change 3210564 on 2016/11/27 by Rolando.Caloca
DR - Fix for GL linker
PR #2975
#jira UE-39029
Change 3210592 on 2016/11/27 by Rolando.Caloca
DR - vk - SM5 fixes
Change 3210597 on 2016/11/27 by Rolando.Caloca
DR - vk - Prep for staging UB copies to GPU memory
Change 3210600 on 2016/11/27 by Rolando.Caloca
DR - vk - Extract generic range code
Change 3210613 on 2016/11/27 by Rolando.Caloca
DR - vk - Added r.Vulkan.SubmitOnDispatch
Change 3211054 on 2016/11/28 by Rolando.Caloca
DR - vk - Missing reference
Change 3211330 on 2016/11/28 by Chris.Bunner
Shader compile error for max texture coordinate count on skinned meshes.
Change 3211384 on 2016/11/28 by Arne.Schober
DR - Enforce move on EnqueueRenderCommand Lambda
Change 3211431 on 2016/11/28 by Gil.Gribb
Merging //UE4/Dev-Main@3211016 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3211738 on 2016/11/28 by Gil.Gribb
IWYU fixes after merge
Change 3212231 on 2016/11/28 by Richard.Wallis
Fix build errors
Change 3212253 on 2016/11/28 by Richard.Wallis
Remove MacGraphicsSwitching plugin.
#jira UE-37640
Change 3212310 on 2016/11/28 by Rolando.Caloca
DR - vk - Update glslang to 1.0.33.0
Change 3212446 on 2016/11/28 by Guillaume.Abadie
Implements PreviousFrameSwitch material expression
Change 3212594 on 2016/11/28 by Arne.Schober
DR - Fix missing include
Change 3212681 on 2016/11/29 by Rolando.Caloca
DR - vk - Auto flush for compute shader
Change 3213000 on 2016/11/29 by Gil.Gribb
temp fix for PF_MAX
Change 3213161 on 2016/11/29 by Ben.Woodhouse
Integrate latest D3D12 changes from //depot/Partners/Microsoft/UE4-DX12/...@3211714
Using:
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Runtime/D3D12RHI/...@3211714 //UE4/Dev-Rendering/Engine/Source/Runtime/D3D12RHI/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/ThirdParty/Windows/DirectX/...@3211714 //UE4/Dev-Rendering/Engine/Source/ThirdParty/Windows/DirectX/...
- p4 integrate //depot/Partners/Microsoft/UE4-DX12/Engine/Source/Programs/UnrealBuildTool/...@3211714 //UE4/Dev-Rendering/Engine/Source/Programs/UnrealBuildTool/...
Changes from UE4-DX12:
*** CL 3183818 ***
Update D3D12 RHI to 4.14:
- Merged changes from Epic up until 10/20/16
- Fixed an issue where command allocators where resetting too early. I changed to aggressive command list batching by default now that more SubmitCommandListHint calls exist in the upper engine, we don't need to worry about starving the GPU. Fewer ExecuteCommandLists calls means better performance and fewer Signals() so this change provides a GPU perf win.
I had to fix an issue with aggressive batching where we would sometimes hold on to a command list long enough (in the pending list) but hadn't executed it yet. The command allocator was being put back in the queue of allocators during ReleaseCommandAllocator() without a syncpoint set and was thus being reset too early. I added a simple counter to the command allocator so it could track how many command lists were using it. It doesn't need to be thread safe since only one thread uses a command allocator at a time.
I also added some stats around the # command lists and # command allocators since it would be possible to leak command allocators now if it's pending command list count isn't decremented correctly. In that case we'd keep creating new command allocators and eventually run out of memory.
-Remove clear during allocate in the FD3D12FastConstantAllocator and FD3D12FastAllocator. The supplied resource locations are assumed to be new and thus don't need to be cleared.
-Cleanup D3D12RHI stats. There were some unused stats as well as some missing ones.
-Mark shader resource table uniform buffers as dirty only when the shader changes. Cleanup SetComputeShader calls and Dispatch calls to not set/unset the CS for each Dispatch.
-Remove unused Check SRV resolved code that epic added to the D3D11 RHI and was brought over. We dont need it and we won't use this.
-Remove "always on" cycle counters for high frequency RHI methods like RHISetShaderTexture. These should use the engine's stat macros as they are removed on TEST + SHIPPING builds. On Xbox a significant amount of CPU time is spent in things like QueryPerformanceCounter even when STATS aren't enabled. Currently 1% of an entire capture on XBOX is spent inside this call.
I improved and cleaned up high freqency call stacks like:
- RHISetShaderTexture
- RHISetShaderResourceViewParameter
- RHISetShaderParameter
- RHISetUAVParameter
In general I moved to use templated functions, removed unused parameters, unnecessary copies, etc.
-Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Resources should be associated with the rendering thread's frame that it's currently recording command lists for and they shouldnt be cleaned up until those command lists have been translated to D3D12 command lists on the RHI thread AND completed executing on the GPU. This was confirmed to resolve an issue where CBV resources were being released too early.
This work involved a couple changes:
1) Move the "frame" fence to be incremented on the rendering thread (during RHIAdvanceFrameForGetViewportBackBuffer()) so that resources that are deleted from the rendering thread are assosicated with the correct frame count
2) Queue up a command from the rendering thread to signal the "frame" fence. It needs to be queued to ensure that it's signaled at the correct time on the RHI thread (after that frame's command lists have been executed).
-Disable GRHIRequiresEarlyBackBufferRenderTarget. Metal/Vulkan/Xbox11.x already do this. This is used by the Slate renderer during BeginRenderFrame and avoids a SetRenderTargets call.
-Enable GRHISupportsMSAADepthSampleAccess (used in the Editor). This was enabled for D3D11 on SM5, but not for D3D12.
-Delay load D3D12.dll and add root signature 1.1 support.
-Add explicit flush calls to improve resource barrier batching instead of implict flushes inside FConditionalScopeResourceBarrier and FScopeResourceBarrier. Also update those classes with const members.
*** CL 3183824 ***
Fix the D3D12 RHI after integrating UE 4.14 updates:
- Fixed a bug where we would try to get the PSO of a nullptr in SetPipelineState if we needed to reset the current PSO on the cmd list.
- Fixed a spelling error
- Removed the need for bForceState, we use dirty bits now
*** CL 3183830 ***
- GetDebugFlags RHI extension, needed by XB1 movie player.
- Only query memory info if stats are enabled
- Add support for the engine's new RHISubmitCommandsAndFlushGPU function
- Update CommitPendingPipelineState to be Graphics/Compute specific and avoid the need for a IsCompute parameter.
*** CL 3183837 ***
Made PipelineState caches contain pointers to FD3D12PipelineState objects to avoid issues with using pointers to after Find/Add to the maps. TMap indicates that the pointer to the value associated with a key "is only valid until the next change to any key in the map." The lifetime of the PSO pointers is managed by the low level caches (graphics and compute). Added stat for the number of Pipeline State Objects.
*** CL 3183931 ***
Update Windows D3D12 headers and libs to RS1 release bits (10.0.14393.0)
*** CL 3183978 ***
Update UBT Windows build settings:
- Change D3D12 PIX profiling enable/disable to match Xbox and handle logic in the UEBuildWindows.cs for UBT. Also add a static assert to inform the developer when PIX profiling is requested but the engine is compiling out draw events.
-Delay load D3D12.dll and add root signature 1.1 support.
*** CL 3184132 ***
Fix Xbox PSO cache code where it could leak PSOs. Related to change 3183837.
*** Changelist 3211714 ***
Update D3D12 RHI with fixes:
- Check if we can reserve slots in GatherUniqueSamplerTables
- DirtyState more often in StateCache
- Remove InternalSetSamplerState. The alternate function isn't used.
- Allow MRTClear for arrays with holes in them
- Fix uninitialized descriptors. This was causing a GPU hang on Xbox. We need to set dirty bits for resources bound to slots outside of the current descriptor table's range
- Cleanup SetDescriptorHeap code. Move setting descriptor heap logic to the descriptor cache since it also owns things like the sampler maps. Added members to the descriptor cache to track the last heaps that were set on the command list to avoid dirtying bit unnecessarily.
- Resource transitions: go through Common between queues (3D <--> Compute)
- Fix initial state for placed resources.
- Merging epic
Change 3213250 on 2016/11/29 by Chris.Bunner
GBufferHints tooltip fix.
#jira UE-39103
Change 3213345 on 2016/11/29 by Gil.Gribb
more IWYU fallout
Change 3213676 on 2016/11/29 by Rolando.Caloca
DR - Fix incorrect texture getting cleared
Change 3213728 on 2016/11/29 by Rolando.Caloca
DR - Lambda-ize
Change 3214461 on 2016/11/29 by Ben.Woodhouse
Rollout August QFE4 XDK (required for latest DX12 changes on XB1)
Change 3215317 on 2016/11/30 by Daniel.Wright
PS4 compile fix
Change 3216343 on 2016/11/30 by Arne.Schober
DR - UE-39155 - after talking to Brian it occurred to us that flipping the world space normal is non sensical. And indeed the Grass was using world space normals.
Change 3216844 on 2016/12/01 by Ben.Woodhouse
Fix for static analysis warnings after discussion with Microsoft
Change 3216916 on 2016/12/01 by Gil.Gribb
Merging //UE4/Dev-Main@3216539 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3217385 on 2016/12/01 by Arne.Schober
DR - UE-39218, UE-39221, UE-39224 and potentially UE-39214 - The Stencil bits for Light channels and decal application were not set in the dynamic basepass
Change 3217464 on 2016/12/01 by Ben.Woodhouse
Fix for reflection capture resize assert. The assert is only valid in cooked builds, so disable it in editor
#jira UE-39225
Change 3217534 on 2016/12/01 by Arne.Schober
DR - Fix Merge conflict
Change 3217581 on 2016/12/01 by Rolando.Caloca
DR - Fix assert on debug
Change 3217741 on 2016/12/01 by Benjamin.Hyder
Duplicate audio fix.
Change 3217890 on 2016/12/01 by Rolando.Caloca
DR - Fix widget not rendering properly when hidden
#jira UE-39221
Change 3218129 on 2016/12/01 by Arne.Schober
DR - UE-39214 - Lod dither value as accidently cached accross the static draw list.
Change 3218759 on 2016/12/02 by Guillaume.Abadie
Fixes editor compositing bug caused by alpha through post processing change 3209903
#jira UE-39221
[CL 3219854 by Marcus Wassmer in Main branch]
2016-12-02 16:43:04 -05:00
// Texture streaming goes before lighting as lighting needs to be the last build step.
// This is not an issue as lightmaps are not taken into consideration in the texture streaming build.
BuildSteps . Add ( FBuildOptions : : BuildTextureStreaming ) ;
2015-09-07 07:48:34 -04:00
//Lighting must always be the last one when doing a build all
BuildSteps . Add ( FBuildOptions : : BuildLighting ) ;
}
/**
* Add a custom Build All step .
*/
void FBuildAllHandler : : AddCustomBuildStep ( FName Id , FName InsertBefore )
{
const int32 InsertionPoint = BuildSteps . Find ( InsertBefore ) ;
if ( InsertionPoint ! = INDEX_NONE )
{
BuildSteps . Insert ( Id , InsertionPoint ) ;
}
}
/**
* Remove a custom Build All step .
*/
void FBuildAllHandler : : RemoveCustomBuildStep ( FName Id )
{
BuildSteps . Remove ( Id ) ;
}
/**
* Commence a new Build All operation .
*/
void FBuildAllHandler : : StartBuild ( UWorld * World , FName BuildId , const TWeakPtr < SBuildProgressWidget > & BuildProgressWidget )
{
check ( CurrentStep = = 0 ) ;
check ( CurrentWorld = = nullptr ) ;
check ( CurrentBuildId = = NAME_None ) ;
CurrentWorld = World ;
CurrentBuildId = BuildId ;
ProcessBuild ( BuildProgressWidget ) ;
}
/**
* Resume a Build All build from where it was left off .
*/
void FBuildAllHandler : : ResumeBuild ( )
{
// Resuming from async operation, may be about to do slow stuff again so show the progress window again.
TWeakPtr < SBuildProgressWidget > BuildProgressWidget = GWarn - > ShowBuildProgressWindow ( ) ;
2016-05-19 19:35:35 -04:00
// We have to increment the build step, resuming from an async build step
CurrentStep + + ;
2015-09-07 07:48:34 -04:00
ProcessBuild ( BuildProgressWidget ) ;
// Synchronous part completed, hide the build progress dialog.
GWarn - > CloseBuildProgressWindow ( ) ;
}
/**
* Internal method that actual does the build .
*/
void FBuildAllHandler : : ProcessBuild ( const TWeakPtr < SBuildProgressWidget > & BuildProgressWidget )
{
const FScopedBusyCursor BusyCursor ;
2022-04-18 15:15:30 -04:00
TSoftObjectPtr < UWorld > World = CurrentWorld ;
2015-09-07 07:48:34 -04:00
// Loop until we finish, or we start an async step.
while ( true )
{
2022-04-18 15:15:30 -04:00
// It's possible the world was unloaded & reloaded if external commands were run.
// To work around this, reassign the initial world from it's soft object path.
2022-05-05 09:40:14 -04:00
CurrentWorld = World . IsValid ( ) ? World . Get ( ) : GEditor - > GetEditorWorldContext ( ) . World ( ) ;
2022-04-18 15:15:30 -04:00
2015-09-07 07:48:34 -04:00
if ( GEditor - > GetMapBuildCancelled ( ) )
{
// Build cancelled, so bail.
BuildFinished ( ) ;
break ;
}
check ( BuildSteps . IsValidIndex ( CurrentStep ) ) ;
FName StepId = BuildSteps [ CurrentStep ] ;
if ( StepId = = FBuildOptions : : BuildGeometry )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_Geometry ) ;
GUnrealEd - > Exec ( CurrentWorld , TEXT ( " MAP REBUILD ALLVISIBLE " ) ) ;
}
else if ( StepId = = FBuildOptions : : BuildHierarchicalLOD )
{
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_HLODs ) ;
FEditorBuildUtils : : TriggerHierarchicalLODBuilder ( CurrentWorld , CurrentBuildId ) ;
}
else if ( StepId = = FBuildOptions : : BuildMinimap )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_HLODs ) ;
2015-09-07 07:48:34 -04:00
FEditorBuildUtils : : TriggerHierarchicalLODBuilder ( CurrentWorld , CurrentBuildId ) ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
else if ( StepId = = FBuildOptions : : BuildTextureStreaming )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_TextureStreaming ) ;
FEditorBuildUtils : : EditorBuildTextureStreaming ( CurrentWorld ) ;
}
2019-08-21 08:57:30 -04:00
else if ( StepId = = FBuildOptions : : BuildVirtualTexture )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_VirtualTexture ) ;
FEditorBuildUtils : : EditorBuildVirtualTexture ( CurrentWorld ) ;
}
2020-11-26 14:22:44 -04:00
else if ( StepId = = FBuildOptions : : BuildAllLandscape )
2020-04-27 16:16:09 -04:00
{
2020-11-26 14:22:44 -04:00
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_AllLandscape ) ;
FEditorBuildUtils : : EditorBuildAllLandscape ( CurrentWorld ) ;
2020-04-27 16:16:09 -04:00
}
2015-09-07 07:48:34 -04:00
else if ( StepId = = FBuildOptions : : BuildAIPaths )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_Paths ) ;
FEditorBuildUtils : : TriggerNavigationBuilder ( CurrentWorld , CurrentBuildId ) ;
}
else if ( StepId = = FBuildOptions : : BuildLighting )
{
BuildProgressWidget . Pin ( ) - > SetBuildType ( SBuildProgressWidget : : BUILDTYPE_Lighting ) ;
FLightingBuildOptions LightingOptions ;
int32 QualityLevel ;
// Force automated builds to always use production lighting
if ( CurrentBuildId = = FBuildOptions : : BuildAllSubmit )
{
QualityLevel = Quality_Production ;
}
else
{
GConfig - > GetInt ( TEXT ( " LightingBuildOptions " ) , TEXT ( " QualityLevel " ) , QualityLevel , GEditorPerProjectIni ) ;
QualityLevel = FMath : : Clamp < int32 > ( QualityLevel , Quality_Preview , Quality_Production ) ;
}
LightingOptions . QualityLevel = ( ELightingBuildQuality ) QualityLevel ;
GUnrealEd - > BuildLighting ( LightingOptions ) ;
2019-09-20 05:07:36 -04:00
2015-09-07 07:48:34 -04:00
// TODO!
//bShouldMapCheck = false;
// Lighting is always the last step (Lightmass isn't set up to resume builds).
BuildFinished ( ) ;
break ;
}
else
{
auto & CustomBuildType = FEditorBuildUtils : : CustomBuildTypes [ StepId ] ;
auto Result = CustomBuildType . DoBuild . Execute ( CurrentWorld , CurrentBuildId ) ;
if ( Result = = EEditorBuildResult : : InProgress )
{
// Build & Submit builds must be synchronous.
check ( CurrentBuildId ! = FBuildOptions : : BuildAllSubmit ) ;
// Build step is running asynchronously, so let it run.
FEditorBuildUtils : : InProgressBuildId = CurrentBuildId ;
break ;
}
}
// Next go around we want to do the next step.
CurrentStep + + ;
}
}
/**
* Called when a build is finished ( successfully or not ) .
*/
void FBuildAllHandler : : BuildFinished ( )
{
CurrentStep = 0 ;
CurrentWorld = nullptr ;
CurrentBuildId = NAME_None ;
}
void FEditorBuildUtils : : TriggerHierarchicalLODBuilder ( UWorld * InWorld , FName Id )
2015-01-22 11:05:14 -05:00
{
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
if ( InWorld - > IsPartitionedWorld ( ) )
{
IWorldPartitionEditorModule & WorldPartitionEditorModule = FModuleManager : : LoadModuleChecked < IWorldPartitionEditorModule > ( " WorldPartitionEditor " ) ;
2022-05-22 10:30:02 -04:00
TSubclassOf < UWorldPartitionBuilder > WorldPartitionHLODsBuilder = FindObjectChecked < UClass > ( nullptr , TEXT ( " /Script/UnrealEd.WorldPartitionHLODsBuilder " ) , true ) ;
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
WorldPartitionEditorModule . RunBuilder ( WorldPartitionHLODsBuilder , InWorld - > GetPackage ( ) - > GetName ( ) ) ;
}
else
{
// Invoke HLOD generator, with either preview or full build
InWorld - > HierarchicalLODBuilder - > BuildMeshesForLODActors ( false ) ;
}
}
void FEditorBuildUtils : : TriggerMinimapBuilder ( UWorld * InWorld , FName Id )
{
if ( InWorld - > IsPartitionedWorld ( ) )
{
IWorldPartitionEditorModule & WorldPartitionEditorModule = FModuleManager : : LoadModuleChecked < IWorldPartitionEditorModule > ( " WorldPartitionEditor " ) ;
2022-05-22 10:30:02 -04:00
TSubclassOf < UWorldPartitionBuilder > WorldPartitionMiniMapBuilder = FindObjectChecked < UClass > ( nullptr , TEXT ( " /Script/UnrealEd.WorldPartitionMiniMapBuilder " ) , true ) ;
#jira UE-143721
Build HLODs / Minimap in editor
* Added the necessary code to be able these builds from inside the editor, using the "Build" menu
* The HLOD build will show a dialog where you can select a few options (setup, build, forcebuild, delete), then start the build
* The minimap build has no options, will start right away
* Build is actually done through an external process, so the editor will ask to save any changes that's been made, and unload the current map before starting a commandlet
* Progress is updated by parsing the commandlet log during it's execution
* Once the build is complete, will force an asset registry scan and reload the map
* Also disabled the "HLOD Outliner" tool when in a partitionned level, as it is not working and may be confusing.
#preflight 6226e29f671c913c0502a807
#rb jeanfrancois.dube, patrick.enfedaque
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 19302772 in //UE5/Release-5.0/... via CL 19303919
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19346855 by sebastien lussier in ue5-main branch]
2022-03-10 20:49:05 -05:00
WorldPartitionEditorModule . RunBuilder ( WorldPartitionMiniMapBuilder , InWorld - > GetPackage ( ) - > GetName ( ) ) ;
}
2015-01-22 11:05:14 -05:00
}
2015-07-13 05:27:21 -04:00
2019-02-05 23:17:27 -05:00
EDebugViewShaderMode ViewModeIndexToDebugViewShaderMode ( EViewModeIndex SelectedViewMode )
{
switch ( SelectedViewMode )
{
case VMI_ShaderComplexity :
return DVSM_ShaderComplexity ;
case VMI_ShaderComplexityWithQuadOverdraw :
return DVSM_ShaderComplexityContainedQuadOverhead ;
case VMI_QuadOverdraw :
return DVSM_QuadComplexity ;
case VMI_PrimitiveDistanceAccuracy :
return DVSM_PrimitiveDistanceAccuracy ;
case VMI_MeshUVDensityAccuracy :
return DVSM_MeshUVDensityAccuracy ;
case VMI_MaterialTextureScaleAccuracy :
return DVSM_MaterialTextureScaleAccuracy ;
case VMI_RequiredTextureResolution :
return DVSM_RequiredTextureResolution ;
2021-12-03 02:44:01 -05:00
case VMI_VirtualTexturePendingMips :
return DVSM_VirtualTexturePendingMips ;
2019-07-10 13:47:03 -04:00
case VMI_RayTracingDebug :
return DVSM_RayTracingDebug ;
2020-04-16 18:30:27 -04:00
case VMI_LODColoration :
2020-06-23 18:40:00 -04:00
case VMI_HLODColoration :
2020-04-16 18:30:27 -04:00
return DVSM_LODColoration ;
2022-03-15 06:49:12 -04:00
case VMI_VisualizeGPUSkinCache :
return DVSM_VisualizeGPUSkinCache ;
2019-03-04 10:23:33 -05:00
case VMI_Unknown :
2019-02-05 23:17:27 -05:00
default :
return DVSM_None ;
}
}
2019-07-10 13:47:03 -04:00
void FEditorBuildUtils : : UpdateTextureStreamingMaterialBindings ( UWorld * InWorld )
{
const EMaterialQualityLevel : : Type QualityLevel = EMaterialQualityLevel : : High ;
const ERHIFeatureLevel : : Type FeatureLevel = GMaxRHIFeatureLevel ;
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
TSet < UMaterialInterface * > Materials ;
if ( GetUsedMaterialsInWorld ( InWorld , Materials , nullptr ) )
{
// Flush renderthread since we are about to update the material streaming data.
FlushRenderingCommands ( ) ;
for ( UMaterialInterface * MaterialInterface : Materials )
{
if ( ! MaterialInterface )
{
continue ;
}
TArray < UTexture * > UsedTextures ;
TArray < TArray < int32 > > UsedIndices ;
MaterialInterface - > GetUsedTexturesAndIndices ( UsedTextures , UsedIndices , QualityLevel , FeatureLevel ) ;
MaterialInterface - > SortTextureStreamingData ( true , false ) ;
MaterialInterface - > TextureStreamingDataMissingEntries . Empty ( ) ;
for ( int32 UsedIndex = 0 ; UsedIndex < UsedTextures . Num ( ) ; + + UsedIndex )
{
if ( UsedTextures [ UsedIndex ] )
{
TArray < FMaterialTextureInfo > & MaterialData = MaterialInterface - > GetTextureStreamingData ( ) ;
int32 LowerIndex = INDEX_NONE ;
int32 HigherIndex = INDEX_NONE ;
if ( MaterialInterface - > FindTextureStreamingDataIndexRange ( UsedTextures [ UsedIndex ] - > GetFName ( ) , LowerIndex , HigherIndex ) )
{
// Here we expect every entry in UsedIndices to match one of the entry in the range.
for ( int32 SubIndex = 0 ; LowerIndex < = HigherIndex & & SubIndex < UsedIndices [ UsedIndex ] . Num ( ) ; + + LowerIndex , + + SubIndex )
{
MaterialData [ LowerIndex ] . TextureIndex = UsedIndices [ UsedIndex ] [ SubIndex ] ;
}
}
else // If the texture is missing in the material data, add it ass missing
{
FMaterialTextureInfo MissingInfo ;
MissingInfo . TextureName = UsedTextures [ UsedIndex ] - > GetFName ( ) ;
for ( int32 SubIndex = 0 ; SubIndex < UsedIndices [ UsedIndex ] . Num ( ) ; + + SubIndex )
{
MissingInfo . TextureIndex = UsedIndices [ UsedIndex ] [ SubIndex ] ;
MaterialInterface - > TextureStreamingDataMissingEntries . Add ( MissingInfo ) ;
}
}
}
}
}
}
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
bool FEditorBuildUtils : : EditorBuildTextureStreaming ( UWorld * InWorld , EViewModeIndex SelectedViewMode )
2016-04-04 18:44:59 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( ! InWorld ) return false ;
const bool bNeedsMaterialData = SelectedViewMode = = VMI_MaterialTextureScaleAccuracy | | SelectedViewMode = = VMI_Unknown ;
FScopedSlowTask BuildTextureStreamingTask ( bNeedsMaterialData ? 5.f : 1.f , SelectedViewMode = = VMI_Unknown ? LOCTEXT ( " TextureStreamingBuild " , " Building Texture Streaming " ) : LOCTEXT ( " TextureStreamingDataUpdate " , " Building Missing ViewMode Data " ) ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
BuildTextureStreamingTask . MakeDialog ( true ) ;
2016-04-04 18:44:59 -04:00
const EMaterialQualityLevel : : Type QualityLevel = EMaterialQualityLevel : : High ;
const ERHIFeatureLevel : : Type FeatureLevel = GMaxRHIFeatureLevel ;
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( bNeedsMaterialData )
2016-04-04 18:44:59 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
TSet < UMaterialInterface * > Materials ;
2019-03-19 16:16:11 -04:00
if ( ! GetUsedMaterialsInWorld ( InWorld , Materials , & BuildTextureStreamingTask ) )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3045398)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3028958 on 2016/06/27 by Ben.Woodhouse
Fix for perf issue with GetSingleFinalDataConst
This was caused by the LPV integration/switch to blendables. Now we cache the flag for the directionalocclusion in the LPV class. This reduces calls to GetSingleFinalDataConst on the blendable data (potentially slow), and makes things a bit cleaner and consistent.
Tested in QAGame editor (with LPV enabled in ConsoleSettings.ini)
#jira UE-26179
Change 3029401 on 2016/06/27 by Rolando.Caloca
DR - More vk logging
Change 3029549 on 2016/06/27 by Uriel.Doyon
Refactored "r.OnlyStreamInTextures" into "r.Streaming.FullyLoadUsedTextures", making it fully load every used textures, as an alternative to disabling texture streaming.
New options "r.Streaming.UsePerTextureBias" that assign a bias between 0 and MipBias to each texture in order to fit in budget.
Fixed crash when disabling texture streaming.
Fixed issue when disabling texture streaming that would make current loaded texture low res.
New logic to prevent retrying to cancel a streaming request more than once.
Pending load request of one extra mip will not be cancelled anymore.
Changed UTexture2D from float to double. Also using FApp::GetCurrentTime() instead of FPlatformTime::Seconds().
#jira UE-32197
#jira UE-31102
Change 3029837 on 2016/06/27 by David.Hill
Fixed Shutter SM4 not working when using compute shader eye-adaptation
#jira UE-32443
The default eye adaptation value was missing.
Change 3030039 on 2016/06/27 by Uriel.Doyon
Fix for crash when landscape materials are used in the Texture Streaming Build.
#jira UE-32196
Change 3030081 on 2016/06/27 by Uriel.Doyon
Updated MaterialTexCoordScalesPixelShader to use PackedEyeIndex, preventing crash when building the map with stereo rendering enabled.
Change 3030401 on 2016/06/28 by Ben.Woodhouse
Perf Monitor: Fix for perf warning due to cvar FindConsoleVariable being called too frequently. Tested in QAGame editor (DX11)
#jira UE-31238
Change 3030607 on 2016/06/28 by Marc.Olano
Random Number generators: fixed bug in TEA, added integer and float Blum-Blum-Shub. BBS is way cheaper for similar quality, suggest it for future use.
Change 3030627 on 2016/06/28 by Ben.Woodhouse
Fix for warning. CVar naming scope clash (doesn't appear to happen in vs2015).
Change 3030809 on 2016/06/28 by Marc.Olano
Noise shader function rename & perf improvement.
Due to incorrect terminology in internet soruces, previous "Perlin" noise was not, in fact, Perlin noise. Now more accurately called "Value" noise. 6x perf improvement for value noise by changing random number function to BBS. Also updated instruction counts in UI tooltips.
Change 3030850 on 2016/06/28 by Marc.Olano
Rename & redirect noise material enums. At some point these got switched around and no longer accurately described the noise options the selected. Redirect, so all existing content will continue to work as-is. Updated UDN docs to match.
Change 3030981 on 2016/06/28 by Rolando.Caloca
DR - vk - More logging
Change 3031056 on 2016/06/28 by Marc.Olano
Introduce new pure-ALU gradient shader noise. Add noise samples to RenderTest map
Change 3031398 on 2016/06/28 by Benjamin.Hyder
updating TM-Shadermodels (correcting Mt Rushmore)
Change 3031441 on 2016/06/28 by Marc.Olano
Use only float version of BBS shader rand function for ES2
Change 3031463 on 2016/06/28 by John.Billon
Fixed F4 changing the viewmode in Fortnite editor. The detailed lighting viewmode (detaillighting) named in DefaultInput.ini differed from the one in BaseInput.ini(lit_detaillighting).
#Jira UE-32020
Change 3031512 on 2016/06/28 by Zabir.Hoque
Relax clear flags for DX12 RHIs.
Properly flush pending commands before residency is updated.
Change 3031517 on 2016/06/28 by Rolando.Caloca
DR - vk logging using r.Vulkan.DumpLayer
Change 3032359 on 2016/06/29 by Allan.Bentham
Fix mobile shadows crash.
Change 3032431 on 2016/06/29 by Gil.Gribb
Merging //UE4/Dev-Main@3032394 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3032757 on 2016/06/29 by Uriel.Doyon
Fixed global mip bias being applied twice following integration with main.
Change 3033121 on 2016/06/29 by Rolando.Caloca
DR - vk - Logging
Change 3033529 on 2016/06/29 by Daniel.Wright
Null world guard on UReflectionCaptureComponent::ReadbackFromGPU
Change 3033668 on 2016/06/29 by Uriel.Doyon
Grouped texture streaming settings to simplify logic.
New options "r.Streaming.UseAllMips" to ignores the different lod and cinematic bias
#jira UE-32118
Change 3034403 on 2016/06/30 by Rolando.Caloca
DR - Shorten dumped shader debug strings
Change 3034475 on 2016/06/30 by Rolando.Caloca
DR - Missing logging
Change 3034722 on 2016/06/30 by Uriel.Doyon
Improved StreamingAccuracy viewmodes with alpha test and translucent materials
#jira UE-32656
Change 3034797 on 2016/06/30 by Rolando.Caloca
DR - vk - 'fix' RHIClear but causes a CPU hang on AMD, so disabled again
Change 3034799 on 2016/06/30 by Rolando.Caloca
DR - vk - missed file
Change 3034905 on 2016/06/30 by Rolando.Caloca
DR - vk - Fix for render passes being reused with wrong dimensions
Change 3035503 on 2016/07/01 by Simon.Tovey
Async compute version of translucency lighting volume clear.
Change 3035577 on 2016/07/01 by Marc.Olano
Tiling noise. Adds tiling option for gradient, gradient texture, and value noise in the noise material node. Tiling is more expensive, but allows noise functions to be baked into a seamless repeating texture.
Change 3035587 on 2016/07/01 by Ben.Woodhouse
Fix for async SSAO bug (SSAO Async Compute results are used before the async job wait)
#jira UE-32709
Change 3035618 on 2016/07/01 by Olaf.Piesche
Asset fixes
Change 3035692 on 2016/07/01 by Rolando.Caloca
DR - vk - Deferred deletion queue
Change 3035808 on 2016/07/01 by Rolando.Caloca
DR - vk - Stat for deletion time, fixed some logging
Change 3036012 on 2016/07/01 by John.Billon
Alpha Coverage Preservation
-Textures have a Alpha Preservation Vec4 property which dictates about much of that channel to preserve down the mip chain during mip generation.
#Jira UE-31986
Change 3036041 on 2016/07/01 by Rolando.Caloca
DR - vk - Fix for 32bit
Change 3036433 on 2016/07/01 by Rolando.Caloca
DR - More vk logging
Change 3036935 on 2016/07/04 by Simon.Tovey
Removing Data Objects
Change 3036942 on 2016/07/04 by Ben.Woodhouse
Fix for decal rendering resource leak
The cause was that FD3D11BoundRenderTargets doesn't support setting RTs sparsely. So if one element is NULL, it won't release the ones after it.
The sparse RT layout happened as a result of a change back in October, which meant that GBuffers for decals could be set sparsely, dependent on whether the decal wrote to the normalbuffer
This change adds support for sparsely bound rendertargets in FD3D11BoundRenderTargets.
#jira UE-32602
Change 3037563 on 2016/07/05 by Chris.Bunner
HLOD self-shadowing in baked lighting fix.
Change 3037640 on 2016/07/05 by Marcus.Wassmer
Fix bug in USE_GPU_OVERWRITE_CHECKING
Change 3037927 on 2016/07/05 by Rolando.Caloca
DR - Fix touch pads not showing on Vulkan
#jira UE-32062
Change 3038085 on 2016/07/05 by Chris.Bunner
HLOD dynamic shadowing support.
#jira UE-22627
Change 3038209 on 2016/07/05 by Rolando.Caloca
DR - vk - Android compile fix
Change 3038644 on 2016/07/05 by Uriel.Doyon
Added LerpRange that allows to lerp between two rotators without taking the sortest path.
Change 3038820 on 2016/07/05 by Uriel.Doyon
Selecting streaming accuracy view modes will not automatically generate missing visualization data.
Change 3039332 on 2016/07/06 by John.Billon
-Made MaxGPUSkinBonesCvar a FAutoConsoleVariableRef and moved it to mesh utilitles from console manager to fix a thread initialization problem.
#Jira UE-31710
Change 3039454 on 2016/07/06 by Simon.Tovey
Moved all Niagara files from Engine and UnrealEd to remove dependancies and increase compile times.
Niagara is now 99.999% decoupled from engine and editor so development should be much streamlined.
Plus a few other edits to remove Curves/DataObjects that I missed in last CL.
Change 3039517 on 2016/07/06 by Gil.Gribb
Merging //UE4/Dev-Main@3039013 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3039587 on 2016/07/06 by Rolando.Caloca
DR - vk logging, submit counter
Change 3039603 on 2016/07/06 by Rolando.Caloca
DR - Allow more samplers on GL4
#jira UE-32628
#jira UE-32744
Change 3039661 on 2016/07/06 by Daniel.Wright
Fixed non-directional DFAO occlusion on specular 'r.AOSpecularOcclusionMode 0'
Skylight occlusion tint now applies to specular
Skylight occlusion tint on diffuse is now correctly affected by DiffuseColor
Change 3039960 on 2016/07/06 by Daniel.Wright
Forward renderer initial implementation
* Point and spot lights are culled to a frustum space grid, base pass loops over culled lights.
* Light culling uses a reverse linked list to avoid a per-cell limit, and the linked list is compacted to an array before the base pass.
* New cvars to control light culling: r.Forward.MaxCulledLightsPerCell, r.Forward.LightGridSizeZ, r.Forward.LightGridPixelSize
* A full Z Prepass is forced with forward shading. This allows deferred rendering before the base pass of shadow projection methods that only rely on depth.
* Dynamic shadows are packed based on the assigned stationary light ShadowMapChannel, since stationary lights are already restricted to 4 overlapping.
* GBuffer render targets are still allocated
* Fixed several issues in parallax corrected base pass reflections - not blending out box shape, discontinuity in reflection vector, not blending with stationary skylight properly
* Forward shading is now used for TLM_SurfacePerPixelLighting translucency in the deferred path
* Notable missing features: shadowing of translucency, support for various translucency lighting modes, multiple blended reflection captures
Change 3040050 on 2016/07/06 by Daniel.Wright
Added r.Shadow.WholeSceneShadowCacheMb, which defaults to 150, to limit how much memory can be spent caching whole scene shadowmaps
Change 3040160 on 2016/07/06 by Daniel.Wright
Fixed tile artifacts in indirect capsule shadows from doing the scaled sphere vs tile bounding sphere intersection in the wrong space
Change 3040163 on 2016/07/06 by Rolando.Caloca
DR - vk - More logging
Change 3040257 on 2016/07/06 by Daniel.Wright
Skylights aren't captured until their level is made visible- fixes the case where skylights capture too early
Change 3040316 on 2016/07/06 by Daniel.Wright
PerObject shadows from point / spot lights do the light source pull back based on subject box size, not subject radius, since the box is used to find a valid < 90 degree projection. Fix from licensee
Change 3040361 on 2016/07/06 by Daniel.Wright
Fixed TexCreate_UAV being used on translucency volume textures in SM4
Change 3040402 on 2016/07/06 by Rolando.Caloca
DR - vk - Make host mem accesses coherent
Change 3040486 on 2016/07/06 by Daniel.Wright
CIS fixes
Change 3041028 on 2016/07/07 by Gil.Gribb
Merging //UE4/Dev-Main@3040917 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3041235 on 2016/07/07 by Simon.Tovey
Compile fix for FName conflict on UProperty (hopefully).
Change 3041666 on 2016/07/07 by Daniel.Wright
Fixed TLM_SurfacePerPixelLighting in SM4, falls back to lighting volume
Change 3041731 on 2016/07/07 by Olaf.Piesche
Adding Niagara to dynamically loaded module list; should fix UE-32915
Change 3042181 on 2016/07/07 by Daniel.Wright
CIS fix
[CL 3045471 by Gil Gribb in Main branch]
2016-07-11 18:51:20 -04:00
{
return false ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( Materials . Num ( ) )
{
2020-10-22 19:19:16 -04:00
if ( ! CompileDebugViewModeShaders ( DVSM_OutputMaterialTextureScales , QualityLevel , FeatureLevel , Materials , & BuildTextureStreamingTask ) )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
{
return false ;
}
}
else
{
BuildTextureStreamingTask . EnterProgressFrame ( ) ;
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3045398)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3028958 on 2016/06/27 by Ben.Woodhouse
Fix for perf issue with GetSingleFinalDataConst
This was caused by the LPV integration/switch to blendables. Now we cache the flag for the directionalocclusion in the LPV class. This reduces calls to GetSingleFinalDataConst on the blendable data (potentially slow), and makes things a bit cleaner and consistent.
Tested in QAGame editor (with LPV enabled in ConsoleSettings.ini)
#jira UE-26179
Change 3029401 on 2016/06/27 by Rolando.Caloca
DR - More vk logging
Change 3029549 on 2016/06/27 by Uriel.Doyon
Refactored "r.OnlyStreamInTextures" into "r.Streaming.FullyLoadUsedTextures", making it fully load every used textures, as an alternative to disabling texture streaming.
New options "r.Streaming.UsePerTextureBias" that assign a bias between 0 and MipBias to each texture in order to fit in budget.
Fixed crash when disabling texture streaming.
Fixed issue when disabling texture streaming that would make current loaded texture low res.
New logic to prevent retrying to cancel a streaming request more than once.
Pending load request of one extra mip will not be cancelled anymore.
Changed UTexture2D from float to double. Also using FApp::GetCurrentTime() instead of FPlatformTime::Seconds().
#jira UE-32197
#jira UE-31102
Change 3029837 on 2016/06/27 by David.Hill
Fixed Shutter SM4 not working when using compute shader eye-adaptation
#jira UE-32443
The default eye adaptation value was missing.
Change 3030039 on 2016/06/27 by Uriel.Doyon
Fix for crash when landscape materials are used in the Texture Streaming Build.
#jira UE-32196
Change 3030081 on 2016/06/27 by Uriel.Doyon
Updated MaterialTexCoordScalesPixelShader to use PackedEyeIndex, preventing crash when building the map with stereo rendering enabled.
Change 3030401 on 2016/06/28 by Ben.Woodhouse
Perf Monitor: Fix for perf warning due to cvar FindConsoleVariable being called too frequently. Tested in QAGame editor (DX11)
#jira UE-31238
Change 3030607 on 2016/06/28 by Marc.Olano
Random Number generators: fixed bug in TEA, added integer and float Blum-Blum-Shub. BBS is way cheaper for similar quality, suggest it for future use.
Change 3030627 on 2016/06/28 by Ben.Woodhouse
Fix for warning. CVar naming scope clash (doesn't appear to happen in vs2015).
Change 3030809 on 2016/06/28 by Marc.Olano
Noise shader function rename & perf improvement.
Due to incorrect terminology in internet soruces, previous "Perlin" noise was not, in fact, Perlin noise. Now more accurately called "Value" noise. 6x perf improvement for value noise by changing random number function to BBS. Also updated instruction counts in UI tooltips.
Change 3030850 on 2016/06/28 by Marc.Olano
Rename & redirect noise material enums. At some point these got switched around and no longer accurately described the noise options the selected. Redirect, so all existing content will continue to work as-is. Updated UDN docs to match.
Change 3030981 on 2016/06/28 by Rolando.Caloca
DR - vk - More logging
Change 3031056 on 2016/06/28 by Marc.Olano
Introduce new pure-ALU gradient shader noise. Add noise samples to RenderTest map
Change 3031398 on 2016/06/28 by Benjamin.Hyder
updating TM-Shadermodels (correcting Mt Rushmore)
Change 3031441 on 2016/06/28 by Marc.Olano
Use only float version of BBS shader rand function for ES2
Change 3031463 on 2016/06/28 by John.Billon
Fixed F4 changing the viewmode in Fortnite editor. The detailed lighting viewmode (detaillighting) named in DefaultInput.ini differed from the one in BaseInput.ini(lit_detaillighting).
#Jira UE-32020
Change 3031512 on 2016/06/28 by Zabir.Hoque
Relax clear flags for DX12 RHIs.
Properly flush pending commands before residency is updated.
Change 3031517 on 2016/06/28 by Rolando.Caloca
DR - vk logging using r.Vulkan.DumpLayer
Change 3032359 on 2016/06/29 by Allan.Bentham
Fix mobile shadows crash.
Change 3032431 on 2016/06/29 by Gil.Gribb
Merging //UE4/Dev-Main@3032394 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3032757 on 2016/06/29 by Uriel.Doyon
Fixed global mip bias being applied twice following integration with main.
Change 3033121 on 2016/06/29 by Rolando.Caloca
DR - vk - Logging
Change 3033529 on 2016/06/29 by Daniel.Wright
Null world guard on UReflectionCaptureComponent::ReadbackFromGPU
Change 3033668 on 2016/06/29 by Uriel.Doyon
Grouped texture streaming settings to simplify logic.
New options "r.Streaming.UseAllMips" to ignores the different lod and cinematic bias
#jira UE-32118
Change 3034403 on 2016/06/30 by Rolando.Caloca
DR - Shorten dumped shader debug strings
Change 3034475 on 2016/06/30 by Rolando.Caloca
DR - Missing logging
Change 3034722 on 2016/06/30 by Uriel.Doyon
Improved StreamingAccuracy viewmodes with alpha test and translucent materials
#jira UE-32656
Change 3034797 on 2016/06/30 by Rolando.Caloca
DR - vk - 'fix' RHIClear but causes a CPU hang on AMD, so disabled again
Change 3034799 on 2016/06/30 by Rolando.Caloca
DR - vk - missed file
Change 3034905 on 2016/06/30 by Rolando.Caloca
DR - vk - Fix for render passes being reused with wrong dimensions
Change 3035503 on 2016/07/01 by Simon.Tovey
Async compute version of translucency lighting volume clear.
Change 3035577 on 2016/07/01 by Marc.Olano
Tiling noise. Adds tiling option for gradient, gradient texture, and value noise in the noise material node. Tiling is more expensive, but allows noise functions to be baked into a seamless repeating texture.
Change 3035587 on 2016/07/01 by Ben.Woodhouse
Fix for async SSAO bug (SSAO Async Compute results are used before the async job wait)
#jira UE-32709
Change 3035618 on 2016/07/01 by Olaf.Piesche
Asset fixes
Change 3035692 on 2016/07/01 by Rolando.Caloca
DR - vk - Deferred deletion queue
Change 3035808 on 2016/07/01 by Rolando.Caloca
DR - vk - Stat for deletion time, fixed some logging
Change 3036012 on 2016/07/01 by John.Billon
Alpha Coverage Preservation
-Textures have a Alpha Preservation Vec4 property which dictates about much of that channel to preserve down the mip chain during mip generation.
#Jira UE-31986
Change 3036041 on 2016/07/01 by Rolando.Caloca
DR - vk - Fix for 32bit
Change 3036433 on 2016/07/01 by Rolando.Caloca
DR - More vk logging
Change 3036935 on 2016/07/04 by Simon.Tovey
Removing Data Objects
Change 3036942 on 2016/07/04 by Ben.Woodhouse
Fix for decal rendering resource leak
The cause was that FD3D11BoundRenderTargets doesn't support setting RTs sparsely. So if one element is NULL, it won't release the ones after it.
The sparse RT layout happened as a result of a change back in October, which meant that GBuffers for decals could be set sparsely, dependent on whether the decal wrote to the normalbuffer
This change adds support for sparsely bound rendertargets in FD3D11BoundRenderTargets.
#jira UE-32602
Change 3037563 on 2016/07/05 by Chris.Bunner
HLOD self-shadowing in baked lighting fix.
Change 3037640 on 2016/07/05 by Marcus.Wassmer
Fix bug in USE_GPU_OVERWRITE_CHECKING
Change 3037927 on 2016/07/05 by Rolando.Caloca
DR - Fix touch pads not showing on Vulkan
#jira UE-32062
Change 3038085 on 2016/07/05 by Chris.Bunner
HLOD dynamic shadowing support.
#jira UE-22627
Change 3038209 on 2016/07/05 by Rolando.Caloca
DR - vk - Android compile fix
Change 3038644 on 2016/07/05 by Uriel.Doyon
Added LerpRange that allows to lerp between two rotators without taking the sortest path.
Change 3038820 on 2016/07/05 by Uriel.Doyon
Selecting streaming accuracy view modes will not automatically generate missing visualization data.
Change 3039332 on 2016/07/06 by John.Billon
-Made MaxGPUSkinBonesCvar a FAutoConsoleVariableRef and moved it to mesh utilitles from console manager to fix a thread initialization problem.
#Jira UE-31710
Change 3039454 on 2016/07/06 by Simon.Tovey
Moved all Niagara files from Engine and UnrealEd to remove dependancies and increase compile times.
Niagara is now 99.999% decoupled from engine and editor so development should be much streamlined.
Plus a few other edits to remove Curves/DataObjects that I missed in last CL.
Change 3039517 on 2016/07/06 by Gil.Gribb
Merging //UE4/Dev-Main@3039013 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3039587 on 2016/07/06 by Rolando.Caloca
DR - vk logging, submit counter
Change 3039603 on 2016/07/06 by Rolando.Caloca
DR - Allow more samplers on GL4
#jira UE-32628
#jira UE-32744
Change 3039661 on 2016/07/06 by Daniel.Wright
Fixed non-directional DFAO occlusion on specular 'r.AOSpecularOcclusionMode 0'
Skylight occlusion tint now applies to specular
Skylight occlusion tint on diffuse is now correctly affected by DiffuseColor
Change 3039960 on 2016/07/06 by Daniel.Wright
Forward renderer initial implementation
* Point and spot lights are culled to a frustum space grid, base pass loops over culled lights.
* Light culling uses a reverse linked list to avoid a per-cell limit, and the linked list is compacted to an array before the base pass.
* New cvars to control light culling: r.Forward.MaxCulledLightsPerCell, r.Forward.LightGridSizeZ, r.Forward.LightGridPixelSize
* A full Z Prepass is forced with forward shading. This allows deferred rendering before the base pass of shadow projection methods that only rely on depth.
* Dynamic shadows are packed based on the assigned stationary light ShadowMapChannel, since stationary lights are already restricted to 4 overlapping.
* GBuffer render targets are still allocated
* Fixed several issues in parallax corrected base pass reflections - not blending out box shape, discontinuity in reflection vector, not blending with stationary skylight properly
* Forward shading is now used for TLM_SurfacePerPixelLighting translucency in the deferred path
* Notable missing features: shadowing of translucency, support for various translucency lighting modes, multiple blended reflection captures
Change 3040050 on 2016/07/06 by Daniel.Wright
Added r.Shadow.WholeSceneShadowCacheMb, which defaults to 150, to limit how much memory can be spent caching whole scene shadowmaps
Change 3040160 on 2016/07/06 by Daniel.Wright
Fixed tile artifacts in indirect capsule shadows from doing the scaled sphere vs tile bounding sphere intersection in the wrong space
Change 3040163 on 2016/07/06 by Rolando.Caloca
DR - vk - More logging
Change 3040257 on 2016/07/06 by Daniel.Wright
Skylights aren't captured until their level is made visible- fixes the case where skylights capture too early
Change 3040316 on 2016/07/06 by Daniel.Wright
PerObject shadows from point / spot lights do the light source pull back based on subject box size, not subject radius, since the box is used to find a valid < 90 degree projection. Fix from licensee
Change 3040361 on 2016/07/06 by Daniel.Wright
Fixed TexCreate_UAV being used on translucency volume textures in SM4
Change 3040402 on 2016/07/06 by Rolando.Caloca
DR - vk - Make host mem accesses coherent
Change 3040486 on 2016/07/06 by Daniel.Wright
CIS fixes
Change 3041028 on 2016/07/07 by Gil.Gribb
Merging //UE4/Dev-Main@3040917 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3041235 on 2016/07/07 by Simon.Tovey
Compile fix for FName conflict on UProperty (hopefully).
Change 3041666 on 2016/07/07 by Daniel.Wright
Fixed TLM_SurfacePerPixelLighting in SM4, falls back to lighting volume
Change 3041731 on 2016/07/07 by Olaf.Piesche
Adding Niagara to dynamically loaded module list; should fix UE-32915
Change 3042181 on 2016/07/07 by Daniel.Wright
CIS fix
[CL 3045471 by Gil Gribb in Main branch]
2016-07-11 18:51:20 -04:00
// Exporting Material TexCoord Scales
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( Materials . Num ( ) )
2016-04-04 18:44:59 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
FScopedSlowTask SlowTask ( 1.f , ( LOCTEXT ( " TextureStreamingBuild_ExportingMaterialScales " , " Computing Per Texture Material Data " ) ) ) ;
const double StartTime = FPlatformTime : : Seconds ( ) ;
const float OneOverNumMaterials = 1.f / ( float ) Materials . Num ( ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
FMaterialUtilities : : FExportErrorManager ExportErrors ( FeatureLevel ) ;
2016-04-04 18:44:59 -04:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
for ( UMaterialInterface * MaterialInterface : Materials )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
check ( MaterialInterface ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
BuildTextureStreamingTask . EnterProgressFrame ( OneOverNumMaterials ) ;
SlowTask . EnterProgressFrame ( OneOverNumMaterials ) ;
if ( GWarn - > ReceivedUserCancel ( ) ) return false ;
bool bNeedsRebuild = SelectedViewMode = = VMI_Unknown | | ! MaterialInterface - > HasTextureStreamingData ( ) ;
if ( ! bNeedsRebuild & & SelectedViewMode = = VMI_MaterialTextureScaleAccuracy )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
// In that case only process material that have incomplete data
for ( FMaterialTextureInfo TextureData : MaterialInterface - > GetTextureStreamingData ( ) )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( TextureData . IsValid ( ) & & TextureData . TextureIndex = = INDEX_NONE )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
bNeedsRebuild = true ;
break ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
}
}
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if ( bNeedsRebuild )
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
{
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
FMaterialUtilities : : ExportMaterialUVDensities ( MaterialInterface , QualityLevel , FeatureLevel , ExportErrors ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
}
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
UE_LOG ( LogLevel , Display , TEXT ( " Export Material TexCoord Scales took %.3f seconds. " ) , FPlatformTime : : Seconds ( ) - StartTime ) ;
ExportErrors . OutputToLog ( ) ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3134663 on 2016/09/21 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes.
#jira UE-34347
Change 3142292 on 2016/09/27 by Rolando.Caloca
DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error
#jira UE-31438
Change 3143557 on 2016/09/28 by Rolando.Caloca
DR - Back out changelist 3142292
Change 3145354 on 2016/09/29 by Benjamin.Hyder
Updating Tm-ContactShadows
Change 3154832 on 2016/10/07 by Rolando.Caloca
DR - vk - Fix crash on framebuffers with missing textures
Change 3154838 on 2016/10/07 by Rolando.Caloca
DR - vk - Enable clip distance
Change 3154840 on 2016/10/07 by Rolando.Caloca
DR - Remove branch per codereview
Change 3155118 on 2016/10/07 by Rolando.Caloca
DR - vk - Compute pipeline fixes
Change 3155129 on 2016/10/07 by Rolando.Caloca
DR - Added draw events for reflection captures
Change 3155167 on 2016/10/07 by Rolando.Caloca
DR - Use shader clear for platforms that can't use viewport or scissor
Change 3155168 on 2016/10/07 by Rolando.Caloca
DR - vk - Added submit gpu
- Some fixes for Geometry and Compute
Change 3155595 on 2016/10/07 by Rolando.Caloca
DR - vk - Use new render pass system
Change 3155720 on 2016/10/07 by Rolando.Caloca
DR - vk - static analysis fix
Change 3155732 on 2016/10/07 by Rolando.Caloca
DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear
Change 3156787 on 2016/10/10 by Rolando.Caloca
DR - Fix mem leaks
Change 3156805 on 2016/10/10 by Rolando.Caloca
DR - Improve check msg per licensee
Change 3156815 on 2016/10/10 by Rolando.Caloca
DR - Fix infinite recursion
Change 3157041 on 2016/10/10 by Rolando.Caloca
DR - vk - Fix key access from multiple threads
Change 3158253 on 2016/10/11 by Rolando.Caloca
DR - Fix comment
#jira UE-37128
PR #2852
Change 3158606 on 2016/10/11 by Rolando.Caloca
DR - vk - Accessors
Change 3160418 on 2016/10/12 by Daniel.Wright
Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser
Change 3160644 on 2016/10/12 by Arne.Schober
DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms.
Change 3161219 on 2016/10/13 by Luke.Thatcher
[RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL.
Change 3161838 on 2016/10/13 by Daniel.Wright
Fixed level getting added to the dirty list twice when legacy lightmaps are present
Change 3161884 on 2016/10/13 by Arne.Schober
DR - Fix Mac and DCC build
Change 3162206 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593:
Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal.
Added CustomEyeTangent to material attributes.
Resolved some hard-coded attribute typing and other minor fixes.
Change 3162491 on 2016/10/13 by Chris.Bunner
Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397:
More fixed type-casting on material attributes.
Swapped compiler::forcecast booleans to flags (and fixed a regression).
Change 3163266 on 2016/10/14 by Daniel.Wright
Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly
Change 3163524 on 2016/10/14 by Mark.Satterthwaite
Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful.
Change 3163529 on 2016/10/14 by Mark.Satterthwaite
Move the Metal shader source code and compilation path into the newly enlarged shader optional data.
Change 3163553 on 2016/10/14 by Mark.Satterthwaite
Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system.
#jira FORT-31590
Change 3163562 on 2016/10/14 by Mark.Satterthwaite
Tidy up and extend the Metal debugging options:
- Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU.
- Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory.
- Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely.
- Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors.
- Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API.
- Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely.
- Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time.
- Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case.
Change 3163752 on 2016/10/14 by Mark.Satterthwaite
Add missing parenthesis to fix compile error on iOS.
Change 3164151 on 2016/10/16 by Benjamin.Hyder
Submitting TM-AutoLOD level to QAGame
#jira UE-29618
Change 3164190 on 2016/10/16 by Uriel.Doyon
Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture.
This data can be disabled through "r.Streaming.UseMaterialData"
Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes.
Simplified component interface for using the texture streaming build framework.
Removed intermediate texture streaming build data from the static mesh components.
Fixed shader compilation errors with the decals (from merge with main).
Change 3164636 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix validation spam
Change 3164679 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area.
Change 3164705 on 2016/10/17 by Daniel.Wright
When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds.
Change 3164834 on 2016/10/17 by Daniel.Wright
Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear)
Change 3164870 on 2016/10/17 by Arne.Schober
DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer.
Change 3164949 on 2016/10/17 by Rolando.Caloca
DR - vk - First version of pooled occlusion queries
Change 3165100 on 2016/10/17 by Rolando.Caloca
DR - vk - Added driver version for Nvidia. AMD doesn't have one yet.
Change 3165160 on 2016/10/17 by Rolando.Caloca
DR - vk - Fix for queries not ready
Change 3165230 on 2016/10/17 by Rolando.Caloca
DR - vk - More fixes for occlusion queries
Change 3165839 on 2016/10/18 by Rolando.Caloca
DR - hlslcc - Fix default parameters getting wrong values
Change 3166029 on 2016/10/18 by Rolando.Caloca
DR - Switch some clears to DrawClearQuad()
Change 3166066 on 2016/10/18 by Mark.Satterthwaite
Update ShaderVersion due to CL #3163524
Change 3166067 on 2016/10/18 by Mark.Satterthwaite
Update Mac hlslcc for RCO's 3165839.
Change 3166370 on 2016/10/18 by Brian.Karis
Improved hair AA
Change 3166389 on 2016/10/18 by Uriel.Doyon
Fixed lightmap having bigger resolutions than the engine can handle
#jira UE-34737
#review-3166193 @daniel.wright
Change 3166495 on 2016/10/18 by Rolando.Caloca
DR - vk - Fix occlusion queries
Change 3166516 on 2016/10/18 by Arne.Schober
DR - Fix shaderbuild issue
Change 3166650 on 2016/10/18 by Rolando.Caloca
DR - vk - Enable GRHISupportsFirstInstance
Change 3166799 on 2016/10/18 by Arne.Schober
DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO
Change 3167855 on 2016/10/19 by Rolando.Caloca
DR - vk - Implemented texture streaming
Change 3168365 on 2016/10/19 by Rolando.Caloca
DR - Fix static analysis
Change 3168405 on 2016/10/19 by Mark.Satterthwaite
Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky.
#jira UE-37489
Change 3169467 on 2016/10/20 by Arne.Schober
DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling.
Change 3169478 on 2016/10/20 by Arne.Schober
DR - UE-28039 - missing comment
Change 3169845 on 2016/10/20 by Arne.Schober
DR - UE-35937 - readd Merged out check
Change 3169859 on 2016/10/20 by Rolando.Caloca
DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database
[CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
else
{
BuildTextureStreamingTask . EnterProgressFrame ( ) ;
}
}
if ( ! BuildTextureStreamingComponentData ( InWorld , QualityLevel , FeatureLevel , SelectedViewMode = = VMI_Unknown , BuildTextureStreamingTask ) )
{
return false ;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3091903)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3072947 on 2016/08/01 by Uriel.Doyon
Texture GUIDs are now included in cooked builds, as they are required by the texture streamer to link build data to in game texture.
#review-3072934 @marcus.wassmer
#jira UE-34045
Change 3073301 on 2016/08/02 by Ben.Woodhouse
Fix for large spotlight culling precision issues, reported on UDN by Aaron Jacobs at Double Fine. For a full description, see the UDN post
https://udn.unrealengine.com/questions/305440/shadowed-light-flicker-caused-by-floating-point-pr.html
#jira UE-34052
Change 3073689 on 2016/08/02 by Ben.Woodhouse
Improved skin postprocess - support for full resolution, with diffuse/spec lighting combined into single RGBA (sharing chroma)
Full res lighting gives less temporal AA flickering, sharper diffuse and specular lighting in the surface (since this is now at full resolution), faster postprocessing if using a 64-bit rendertarget (on NV 980Ti).
Checkerboard rendering is controlled via the r.sss.checkerboard cvar. - 0 is off/full res, 1 is checkerboard, 2 is automatic based on scenecolor (non-checkerboard requires 64bit or more rendertarget w/separate alpha)
Tested/profiled on PC, PS4
Change 3074666 on 2016/08/02 by Daniel.Wright
Fixed stationary skylight brightness
Change 3074667 on 2016/08/02 by Daniel.Wright
Fixed r.ReflectionEnvironmentLightmapMixing
Change 3074687 on 2016/08/02 by Daniel.Wright
Disallowed DrawMaterialToRenderTarget and Begin/EndDrawCanvasToRenderTarget in construction scripts, since they don't work in game. Blutilities can be used to do blueprint rendering in the editor.
Change 3075241 on 2016/08/03 by Rolando.Caloca
DR - Fix linux compile issue & static analysis warning
Change 3075746 on 2016/08/03 by Daniel.Wright
Removed bOverride_AntiAliasingMethod and outdated ini references to PP AntiAliasingMethod
Change 3075783 on 2016/08/03 by Ryan.Brucks
#code.review Marcus.Wassmer
Added two material nodes that return Atmospheric Light Vector and Light Direction using:
View.AtmosphericFogSunColor
View.AtmosphericFogSunDirection
Nodes are called:
AtmosphericLightVector
AtmosphericLightColor
Also changed SceneRendering.cpp so that values will be grabbed from directional lights without needing an Atmospheric Fog actor in the scene.
Change 3075969 on 2016/08/03 by Uriel.Doyon
Material GUIDs are not updated anymore when parents or textures change.
Lighting now uses a hash built from the list of parents, textures and shader functions.
#review-3072980 @marcus.wassmer @daniel.wright
Change 3076116 on 2016/08/03 by Ryan.Brucks
#code.review marcus.wassmer
Fixed typo in the Caption of new Nodes "Atmospheric Light Vector" and "Atmospheric Light Color"
Change 3076456 on 2016/08/03 by Rolando.Caloca
DR - Fix geometry shader gl_Layer for SPIR-V
Change 3076730 on 2016/08/03 by Uriel.Doyon
Added user warning logic for the texture streaming build. Ran in MapCheck, BeginPlay and PreSave.
#review-3072984 @marcus.wassmer
Change 3077616 on 2016/08/04 by Daniel.Wright
Planar reflection show flags can now be edited
Change 3077621 on 2016/08/04 by Daniel.Wright
Changed default Planar Reflection DistanceFromPlaneFadeoutEnd from 600 to 100, which reduces artifacts and is a more intuitive initial setting
Change 3077792 on 2016/08/04 by Daniel.Wright
Fixed an unnecessary sky capture caused by the sky light component owned by the default ASkyLight
Change 3077799 on 2016/08/04 by Daniel.Wright
Skip RF_ArchetypeObject for reflection captures
Change 3077876 on 2016/08/04 by Marc.Olano
Noise material perf improvements
Change random number generator for Gradient-ALU (1.7x perf boost), improve speed of Voronoi noise quality level 3.
Removes integer BBS random number generators. Fewer instructions, but too slow to use (see 1.7x perf boost above)
Change 3077884 on 2016/08/04 by Daniel.Wright
Lighting channels can now be edited on components with static mobility, since dynamic lights can still affect them
Change 3078994 on 2016/08/05 by Simon.Tovey
Fix for UE-34241
Scene proxy ptr was being cached during a downcast.
Inside a call to CreateDynamicData, CheckMaterialUsage_Concurrent() was causing the scene proxy to be recreated an so the cached ptr was stale.
I've fixed the immediate issue but recreating the scene proxy here doesn't seem great. Maybe CheckMaterailUsage() should be rethought a bit.
Change 3079162 on 2016/08/05 by Ben.Woodhouse
Fix for jittering in Paper2D. Was caused by override being ignored due to a change in intiialization order for AA settings.
#jira UE-34091
Change 3079613 on 2016/08/05 by Daniel.Wright
New blueprint function ClearRenderTarget2D, which is the only way to set a render target alpha directly
New blueprint function CreateRenderTarget2D
Change 3079708 on 2016/08/05 by Uriel.Doyon
Fixed crash when building texture streaming on some levels.
Change 3079795 on 2016/08/05 by Uriel.Doyon
Fixed issue with instanced static meshes when building texture streaming.
Fixed typo with func "GetNumTextureStreamingPrimitives"
Change 3079806 on 2016/08/05 by Uriel.Doyon
Enabled PerTexture MipBias. The per texture mip bias now resets to 0 when the texture gets required at low resolution.
New scalability setting named "r.Streaming.LimitPoolSizeToVRAM" enabling the PoolSize to be limited the available VRAM
(according to GPoolSizeVRAMPercentage)
#review-3074662 @marcus.wassmer
Change 3082698 on 2016/08/09 by Daniel.Wright
Copy - CreateRenderTarget2D uses a world context object as owner, allows use in a construction script
Change 3082699 on 2016/08/09 by Daniel.Wright
Changed display name for 'Two Sided' shading model to 'Two Sided Foliage' to make it clear what it's intended to be used for
Change 3083909 on 2016/08/10 by Olaf.Piesche
#jira UE-34106
#jira UE-32784
#jira UE-31198
Reset vertex factories on mesh emitters if mesh has been reimported (if mesh package is dirty)
Change 3084645 on 2016/08/10 by Olaf.Piesche
#jira UE-30398
Fix offset added to particle collision locations.
Change 3084709 on 2016/08/10 by Daniel.Wright
Copy - Scene capture alpha is now inverted to match DrawMaterialToRenderTarget, and to allow compositing with existing render target contents
Added CompositeMode to SceneCapture2D, which can be used to addively accumulate or composite instead of the default overwrite behavior
Added bCaptureOnMovement to SceneCapture, which can be disabled so the only source of scene capturing is a manual capture by calling CaptureScene()
Change 3084783 on 2016/08/10 by Rolando.Caloca
DR - Use the first targeted rhi shader platform as the initial RHI to load on Windows
#jira UE-34510
Change 3084958 on 2016/08/10 by Daniel.Wright
Copy - Reverted cl 2938543 "Lightmass now respects owner bHidden, and bCastHiddenShadow" because it did not have backwards compatibility so breaks content using hidden light cards
Change 3086023 on 2016/08/11 by Marcus.Wassmer
Merging //UE4/Dev-Main@3085468 to Dev-Rendering (//UE4/Dev-Rendering)
#test none
Change 3086778 on 2016/08/11 by Ben.Woodhouse
Workaround for fortnite character rendering issue. Enable checkerboard rendering by default until we can fix properly
#jira UE-34561
Change 3087404 on 2016/08/12 by Rolando.Caloca
DR - Upgrade glslang to 1.0.21.1
- Added some more debug output
Change 3087524 on 2016/08/12 by Rolando.Caloca
DR - vk - Fixed StencilRef, fixed size of RHIReadSurfaceFloatData (but still returns dummy data)
Change 3087663 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix for SRGB; support for mip texture views
Change 3087735 on 2016/08/12 by Daniel.Wright
TextureRenderTarget2D's can now be up to 8192^2. Anything over 2048 pops up an 'are you sure' dialog.
Change 3087750 on 2016/08/12 by Rolando.Caloca
DR - vk - Minor renaming in prep for merge
Change 3087813 on 2016/08/12 by Rolando.Caloca
DR - vk - More minor cleanup
Change 3087819 on 2016/08/12 by Chris.Bunner
Check material function input types directly, no need to traverse connected graph.
#jira UE-32134
Change 3087901 on 2016/08/12 by Rolando.Caloca
DR - vk - Fix RT view to use 1 mip
Fix depth buffer component swizzle
Change 3088193 on 2016/08/12 by Daniel.Wright
DFAO and RTDF shadows are enabled in High and Epic scalability settings by default
Change 3088988 on 2016/08/15 by Rolando.Caloca
DR - Add Accessors
Change 3089104 on 2016/08/15 by Olaf.Piesche
#jira UE-34241
Sceneproxy can be nullptr in FDynamicMeshEmitterData::Init if the proxy is being recreated
Change 3089208 on 2016/08/15 by Daniel.Wright
Downsampled separate translucency uses a separate view uniform buffer with correct buffer sizes
* Fixes WorldPosition in downsampled translucency
* View uniform buffer parameters are now cached on the view, to allow recreating the uniform buffer without having to rebuild the entire struct. Currently used by global distance field, downsampled separate translucency.
* Fixed the downsampled translucency depth buffer being full res used together with a smaller color target, now they are both the downsampled res
Change 3089209 on 2016/08/15 by Daniel.Wright
Fixed atmospheric fog on translucency
Change 3089457 on 2016/08/15 by Daniel.Wright
Fixed lighting build failure from UMaterialInstanceDynamic assigned to a mesh that's being exported to Lightmass. The Swarm cache entry is created using the parent's guid, causing multiple MID's with the same parent to acquire a file handle multiple times which fails after the first.
Change 3089549 on 2016/08/15 by Daniel.Wright
UMaterialInterface initializes LightingGuid to something valid - causes UMaterialInstanceDynamic to have a valid LightingGuid so they can be used in lighting builds
Change 3089703 on 2016/08/15 by Daniel.Wright
Custom expression fixup for View.RenderTargetSize
Change 3090546 on 2016/08/16 by Daniel.Wright
Hopeful fix for recycled snapshot view crash
Change 3091202 on 2016/08/16 by Daniel.Wright
Manually clear FViewInfo::CachedViewUniformShaderParameters on creating a snapshot, since memcpy is used to create the snapshot view
[CL 3091931 by Gil Gribb in Main branch]
2016-08-17 11:38:13 -04:00
}
2016-04-04 18:44:59 -04:00
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3028916)
#lockdown nick.penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3006483 on 2016/06/08 by Simon.Tovey
Fix for UE-31653
Instance params from the Spawn, Required and TypeData modules were not being autopopulated.
Change 3006514 on 2016/06/08 by Zabir.Hoque
MIGRATING FIX @ Request
Off by 1 error on reflection roughness calculation affecting 4.12. When I hoisted the max mip index i did a -1 on both sides(c++ & hlsl). This is the simplest hotfix. In 4.13 I'll remove the shader instruction and only do the "-1" in c++ this 1 less shader instruction.
#CodeReview: Marcus.Wassmer, Daniel.Wright
Change 3006605 on 2016/06/08 by Rolando.Caloca
DR - vk - Remove a bunch of unused code, clean up some todos
Change 3006969 on 2016/06/08 by HaarmPieter.Duiker
Add #ifdefs around inverse tonemapping to avoid performance hit in normal use
Change 3007240 on 2016/06/09 by Chris.Bunner
Made a pass at fixing global shader compile warnings and errors.
Change 3007242 on 2016/06/09 by Chris.Bunner
Don't force unlit mode when re-loading a map.
#jira UE-31247
Change 3007243 on 2016/06/09 by Chris.Bunner
Cache InvalidLightmapSettings material for instanced meshes.
#jira UE-31182
Change 3007258 on 2016/06/09 by Chris.Bunner
Fixed refractive depth bias material parameter.
Change 3007466 on 2016/06/09 by Rolando.Caloca
DR - Use vulkan debug marker extension directly from header
Change 3007504 on 2016/06/09 by Martin.Mittring
added refresh button to ImageVerifier
Change 3007528 on 2016/06/09 by Martin.Mittring
ALU optimization to SSR, minor perf difference on NVTitan, needs to to be profiled on lower end
make render more deterministic
Change 3007551 on 2016/06/09 by Chris.Bunner
Reverted constant type change in previous commit.
Change 3007559 on 2016/06/09 by Martin.Mittring
updated ImageValidator
Change 3007584 on 2016/06/09 by Rolando.Caloca
DR - Fix case when not running under RD
Change 3007668 on 2016/06/09 by Rolando.Caloca
DR - vk - Split layers/extensions by required/optional
Change 3007820 on 2016/06/09 by Rolando.Caloca
DR - Android compile fix
Change 3007926 on 2016/06/09 by Martin.Mittring
fixed UI scaling in ImageVerifyer
Change 3007931 on 2016/06/09 by John.Billon
-Fixed cutouts not working for certain sized texture/subUV size combinations.
-Also fixed issue with subUV module not being postloaded consistently on startup.
#Jira UE-31583
Change 3008023 on 2016/06/09 by Martin.Mittring
refactor noise code in shaders
Change 3008127 on 2016/06/09 by Zabir.Hoque
Merging back hot fixes:
1. Fix DX12 crashing due to oclusion queries waiting on incorrect sync point. Integrating change from MS.
2. Immediate context should flush directly and not attempt to flush the immediate context, ie. itself.
Change 3008129 on 2016/06/09 by Daniel.Wright
Disabled r.ProfileGPU.PrintAssetSummary by default due to spam
Change 3008169 on 2016/06/09 by Rolando.Caloca
DR - Fix mobile rendering not freeing resource when using RHI thread
Change 3008429 on 2016/06/09 by Uriel.Doyon
Enabled texture streaming new metrics.
Added progress bar while texture streaming is being built.
Added debug shader validation to prevent crashes when there are uniform expression set mismatches.
Added texture streaming build to "Build All"
Change 3008436 on 2016/06/09 by Uriel.Doyon
Fixed shipping build
Change 3008833 on 2016/06/10 by Rolando.Caloca
DR - Allow RenderTargets to be easily shared via GPU to other DX or OpenGL applications
Submitted by Allar
PR #1864
#jira UE-24545
Change 3008842 on 2016/06/10 by Rolando.Caloca
DR - Remove vertex densities view mode
Change 3008857 on 2016/06/10 by John.Billon
Added a PostLoad to ParticleModuleSubUV to call postload on the SubUV animation to ensure that the animation is loaded in time for caching.
Change 3008870 on 2016/06/10 by Rolando.Caloca
DR - Rebuild hlslcc libs (missing from last merge)
Change 3008925 on 2016/06/10 by John.Billon
Fixed r.ScreenPercentage.Editor
#Jira UE-31549
Change 3009028 on 2016/06/10 by Daniel.Wright
Shadow depth refactor
* Shadow setup and render target allocation now happens in InitViews, and shadow depth rendering happens at one spot in the frame
* This provides control over where shadow depths are rendered for things like async compute, and allows easy atlasing of shadowmaps for forward shading
* The 33Mb of shadow depth buffers in FSceneRenderTargets has been removed, and shadow depth buffers are now allocated as needed
* A large amount of duplicated code to handle each shadow type has been combined
* Cleaner parallel rendering: no more view hacking for the shadow depth pass, no more shadow depths in the middle of translucency
* 'vis ShadowDepthAtlas' or 'vis WholeSceneShadowMap' must now be used to visualize the shadow depth textures
Change 3009032 on 2016/06/10 by Daniel.Wright
Fixed crash with simple forward shading in the material editor
Change 3009178 on 2016/06/10 by Rolando.Caloca
DR - Add support for multi callbacks on HlslParser, added a write to string callback
Change 3009268 on 2016/06/10 by Daniel.Wright
Warning fixes
Change 3009416 on 2016/06/10 by Martin.Mittring
moved decal rendering code in common spot for upcoming MeshDecal rendering
Change 3009433 on 2016/06/10 by John.Billon
Adding ensures for translucency lighting volume render target acesses.
#Jira UE-31578
Change 3009449 on 2016/06/10 by Daniel.Wright
Fixed whole scene point light shadow depths getting rendered redundantly
Change 3009675 on 2016/06/10 by Martin.Mittring
fixed Clang compiling
Change 3009815 on 2016/06/10 by Martin.Mittring
renamed IsUsedWithDeferredDecal to IsDeferredDecal
to be more correct
Change 3009946 on 2016/06/10 by Martin.Mittring
minor optimization
Change 3010270 on 2016/06/11 by HaarmPieter.Duiker
Update gamut transformations used when dumping EXRs to account for bug UE-29935
Change 3011423 on 2016/06/13 by Martin.Mittring
fixed default of bOutputsVelocityInBasePass
#code_review:Rolando.Caloca
#test:PC
Change 3011448 on 2016/06/13 by Martin.Mittring
minor engine code cleanup
#code_review:Olaf.Piesche
#test:PC
Change 3011991 on 2016/06/13 by Daniel.Wright
Fixed downsampled translucency crash in VR
Change 3011993 on 2016/06/13 by Daniel.Wright
Stationary Mobility for primitive components is allowed again, with the meaning 'moves rarely'
Mobility tooltips now reflect whether a primitive component or light component is being inspected
Change 3012096 on 2016/06/13 by Daniel.Wright
Missing file from cl 3011993
Change 3012546 on 2016/06/14 by John.Billon
Added r.ContactShadows.Enable CVar to allow contact shadows to be globally disabled/enabled
#Jira OR-23282
Change 3012706 on 2016/06/14 by John.Billon
Renamed r.ContactShadows.Enable to r.ContactShadows
Change 3012992 on 2016/06/14 by Rolando.Caloca
DR - vk - Fixed backbuffer/swapchain order with RHI thread enabled
- Added support for CustomPresent
Change 3013030 on 2016/06/14 by Rolando.Caloca
DR - vk - Fix dev issue
Change 3013423 on 2016/06/14 by Martin.Mittring
removed code redundancy for easier upcoming changes
#test:PC
Change 3013451 on 2016/06/14 by Martin.Mittring
removed no longer needed debug cvar
#test:PC
Change 3013643 on 2016/06/14 by Zabir.Hoque
Fix API only being inlined in the cpp and not avaialble in the .h
Change 3013696 on 2016/06/14 by Olaf.Piesche
Adding missing quality level spawn rate scaling on GPU emitters
Change 3013736 on 2016/06/14 by Daniel.Wright
Cached shadowmaps for whole scene point and spot light shadows
* Controlled by 'r.Shadow.CacheWholeSceneShadows', defaults to enabled (7ms -> 1.5ms of shadow depths on Titan for ~20 lights)
* Primitives with Static or Stationary mobility have their depths cached, as long as the light is not moving
* Primitives with Movable mobility or using World Position Offset in their materials will not have their depths cached
* Cached shadowmaps are copied each frame and then movable primitive depths composited
* Fast paths exist for when there were no static primitives (skip cached shadowmap) or movable primitives (project directly from cached shadowmap)
* 'r.Shadow.CacheWPOPrimitives' controls whether materials using WPO can be cached (default is off for correctness)
* 'r.Shadow.CachedShadowsCastFromMovablePrimitives' can be used to force off all support for movable primitives, skipping the shadowmap copies (1.5ms -> 0ms of shadow depths for ~20 lights)
Change 3014103 on 2016/06/15 by Daniel.Wright
Compile fix
Change 3014507 on 2016/06/15 by Simon.Tovey
Resurrected Niagara playground and moved to Samples/NotForLicencees
Change 3014931 on 2016/06/15 by Martin.Mittring
moved r.RenderInternals code into renderer to be able to access more low level data
#test:PC, paragon
Change 3014933 on 2016/06/15 by Martin.Mittring
nicer text
Change 3014956 on 2016/06/15 by Daniel.Wright
Fixed HLOD and mesh LODs getting hit by Lightmass ray traces that didn't originate from a mesh
Volume lighting samples and precomputed visibility cells are now only placed on LOD0 (of both mesh LODs and HLOD)
Change 3014985 on 2016/06/15 by Uriel.Doyon
Enabled Texture Build shaders on Mac
Exposed IStreamingManager::AddViewSlaveLocation in ENGINE_API
Fixed issue FStreamingManagerTexture::ConditionalUpdateStaticData which would to update some data in shipping.
Fixed r.Streaming.MipBias not affecting maximum allowed resolution, showing warnings of texture streaming overbudgets
#jira UE-30566
#jira UE-31098
Change 3014995 on 2016/06/15 by Rolando.Caloca
DR - vk - Removed RHI thread wait on acquire image
- Move Descriptor pool into context
Change 3015002 on 2016/06/15 by Rolando.Caloca
DR - Add (disabled) additional cvar for r.DumpShaderDebugWorkerCommandLine
Change 3015041 on 2016/06/15 by Martin.Mittring
fixed ImageValidator crashing when using files that exist only in ref or test folder
Change 3015309 on 2016/06/15 by Rolando.Caloca
DR - vk - Enable fence re-use on SDKs >= 1.0.16.0
Change 3015356 on 2016/06/15 by Rolando.Caloca
DR - vk - Prep for staging buffer refactor
Change 3015430 on 2016/06/15 by Martin.Mittring
minor optimization for subsurfacescatteringprofile
Change 3016097 on 2016/06/16 by Simon.Tovey
Enabling Niagara by default in the Niagara playground
Change 3016098 on 2016/06/16 by Simon.Tovey
Some misc fixup to get niagara working again
Change 3016183 on 2016/06/16 by Rolando.Caloca
DR - vk - Recreate buffer view for volatile buffers
Change 3016225 on 2016/06/16 by Marcus.Wassmer
Duplicate reflection fixes from 4.12 hotfixes.
Change 3016289 on 2016/06/16 by Chris.Bunner
Always gather MP_Normal definitions as they can be shared by other material properties.
#jira UE-31792
Change 3016294 on 2016/06/16 by Daniel.Wright
Fix for ensure accessing CVarCacheWPOPrimitives in game
Change 3016305 on 2016/06/16 by Daniel.Wright
Raised r.Shadow.CSM.MaxCascades to 10 on Epic scalability level, which it should have always been
Change 3016330 on 2016/06/16 by Daniel.Wright
Cached shadowmaps are tossed after 5s of not being used for rendering - helps in the case where you fly through a bunch of lights and never look back
Skipping shadow depth cubemap clear if there will be a cached shadowmap copy later - saves .4ms on PS4 for a close up point light
Stats for shadowmap memory used under 'stat shadowrendering'
Change 3016506 on 2016/06/16 by Daniel.Wright
Fixed crash building map in SunTemple due to null access
Change 3016703 on 2016/06/16 by Uriel.Doyon
Fixed warning due to floating point imprecision when building texture streaming
Change 3016718 on 2016/06/16 by Daniel.Wright
Volume lighting samples use adaptive sampling final gather
* Increases their build time by 2x but improves quality in difficult cases (small bright sources of bounce lighting)
Change 3016871 on 2016/06/16 by Max.Chen
Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation.
Copy from Dev-Sequencer
#jira UE-32093
Change 3017189 on 2016/06/16 by Zabir.Hoque
Fix GBuffer format selection type-o.
#CodeReview: Marcus.Wassmer
Change 3017241 on 2016/06/16 by Martin.Mittring
optimized and cleaned up rendering in transluceny, distortion, custom mesh drawing
#code_review:Daniel.Wright, Marcus.Wassmer, Nick.Penwarden
Change 3017856 on 2016/06/17 by Rolando.Caloca
DR - Missing GL enum
Change 3017910 on 2016/06/17 by Ben.Woodhouse
- Added a Video Buffer to ensure smooth submission of frames from CEF. Without this, we can get multiple texture updates per engine frame, which causes stuttering at high framerates
- Disable hardware acceleration on Windows, since this causes severe performance issues with video rendering
Please note: To actually see 60fps video, you need to ensure the browser frame rate passed into FWebBrowserSingleton::CreateBrowserWindow is set to 60 (default is 24)
#RB:Keli.Hloedversson,Martin.Mittring
Change 3018126 on 2016/06/17 by Ben.Woodhouse
Fix build warning on Mac
#RB:David.Hill
Change 3018167 on 2016/06/17 by Chris.Bunner
Handle case when float4 is passed to TransformPosition material node.
#jira UE-24980
Change 3018246 on 2016/06/17 by Benjamin.Hyder
Submitting Preliminary ShadowRefactor TestMap
Change 3018330 on 2016/06/17 by Benjamin.Hyder
labeled ShadowRefactor map
Change 3018377 on 2016/06/17 by Chris.Bunner
Removed additional node creation when initializing a RotateAboutAxis node.
#jira UE-8034
Change 3018433 on 2016/06/17 by Rolando.Caloca
DR - Fix some clang warnings on Vulkan
Change 3018664 on 2016/06/17 by Martin.Mittring
unified some code for easier maintainance, fixed missing multiply from former change (CL 2933812)
#test:PC
#code_review:Marcus.Wassmer,Brian.Karis
Change 3019023 on 2016/06/19 by Benjamin.Hyder
Re-Labeled ShadowRefactor map
Change 3019024 on 2016/06/19 by Benjamin.Hyder
Correcting Translucent Volume (Non-Directional) settings
Change 3019026 on 2016/06/19 by Benjamin.Hyder
Correcting Lighting ShadowRefactor map
Change 3019414 on 2016/06/20 by Allan.Bentham
Refactor mobile shadows
Change 3019494 on 2016/06/20 by Gil.Gribb
Merging //UE4/Dev-Main@3018959 to Dev-Rendering (//UE4/Dev-Rendering)
Change 3019504 on 2016/06/20 by John.Billon
-Created a blueprint node (ExportRenderTarget and ExportTexture2D) to export render targets/textures as HDR images to disk.
-Moved HDR export code(FHDRExportHelper and CubemapUnwrapUtils) to runtime from editor to allow access from blueprints.
-Created a small common interface for blueprints and the editor itself to use for exporting.
#Jira UE-31429
Change 3019561 on 2016/06/20 by Gil.Gribb
UE4 - Worked around afulness of windows scheduler. This would occasionally cause hitches on quad core machines with additional load in the tick task manager.
Change 3019616 on 2016/06/20 by Rolando.Caloca
DR - Replicate change in DevRendering to fix splotches on characters with morph targets
Change: 3019599
O - Fix flickering on heroes with morph targets
Change 3019627 on 2016/06/20 by Rolando.Caloca
DR - Doh! Compile fix
Change 3019674 on 2016/06/20 by Simon.Tovey
Ripped out the quick hacky VM debugger I wrote a while back.
Over complicated the VM and didn't do enough work to justify it.
Will revisit debugging and profiling of VM scripts in future.
Change 3019691 on 2016/06/20 by Ben.Woodhouse
Add a per-object shadow setting for directional lights (r.Shadow.PerObjectDirectionalDepthBias), which is independent of the CSM setting. Often a smaller bias is desirable on per-object shadows, where detailed self-shadowing is needed.
This change also makes the CSM naming consistent with what the setting actually does (the old setting was named r.shadow.csm, although it affects per-object shadows as well as CSMs).
#RB:Martin.Mittring, Daniel.Wright
Change 3019741 on 2016/06/20 by John.Billon
Fixed compile error on mac.
Change 3019984 on 2016/06/20 by Martin.Mittring
minor optimization
Change 3020172 on 2016/06/20 by Zachary.Wilson
Fixing mesh distance fields for engine content cube and cylinder by setting distance field resolution to 2. for UE-26783 #rb: none
Change 3020195 on 2016/06/20 by Zachary.Wilson
Fixing engine coontent sphere's distance fields for UE-26783, distance fields resolution set to 2. #rb: none
Change 3020196 on 2016/06/20 by Rolando.Caloca
DR - Appease static analysis
Change 3020231 on 2016/06/20 by Zachary.Wilson
Making basic shapes consistent distance field resolution scale. #rb: none
Change 3020468 on 2016/06/20 by David.Hill
CameraWS UE-29146
Change 3020502 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee Camera for RenderOutputValidation
Change 3020508 on 2016/06/20 by Benjamin.Hyder
Adding AutomationMatinee for RenderOutputValidation
Change 3020514 on 2016/06/20 by Benjamin.Hyder
Setting Autoplay for AutomationMatinee (sequence)
Change 3020561 on 2016/06/20 by Daniel.Wright
Removed outdated comment on uniform expression assert
Change 3021268 on 2016/06/21 by Daniel.Wright
Scaled sphere intersection for indirect capsule shadows
* Fixes the discontinuity when capsule axis points close to the light direction
* GPU cost is effectively the same (more expensive to compute, but tighter culling)
Change 3021325 on 2016/06/21 by Daniel.Wright
Split ShadowRendering.cpp into ShadowDepthRendering.cpp
Change 3021355 on 2016/06/21 by Daniel.Wright
Fixed RTDF shadows (broken by shadowmap caching)
Change 3021444 on 2016/06/21 by Daniel.Wright
Fixed crash due to Depth drawing policy not using the default material shader map properly
Change 3021543 on 2016/06/21 by Daniel.Wright
Fixed drawing to a Canvas after EndDrawCanvasToRenderTarget causing a crash
Fixed DrawMaterialToRenderTarget breaking the Canvas object that BeginDrawCanvasToRenderTarget returns
Change 3021749 on 2016/06/21 by Daniel.Wright
Moved RenderBasePass and dependencies into BasePassRendering.cpp
Moved RenderPrePass and dependencies into DepthRendering.cpp
Change 3021766 on 2016/06/21 by Benjamin.Hyder
Adding 150dynamiclights level to Dev-Folder
Change 3021971 on 2016/06/21 by Daniel.Wright
Removed the CPU-culled light grid which is used to implement TLM_SurfacePerPixelLighting, in preparation for a GPU-culled light grid implementation
* TLM_SurfacePerPixelLighting now behaves like TLM_Surface
Change 3022760 on 2016/06/22 by Chris.Bunner
Merge fixup.
Change 3022911 on 2016/06/22 by Rolando.Caloca
DR - Added r.D3DDumpD3DAsmFile to enable dumping the fxc disassembly when dumping shaders
Change 3023037 on 2016/06/22 by Rolando.Caloca
DR - Fix for the case of global destructors calling FlushRenderingCommands() after the RHI has been destroyed
Change 3023139 on 2016/06/22 by Daniel.Wright
Added on screen message for when VisualizeMeshDistanceFields is requested but engine scalability settings have DFAO disabled
Change 3023231 on 2016/06/22 by Daniel.Wright
Only allowing opaque per-object shadows or CSM in the mobile renderer
Change 3023415 on 2016/06/22 by Daniel.Wright
Fix crash in dx12 trying to clear stencil when there is no stencil in the depth target
Change 3024888 on 2016/06/23 by Daniel.Wright
Fixed preshadows being rendered redundantly with multiple lights
Change 3025119 on 2016/06/23 by Martin.Mittring
added MeshDecal content to RenderTest
Change 3025122 on 2016/06/23 by Martin.Mittring
enabled DBuffer for RenderTest
Change 3025153 on 2016/06/23 by Marc.Olano
Fix Spherical Particle Opacity. Particles using this stopped rendering sometime after 4.10.
Needed to use world space without shader offsets, not absolute world space.
Change 3025180 on 2016/06/23 by Marc.Olano
Use translated world space for particle centers.
Better fix for Spherical Particle Opacity problems, but with fingers in more pies. Includes rename of particle center vertex factory variables.
Change 3025265 on 2016/06/23 by David.Hill
Bilbords translucent during PIE - lighting model was incorrectly set in gbuffer
#jira UE-26165
Change 3025269 on 2016/06/23 by Ryan.Brucks
Adding new Testmap for Pixel Depth Offset velocities with Temporal AA
Change 3025345 on 2016/06/23 by Benjamin.Hyder
Submitting MeshDecal Content
Change 3025444 on 2016/06/23 by Benjamin.Hyder
updating content for MeshDecal
Change 3025491 on 2016/06/23 by Benjamin.Hyder
Updating DecalMesh Textures
Change 3025802 on 2016/06/23 by Martin.Mittring
added to readme
Change 3026475 on 2016/06/24 by Rolando.Caloca
DR - Show current state of r.RHIThread.Enable when not using param
Change 3026479 on 2016/06/24 by Rolando.Caloca
DR - Upgrade glslang to 1.0.17.0
Change 3026480 on 2016/06/24 by Rolando.Caloca
DR - Vulkan headers to 1.0.17.0
Change 3026481 on 2016/06/24 by Rolando.Caloca
DR - Vulkan wrapper for extra logging
Change 3026491 on 2016/06/24 by Rolando.Caloca
DR - Missed file
Change 3026574 on 2016/06/24 by Rolando.Caloca
DR - vk - Enabled fence reuse on 1.0.17.0
- Added more logging info
Change 3026656 on 2016/06/24 by Frank.Fella
Niagara - Prevent sequencer uobjects from being garbage collected.
Change 3026657 on 2016/06/24 by Benjamin.Hyder
Updating Rendertestmap to latest
Change 3026723 on 2016/06/24 by Rolando.Caloca
DR - Fix for ES3.1 RHIs
Change 3026784 on 2016/06/24 by Martin.Mittring
New feature: Mesh Decals / Material layers (Chris.Bunner is the goto person on MeshDecals from now on)
Change 3026866 on 2016/06/24 by Olaf.Piesche
#jira OR-18363
#jira UE-27780
fix distortion in particle macro uvs
[CL 3028922 by Gil Gribb in Main branch]
2016-06-27 13:42:20 -04:00
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
2016-04-04 18:44:59 -04:00
return true ;
}
2018-09-25 10:11:35 -04:00
static bool AreCloseToOnePercent ( float A , float B )
{
return FMath : : Abs ( A - B ) / FMath : : Max3 ( FMath : : Abs ( A ) , FMath : : Abs ( B ) , 1.f ) < 0.01f ;
}
bool FEditorBuildUtils : : EditorBuildMaterialTextureStreamingData ( UPackage * Package )
{
const EMaterialQualityLevel : : Type QualityLevel = EMaterialQualityLevel : : High ;
const ERHIFeatureLevel : : Type FeatureLevel = GMaxRHIFeatureLevel ;
TSet < UMaterialInterface * > Materials ;
if ( Package )
{
//if a package is explicitly provided, we're only interested in materials under that package.
//there is no need to perform a prior GC on this path, as we shouldn't be about to unhash any objects in the provided package.
TArray < UObject * > ObjectsInPackage ;
GetObjectsWithOuter ( Package , ObjectsInPackage ) ;
for ( UObject * Obj : ObjectsInPackage )
{
UMaterialInterface * Material = Cast < UMaterialInterface > ( Obj ) ;
if ( Material & & Material - > HasAnyFlags ( RF_Public ) & & Material - > UseAnyStreamingTexture ( ) )
{
FMaterialResource * Resource = Material - > GetMaterialResource ( FeatureLevel ) ;
if ( Resource )
{
2019-07-10 13:47:03 -04:00
Resource - > CacheShaders ( GMaxRHIShaderPlatform ) ;
2018-09-25 10:11:35 -04:00
Materials . Add ( Material ) ;
}
}
}
}
else
{
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
for ( TObjectIterator < UMaterialInterface > MaterialIt ; MaterialIt ; + + MaterialIt )
{
UMaterialInterface * Material = * MaterialIt ;
if ( Material & & Material - > GetOutermost ( ) ! = GetTransientPackage ( ) & & Material - > HasAnyFlags ( RF_Public ) & & Material - > UseAnyStreamingTexture ( ) )
{
Materials . Add ( Material ) ;
}
}
}
if ( Materials . Num ( ) = = 0 )
{ //early out if there's nothing to work on.
return false ;
}
FScopedSlowTask SlowTask ( 3.f ) ; // { Sync Pending Shader, Wait for Compilation, Export }
SlowTask . MakeDialog ( true ) ;
const float OneOverNumMaterials = 1.f / FMath : : Max ( 1.f , ( float ) Materials . Num ( ) ) ;
bool bAnyPackagesDirtied = false ;
2020-10-22 19:19:16 -04:00
if ( CompileDebugViewModeShaders ( DVSM_OutputMaterialTextureScales , QualityLevel , FeatureLevel , Materials , & SlowTask ) )
2018-09-25 10:11:35 -04:00
{
FMaterialUtilities : : FExportErrorManager ExportErrors ( FeatureLevel ) ;
for ( UMaterialInterface * MaterialInterface : Materials )
{
SlowTask . EnterProgressFrame ( OneOverNumMaterials ) ;
if ( MaterialInterface )
{
//for the explicit package path, we also want to use the quality level from the material resource to ensure we get a hit on the shadermap.
FMaterialResource * Resource = Package ? MaterialInterface - > GetMaterialResource ( FeatureLevel ) : nullptr ;
TArray < FMaterialTextureInfo > PreviousData = MaterialInterface - > GetTextureStreamingData ( ) ;
if ( FMaterialUtilities : : ExportMaterialUVDensities ( MaterialInterface , Resource ? Resource - > GetQualityLevel ( ) : QualityLevel , FeatureLevel , ExportErrors ) )
{
TArray < FMaterialTextureInfo > NewData = MaterialInterface - > GetTextureStreamingData ( ) ;
bool bNeedsResave = PreviousData . Num ( ) ! = NewData . Num ( ) ;
if ( ! bNeedsResave )
{
for ( int32 EntryIndex = 0 ; EntryIndex < NewData . Num ( ) ; + + EntryIndex )
{
if ( NewData [ EntryIndex ] . TextureName ! = PreviousData [ EntryIndex ] . TextureName | |
! AreCloseToOnePercent ( NewData [ EntryIndex ] . SamplingScale , PreviousData [ EntryIndex ] . SamplingScale ) | |
NewData [ EntryIndex ] . UVChannelIndex ! = PreviousData [ EntryIndex ] . UVChannelIndex )
{
bNeedsResave = true ;
break ;
}
}
}
if ( bNeedsResave )
{
MaterialInterface - > MarkPackageDirty ( ) ;
bAnyPackagesDirtied = true ;
}
}
}
}
ExportErrors . OutputToLog ( ) ;
}
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
return bAnyPackagesDirtied ;
}
2019-08-21 08:57:30 -04:00
bool FEditorBuildUtils : : EditorBuildVirtualTexture ( UWorld * InWorld )
{
if ( InWorld = = nullptr )
{
return true ;
}
IVirtualTexturingEditorModule * Module = FModuleManager : : Get ( ) . GetModulePtr < IVirtualTexturingEditorModule > ( " VirtualTexturingEditor " ) ;
if ( Module = = nullptr )
{
return false ;
}
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
TArray < URuntimeVirtualTextureComponent * > Components ;
for ( TObjectIterator < URuntimeVirtualTextureComponent > It ; It ; + + It )
{
2020-09-24 00:43:27 -04:00
if ( Module - > HasStreamedMips ( * It ) )
2019-08-21 08:57:30 -04:00
{
Components . Add ( * It ) ;
}
}
if ( Components . Num ( ) = = 0 )
{
return true ;
}
FScopedSlowTask BuildTask ( Components . Num ( ) , LOCTEXT ( " VirtualTextureBuild " , " Building Virtual Textures " ) ) ;
BuildTask . MakeDialog ( true ) ;
for ( URuntimeVirtualTextureComponent * Component : Components )
{
BuildTask . EnterProgressFrame ( ) ;
2020-08-11 01:36:57 -04:00
// Note that Build*() functions return true if the associated Has*() functions return false
2020-09-24 00:43:27 -04:00
if ( BuildTask . ShouldCancel ( ) | | ! Module - > BuildStreamedMips ( Component ) )
2019-08-21 08:57:30 -04:00
{
return false ;
}
}
CollectGarbage ( GARBAGE_COLLECTION_KEEPFLAGS ) ;
return true ;
}
2020-11-26 14:22:44 -04:00
void FEditorBuildUtils : : EditorBuildAllLandscape ( UWorld * InWorld )
2020-04-27 16:16:09 -04:00
{
if ( InWorld )
{
if ( ULandscapeSubsystem * LandscapeSubsystem = InWorld - > GetSubsystem < ULandscapeSubsystem > ( ) )
{
2020-11-26 14:22:44 -04:00
LandscapeSubsystem - > BuildAll ( ) ;
2020-04-27 16:16:09 -04:00
}
}
}
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# undef LOCTEXT_NAMESPACE