2019-12-26 15:32:37 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-11-14 14:08:41 -05:00
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
HlslAST.cpp - Abstract Syntax Tree implementation for HLSL.
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
|
|
|
|
|
#include "HlslAST.h"
|
|
|
|
|
|
|
|
|
|
namespace CrossCompiler
|
|
|
|
|
{
|
|
|
|
|
namespace AST
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
static void WriteOptionArraySize(FASTWriter& Writer, bool bIsArray, const TLinearArray<FExpression*>& ArraySize)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
if (bIsArray && ArraySize.Num() == 0)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("[]");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
for (const auto* Dimension : ArraySize)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'[';
|
2015-11-18 09:31:10 -05:00
|
|
|
if (Dimension)
|
|
|
|
|
{
|
|
|
|
|
Dimension->Write(Writer);
|
|
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)']';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
FNode::FNode()/* :
|
|
|
|
|
Prev(nullptr),
|
|
|
|
|
Next(nullptr)*/
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#endif // 0
|
|
|
|
|
|
|
|
|
|
FNode::FNode(FLinearAllocator* Allocator, const FSourceInfo& InInfo) :
|
|
|
|
|
SourceInfo(InInfo),
|
|
|
|
|
Attributes(Allocator)/*,
|
|
|
|
|
Prev(nullptr),
|
|
|
|
|
Next(nullptr)*/
|
2014-11-14 14:08:41 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FASTWriter::DoIndent()
|
2014-11-14 14:08:41 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
int32 N = Indent;
|
|
|
|
|
while (--N >= 0)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
(*this) << (TCHAR)'\t';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2014-11-14 14:08:41 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FNode::WriteAttributes(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
if (Attributes.Num() > 0)
|
|
|
|
|
{
|
|
|
|
|
for (auto* Attr : Attributes)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Attr->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)' ';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-10 21:55:37 -05:00
|
|
|
FPragma::FPragma(FLinearAllocator* InAllocator, const TCHAR* InPragma, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo)
|
|
|
|
|
{
|
|
|
|
|
Pragma = InAllocator->Strdup(InPragma);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FPragma::Write(FASTWriter& Writer) const
|
|
|
|
|
{
|
|
|
|
|
Writer << Pragma << TEXT("\n");
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
FExpression::FExpression(FLinearAllocator* InAllocator, EOperators InOperator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Operator(InOperator),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
Expressions(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
TypeSpecifier = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FExpression::FExpression(FLinearAllocator* InAllocator, EOperators InOperator, FExpression* E0, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Operator(InOperator),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
Expressions(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
Expressions.SetNumUninitialized(1);
|
|
|
|
|
Expressions[0] = E0;
|
|
|
|
|
TypeSpecifier = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FExpression::FExpression(FLinearAllocator* InAllocator, EOperators InOperator, FExpression* E0, FExpression* E1, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Operator(InOperator),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
Expressions(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
Expressions.SetNumUninitialized(2);
|
|
|
|
|
Expressions[0] = E0;
|
|
|
|
|
Expressions[1] = E1;
|
|
|
|
|
TypeSpecifier = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
FExpression::FExpression(FLinearAllocator* InAllocator, EOperators InOperator, FExpression* E0, FExpression* E1, FExpression* E2, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Operator(InOperator),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
Expressions(InAllocator)
|
2014-11-14 14:08:41 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions.SetNumUninitialized(3);
|
|
|
|
|
Expressions[0] = E0;
|
|
|
|
|
Expressions[1] = E1;
|
|
|
|
|
Expressions[2] = E2;
|
|
|
|
|
TypeSpecifier = nullptr;
|
2014-11-14 14:08:41 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FExpression::WriteOperator(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
switch (Operator)
|
|
|
|
|
{
|
|
|
|
|
case EOperators::Plus:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("+");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
2015-11-18 09:31:10 -05:00
|
|
|
case EOperators::Minus:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("-");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Assign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::AddAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("+=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::SubAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("-=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::MulAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("*=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::DivAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("/=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::ModAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("%=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::RSAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(">>=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LSAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("<<=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::AndAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("&=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::OrAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("|=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::XorAssign:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("^=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Conditional:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("?");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LogicOr:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("||");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LogicAnd:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("&&");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LogicNot:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("!");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::BitOr:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("|");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::BitXor:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("^");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::BitAnd:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("&");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
2015-11-18 09:31:10 -05:00
|
|
|
case EOperators::BitNeg:
|
|
|
|
|
Writer << TEXT("~");
|
|
|
|
|
break;
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
case EOperators::Equal:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("==");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::NEqual:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("!=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Less:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("<");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Greater:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(">");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LEqual:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("<=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::GEqual:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(">=");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::LShift:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("<<");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::RShift:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(">>");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Add:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("+");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Sub:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("-");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Mul:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("*");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Div:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("/");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Mod:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("%");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::PreInc:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("++");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::PreDec:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("--");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::PostInc:
|
|
|
|
|
case EOperators::PostDec:
|
|
|
|
|
case EOperators::FieldSelection:
|
|
|
|
|
case EOperators::ArrayIndex:
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::TypeCast:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'(';
|
|
|
|
|
TypeSpecifier->Write(Writer);
|
|
|
|
|
Writer << TEXT(")");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("*MISSING_");
|
|
|
|
|
Writer << (uint32)Operator;
|
|
|
|
|
Writer << (TCHAR)'*';
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3550452 by Ben.Marsh
UAT: Improve readability of error message when an editor commandlet fails with an error code.
Change 3551179 by Ben.Marsh
Add methods for reading text files into an array of strings.
Change 3551260 by Ben.Marsh
Core: Change FFileHelper routines to use enum classes for flags.
Change 3555697 by Gil.Gribb
Fixed a rare crash when the asset registry scanner found old cooked files with package level compression.
#jira UE-47668
Change 3556464 by Ben.Marsh
UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files.
Change 3557630 by Ben.Marsh
Allow the network version to be set via Build.version if it's not overriden from Version.h.
Change 3561357 by Gil.Gribb
Fixed crashes related to loading old unversioned files in the editor.
#jira UE-47806
Change 3565711 by Graeme.Thornton
PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx)
Change 3565864 by Robert.Manuszewski
Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object.
Change 3569022 by Ben.Marsh
PR #3849: Update gitignore (Contributed by mhutch)
Change 3569113 by Ben.Marsh
Fix Japanese errors not displaying correctly in the cook output log.
#jira UE-47746
Change 3569486 by Ben.Marsh
UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set.
Change 3570483 by Graeme.Thornton
Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors
Change 3570513 by Robert.Manuszewski
Fix for a race condition with async loading thread enabled.
Change 3570664 by Ben.Marsh
UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core.
Change 3570708 by Robert.Manuszewski
Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running.
Change 3571592 by Ben.Marsh
UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available.
Change 3572215 by Graeme.Thornton
UBT
- Remove some unnecessary using directives
- Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself
Change 3572437 by Robert.Manuszewski
Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects.
#jira UE-44996
Change 3572480 by Robert.Manuszewski
MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long
Change 3573547 by Ben.Marsh
Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line.
Change 3574562 by Robert.Manuszewski
PR #3847: Add GC callbacks for script integrations (Contributed by mhutch)
Change 3575017 by Ben.Marsh
Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core.
Change 3575689 by Ben.Marsh
Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds.
Change 3575934 by Steve.Robb
Fix for nested preprocessor definitions.
Change 3575961 by Steve.Robb
Fix for nested zeros.
Change 3576297 by Robert.Manuszewski
Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread.
#jira FORT-38977
Change 3576366 by Ben.Marsh
Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated.
Change 3578290 by Graeme.Thornton
Changes to Ionic zip library to allow building on dot net core
Change 3578291 by Graeme.Thornton
Ionic zip library binaries built for .NET Core
Change 3578354 by Graeme.Thornton
Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string
Change 3578674 by Robert.Manuszewski
After loading packages flush linker cache on uncooked platforms to free precache memory
Change 3579068 by Steve.Robb
Fix for CLASS_Intrinsic getting stomped.
Fix to EClassFlags so that they are visible in the debugger.
Re-added mysteriously-removed comments.
Change 3579228 by Steve.Robb
BOM removed.
Change 3579297 by Ben.Marsh
Fix exception if a plugin lists the same module twice.
#jira UE-48232
Change 3579898 by Robert.Manuszewski
When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert.
Change 3579983 by Robert.Manuszewski
More fixes for freeing linker cache memory in the editor.
Change 3580012 by Graeme.Thornton
Remove redundant copy of FileReference.cs
Change 3580408 by Ben.Marsh
Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect.
Change 3582104 by Graeme.Thornton
Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path.
Change 3582131 by Graeme.Thornton
#define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway.
Change 3582645 by Ben.Marsh
PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola)
#jira UE-48192
Change 3583955 by Robert.Manuszewski
Support for EDL cooked packages in the editor
Change 3584035 by Graeme.Thornton
Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly.
Change 3584177 by Robert.Manuszewski
Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached)
Change 3584315 by Ben.Marsh
Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class.
Change 3584370 by Ben.Marsh
Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes.
Change 3584498 by Ben.Marsh
Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes.
Change 3585003 by Steve.Robb
Fix for TChunkedArray ranged-for iteration.
#jira UE-48297
Change 3585235 by Ben.Marsh
Remove LogEngine extern from Core; use the platform log channels instead.
Change 3585942 by Ben.Marsh
Move MessageBoxExt() implementation into application layer for platforms that require it.
Change 3587071 by Ben.Marsh
Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL.
Change 3587161 by Ben.Marsh
Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h.
Change 3587579 by Steve.Robb
Fix for Children list not being rebuilt after hot reload.
Change 3587584 by Graeme.Thornton
Logging improvements for pak signature check failures
- Added "PakCorrupt" console command which corrupts the master signature table
- Added some extra log information about which block failed
- Re-hash the master signature table and to make sure that it hasn't changed since startup
- Moved the ensure around so that some extra logging messages can make it out before the ensure is hit
- Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again
Change 3587586 by Graeme.Thornton
Changes to make UBT build and run on .NET Core
- Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups
- VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use
- After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects
Change 3587953 by Steve.Robb
Allow arbitrary UENUM initializers for enumerators.
Editor-only data UENUM support.
Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated.
#jira UE-46274
Change 3589827 by Graeme.Thornton
More fixes for VSCode project generation and for UBT running on .NET Core
- Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts
- UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel
- Added documentation for UEConsoleTraceListener
- All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files
- Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose"
- Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff
Change 3589868 by Graeme.Thornton
Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures.
UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases
Change 3589919 by Robert.Manuszewski
Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor)
Change 3589940 by Graeme.Thornton
Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths.
Change 3590078 by Graeme.Thornton
Fully disable automatic assembly info generation in .NET Core projects
Change 3590534 by Robert.Manuszewski
Marking UObject as intrinsic clas to fix a crash on UFE startup.
Change 3591498 by Gil.Gribb
UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading.
Change 3591605 by Gil.Gribb
UE4 - Follow up to fixing several edge cases in the low level async loading code.
Change 3592577 by Graeme.Thornton
.NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates
Change 3592684 by Steve.Robb
Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush.
Change 3592710 by Steve.Robb
Fix for invalid casts in ListProps command.
Some name changes in command output.
Change 3592715 by Ben.Marsh
Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default.
Change 3592767 by Gil.Gribb
UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules.
Change 3592770 by Gil.Gribb
UE4 - Fixed a race condition with async read completion in the prescence of cancels.
Change 3593090 by Steve.Robb
Better error message when there two clashing type names are found.
Change 3593697 by Steve.Robb
VisitTupleElements function, which calls a functor for each element in the tuple.
Change 3595206 by Ben.Marsh
Include additional diagnostics for missing imports when a module load fails.
Change 3596140 by Graeme.Thornton
Batch file for running MSBuild
Change 3596267 by Steve.Robb
Thread safety fix to FPaths::GetProjectFilePath().
Change 3596271 by Robert.Manuszewski
Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor
#jira UE-47535
Change 3596283 by Steve.Robb
Redundant casts removed from UHT.
Change 3596303 by Ben.Marsh
EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window.
Change 3596337 by Ben.Marsh
UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio.
Change 3596367 by Steve.Robb
Iterator checks in ranged-for on TMap, TSet and TSparseArray.
Change 3596410 by Gil.Gribb
UE4 - Improved some error messages on runtime failures in the EDL.
Change 3596532 by Ben.Marsh
UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013.
#jira UE-48119
Change 3596631 by Steve.Robb
Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder.
Change 3596807 by Ben.Marsh
Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense.
* UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables.
* Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration.
Change 3596957 by Steve.Robb
UBT can be used to write out an .objsrcmap file for use with the MapFileParser.
Renaming of ObjMap to ObjSrcMap in MapFileParser.
Change 3597213 by Ben.Marsh
Remove AutoReporter. We don't support this any more.
Change 3597558 by Ben.Marsh
UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax:
+ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar")
The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable.
Change 3597982 by Ben.Marsh
Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache).
#jira UE-47173
Change 3598045 by Ben.Marsh
UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI).
Change 3599214 by Ben.Marsh
Avoid string duplication when comparing extensions.
Change 3600038 by Steve.Robb
Fix for maps being modified during iteration in cache compaction.
Change 3600136 by Steve.Robb
GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool
Change 3600214 by Steve.Robb
More accurate error message when unsupported template parameters are provided in a TSet property.
Change 3600232 by Ben.Marsh
UBT: Force UHT to run again if the .build.cs file for a module has changed.
#jira UE-46119
Change 3600246 by Steve.Robb
GitHub #3045 : allow multiple interface definition in a file
Change 3600645 by Ben.Marsh
Convert QAGame to Include-What-You-Use.
Change 3600897 by Ben.Marsh
Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes.
Change 3601558 by Graeme.Thornton
Simple first pass VSCode editor integration plugin
Change 3601658 by Graeme.Thornton
Enable intellisense generation for VS Code project files and setup include paths properly
Change 3601762 by Ben.Marsh
UBT: Add support for adaptive non-unity builds when working from a Git repository.
The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged.
Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior:
<SourceFileWorkingSet>
<Provider>Default</Provider> <!-- May be None, Default, Git or Perforce -->
<RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. -->
<GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH -->
</SourceFileWorkingSet>
Change 3604032 by Graeme.Thornton
First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows.
Change 3604038 by Graeme.Thornton
Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor.
Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code.
Change 3604106 by Steve.Robb
GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro
Change 3604192 by Steve.Robb
GitHub #3911 : Improving ToUpper/ToLower efficiency
Change 3604273 by Graeme.Thornton
IWYU build fixes when malloc profiler is enabled
Change 3605457 by Ben.Marsh
Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it.
Change 3606720 by James.Hopkin
Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn.
Change 3606807 by Graeme.Thornton
Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741.
Change 3607026 by James.Hopkin
Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed
Change 3607142 by Graeme.Thornton
UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose.
Change 3607146 by Ben.Marsh
UGS: Fix exception due to formatting string when Perforce throws an error.
Change 3607147 by Steve.Robb
Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time.
Float and double conversion support added to int properties.
NAME_DoubleProperty added.
Fix for converting enum class enumerators > 255 to int properties.
Change 3607516 by Ben.Marsh
PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames)
Change 3610421 by Ben.Marsh
UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help.
Change 3610657 by Ben.Marsh
UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables.
Change 3611000 by Ben.Marsh
UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument.
Change 3612471 by Ben.Marsh
UBT: Move FastJSON into DotNETUtilities.
Change 3613479 by Ben.Marsh
UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator.
Change 3613910 by Ben.Marsh
UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later.
Change 3614075 by Ben.Marsh
UBT: Remove hacks for testing project file attributes by name.
Change 3614090 by Ben.Marsh
UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary.
Change 3614488 by Ben.Marsh
UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled.
Change 3614490 by Ben.Marsh
UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself.
Change 3614962 by Ben.Marsh
UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers.
Change 3615416 by Ben.Marsh
EC: Include an icon showing the overall status of a build in the grid view.
Change 3615713 by Ben.Marsh
UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder.
#jira UE-48987
Change 3616652 by Ben.Marsh
Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project.
#jira UE-49007
Change 3616680 by Ben.Marsh
Add the CodeAPI-HTML.tgz file into the installed engine build.
Change 3616767 by Ben.Marsh
Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible.
Change 3616864 by Ben.Marsh
Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended.
#jira UE-48711
Change 3619964 by Ben.Marsh
UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables.
Change 3548930 by Ben.Marsh
UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction.
Change 3558056 by Ben.Marsh
Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()).
Change 3563309 by Graeme.Thornton
Moved some common C# classes into the DotNETCommon assembly
Change 3570283 by Graeme.Thornton
Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects
Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore
Change 3572811 by Ben.Marsh
UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables).
Change 3573397 by Ben.Marsh
UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS.
Change 3575659 by Ben.Marsh
Remove CHM API documentation.
Change 3582103 by Graeme.Thornton
Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core
Removed reference to System.Windows.Form from UBT.
Change 3584113 by Ben.Marsh
Move key-mapping functionality into the InputCore module.
Change 3584278 by Ben.Marsh
Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc.
Change 3584453 by Ben.Marsh
Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms.
Change 3585301 by Ben.Marsh
Move PlatformPostInit() into an FPlatformApplicationMisc function.
Change 3587050 by Ben.Marsh
Move IsThisApplicationForeground() into FPlatformApplicationMisc.
Change 3587059 by Ben.Marsh
Move RequiresVirtualKeyboard() into FPlatformApplicationMisc.
Change 3587119 by Ben.Marsh
Move GetAbsoluteLogFilename() into FPlatformMisc.
Change 3587800 by Steve.Robb
Fixes to container visualizers for types whose pointer type isn't simply Type*.
Change 3588393 by Ben.Marsh
Move platform output devices into their own headers.
Change 3588868 by Ben.Marsh
Move creation of console, error and warning output devices int PlatformApplicationMisc.
Change 3589879 by Graeme.Thornton
All automation projects now have a reference to DotNETUtilities
Fixed a build error in the WEX automation library
Change 3590034 by Ben.Marsh
Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac).
Change 3593754 by Steve.Robb
Fix for tuple debugger visualization.
Change 3597208 by Ben.Marsh
Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees.
Change 3600163 by Ben.Marsh
UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned.
#jira UE-46725
Change 3604279 by Graeme.Thornton
Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects
Change 3606685 by James.Hopkin
Removed redundant 'Cast's (casting to either the same type or a base).
In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass.
Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp.
Change 3610950 by Ben.Marsh
UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic.
Change 3610991 by Ben.Marsh
UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line.
Change 3612342 by Ben.Marsh
UBT: Change JsonObject.Read() to take a FileReference parameter.
Change 3612362 by Ben.Marsh
UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects.
Change 3619128 by Ben.Marsh
Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures.
[CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
|
|
|
checkf(0, TEXT("Unhandled AST Operator %d!"), (uint32)Operator);
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FExpression::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
switch (Operator)
|
|
|
|
|
{
|
|
|
|
|
case EOperators::Conditional:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'(';
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[0]->Write(Writer);
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" ? ");
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[1]->Write(Writer);
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" : ");
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[2]->Write(Writer);
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(")");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
case EOperators::Literal:
|
|
|
|
|
Writer << Identifier;
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::Identifier:
|
|
|
|
|
Writer << Identifier;
|
|
|
|
|
break;
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
default:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("*MISSING_");
|
|
|
|
|
Writer << (uint32)Operator;
|
|
|
|
|
Writer << (TCHAR)'*';
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3550452 by Ben.Marsh
UAT: Improve readability of error message when an editor commandlet fails with an error code.
Change 3551179 by Ben.Marsh
Add methods for reading text files into an array of strings.
Change 3551260 by Ben.Marsh
Core: Change FFileHelper routines to use enum classes for flags.
Change 3555697 by Gil.Gribb
Fixed a rare crash when the asset registry scanner found old cooked files with package level compression.
#jira UE-47668
Change 3556464 by Ben.Marsh
UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files.
Change 3557630 by Ben.Marsh
Allow the network version to be set via Build.version if it's not overriden from Version.h.
Change 3561357 by Gil.Gribb
Fixed crashes related to loading old unversioned files in the editor.
#jira UE-47806
Change 3565711 by Graeme.Thornton
PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx)
Change 3565864 by Robert.Manuszewski
Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object.
Change 3569022 by Ben.Marsh
PR #3849: Update gitignore (Contributed by mhutch)
Change 3569113 by Ben.Marsh
Fix Japanese errors not displaying correctly in the cook output log.
#jira UE-47746
Change 3569486 by Ben.Marsh
UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set.
Change 3570483 by Graeme.Thornton
Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors
Change 3570513 by Robert.Manuszewski
Fix for a race condition with async loading thread enabled.
Change 3570664 by Ben.Marsh
UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core.
Change 3570708 by Robert.Manuszewski
Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running.
Change 3571592 by Ben.Marsh
UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available.
Change 3572215 by Graeme.Thornton
UBT
- Remove some unnecessary using directives
- Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself
Change 3572437 by Robert.Manuszewski
Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects.
#jira UE-44996
Change 3572480 by Robert.Manuszewski
MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long
Change 3573547 by Ben.Marsh
Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line.
Change 3574562 by Robert.Manuszewski
PR #3847: Add GC callbacks for script integrations (Contributed by mhutch)
Change 3575017 by Ben.Marsh
Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core.
Change 3575689 by Ben.Marsh
Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds.
Change 3575934 by Steve.Robb
Fix for nested preprocessor definitions.
Change 3575961 by Steve.Robb
Fix for nested zeros.
Change 3576297 by Robert.Manuszewski
Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread.
#jira FORT-38977
Change 3576366 by Ben.Marsh
Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated.
Change 3578290 by Graeme.Thornton
Changes to Ionic zip library to allow building on dot net core
Change 3578291 by Graeme.Thornton
Ionic zip library binaries built for .NET Core
Change 3578354 by Graeme.Thornton
Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string
Change 3578674 by Robert.Manuszewski
After loading packages flush linker cache on uncooked platforms to free precache memory
Change 3579068 by Steve.Robb
Fix for CLASS_Intrinsic getting stomped.
Fix to EClassFlags so that they are visible in the debugger.
Re-added mysteriously-removed comments.
Change 3579228 by Steve.Robb
BOM removed.
Change 3579297 by Ben.Marsh
Fix exception if a plugin lists the same module twice.
#jira UE-48232
Change 3579898 by Robert.Manuszewski
When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert.
Change 3579983 by Robert.Manuszewski
More fixes for freeing linker cache memory in the editor.
Change 3580012 by Graeme.Thornton
Remove redundant copy of FileReference.cs
Change 3580408 by Ben.Marsh
Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect.
Change 3582104 by Graeme.Thornton
Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path.
Change 3582131 by Graeme.Thornton
#define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway.
Change 3582645 by Ben.Marsh
PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola)
#jira UE-48192
Change 3583955 by Robert.Manuszewski
Support for EDL cooked packages in the editor
Change 3584035 by Graeme.Thornton
Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly.
Change 3584177 by Robert.Manuszewski
Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached)
Change 3584315 by Ben.Marsh
Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class.
Change 3584370 by Ben.Marsh
Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes.
Change 3584498 by Ben.Marsh
Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes.
Change 3585003 by Steve.Robb
Fix for TChunkedArray ranged-for iteration.
#jira UE-48297
Change 3585235 by Ben.Marsh
Remove LogEngine extern from Core; use the platform log channels instead.
Change 3585942 by Ben.Marsh
Move MessageBoxExt() implementation into application layer for platforms that require it.
Change 3587071 by Ben.Marsh
Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL.
Change 3587161 by Ben.Marsh
Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h.
Change 3587579 by Steve.Robb
Fix for Children list not being rebuilt after hot reload.
Change 3587584 by Graeme.Thornton
Logging improvements for pak signature check failures
- Added "PakCorrupt" console command which corrupts the master signature table
- Added some extra log information about which block failed
- Re-hash the master signature table and to make sure that it hasn't changed since startup
- Moved the ensure around so that some extra logging messages can make it out before the ensure is hit
- Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again
Change 3587586 by Graeme.Thornton
Changes to make UBT build and run on .NET Core
- Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups
- VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use
- After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects
Change 3587953 by Steve.Robb
Allow arbitrary UENUM initializers for enumerators.
Editor-only data UENUM support.
Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated.
#jira UE-46274
Change 3589827 by Graeme.Thornton
More fixes for VSCode project generation and for UBT running on .NET Core
- Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts
- UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel
- Added documentation for UEConsoleTraceListener
- All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files
- Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose"
- Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff
Change 3589868 by Graeme.Thornton
Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures.
UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases
Change 3589919 by Robert.Manuszewski
Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor)
Change 3589940 by Graeme.Thornton
Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths.
Change 3590078 by Graeme.Thornton
Fully disable automatic assembly info generation in .NET Core projects
Change 3590534 by Robert.Manuszewski
Marking UObject as intrinsic clas to fix a crash on UFE startup.
Change 3591498 by Gil.Gribb
UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading.
Change 3591605 by Gil.Gribb
UE4 - Follow up to fixing several edge cases in the low level async loading code.
Change 3592577 by Graeme.Thornton
.NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates
Change 3592684 by Steve.Robb
Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush.
Change 3592710 by Steve.Robb
Fix for invalid casts in ListProps command.
Some name changes in command output.
Change 3592715 by Ben.Marsh
Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default.
Change 3592767 by Gil.Gribb
UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules.
Change 3592770 by Gil.Gribb
UE4 - Fixed a race condition with async read completion in the prescence of cancels.
Change 3593090 by Steve.Robb
Better error message when there two clashing type names are found.
Change 3593697 by Steve.Robb
VisitTupleElements function, which calls a functor for each element in the tuple.
Change 3595206 by Ben.Marsh
Include additional diagnostics for missing imports when a module load fails.
Change 3596140 by Graeme.Thornton
Batch file for running MSBuild
Change 3596267 by Steve.Robb
Thread safety fix to FPaths::GetProjectFilePath().
Change 3596271 by Robert.Manuszewski
Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor
#jira UE-47535
Change 3596283 by Steve.Robb
Redundant casts removed from UHT.
Change 3596303 by Ben.Marsh
EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window.
Change 3596337 by Ben.Marsh
UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio.
Change 3596367 by Steve.Robb
Iterator checks in ranged-for on TMap, TSet and TSparseArray.
Change 3596410 by Gil.Gribb
UE4 - Improved some error messages on runtime failures in the EDL.
Change 3596532 by Ben.Marsh
UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013.
#jira UE-48119
Change 3596631 by Steve.Robb
Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder.
Change 3596807 by Ben.Marsh
Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense.
* UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables.
* Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration.
Change 3596957 by Steve.Robb
UBT can be used to write out an .objsrcmap file for use with the MapFileParser.
Renaming of ObjMap to ObjSrcMap in MapFileParser.
Change 3597213 by Ben.Marsh
Remove AutoReporter. We don't support this any more.
Change 3597558 by Ben.Marsh
UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax:
+ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar")
The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable.
Change 3597982 by Ben.Marsh
Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache).
#jira UE-47173
Change 3598045 by Ben.Marsh
UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI).
Change 3599214 by Ben.Marsh
Avoid string duplication when comparing extensions.
Change 3600038 by Steve.Robb
Fix for maps being modified during iteration in cache compaction.
Change 3600136 by Steve.Robb
GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool
Change 3600214 by Steve.Robb
More accurate error message when unsupported template parameters are provided in a TSet property.
Change 3600232 by Ben.Marsh
UBT: Force UHT to run again if the .build.cs file for a module has changed.
#jira UE-46119
Change 3600246 by Steve.Robb
GitHub #3045 : allow multiple interface definition in a file
Change 3600645 by Ben.Marsh
Convert QAGame to Include-What-You-Use.
Change 3600897 by Ben.Marsh
Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes.
Change 3601558 by Graeme.Thornton
Simple first pass VSCode editor integration plugin
Change 3601658 by Graeme.Thornton
Enable intellisense generation for VS Code project files and setup include paths properly
Change 3601762 by Ben.Marsh
UBT: Add support for adaptive non-unity builds when working from a Git repository.
The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged.
Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior:
<SourceFileWorkingSet>
<Provider>Default</Provider> <!-- May be None, Default, Git or Perforce -->
<RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. -->
<GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH -->
</SourceFileWorkingSet>
Change 3604032 by Graeme.Thornton
First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows.
Change 3604038 by Graeme.Thornton
Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor.
Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code.
Change 3604106 by Steve.Robb
GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro
Change 3604192 by Steve.Robb
GitHub #3911 : Improving ToUpper/ToLower efficiency
Change 3604273 by Graeme.Thornton
IWYU build fixes when malloc profiler is enabled
Change 3605457 by Ben.Marsh
Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it.
Change 3606720 by James.Hopkin
Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn.
Change 3606807 by Graeme.Thornton
Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741.
Change 3607026 by James.Hopkin
Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed
Change 3607142 by Graeme.Thornton
UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose.
Change 3607146 by Ben.Marsh
UGS: Fix exception due to formatting string when Perforce throws an error.
Change 3607147 by Steve.Robb
Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time.
Float and double conversion support added to int properties.
NAME_DoubleProperty added.
Fix for converting enum class enumerators > 255 to int properties.
Change 3607516 by Ben.Marsh
PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames)
Change 3610421 by Ben.Marsh
UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help.
Change 3610657 by Ben.Marsh
UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables.
Change 3611000 by Ben.Marsh
UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument.
Change 3612471 by Ben.Marsh
UBT: Move FastJSON into DotNETUtilities.
Change 3613479 by Ben.Marsh
UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator.
Change 3613910 by Ben.Marsh
UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later.
Change 3614075 by Ben.Marsh
UBT: Remove hacks for testing project file attributes by name.
Change 3614090 by Ben.Marsh
UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary.
Change 3614488 by Ben.Marsh
UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled.
Change 3614490 by Ben.Marsh
UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself.
Change 3614962 by Ben.Marsh
UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers.
Change 3615416 by Ben.Marsh
EC: Include an icon showing the overall status of a build in the grid view.
Change 3615713 by Ben.Marsh
UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder.
#jira UE-48987
Change 3616652 by Ben.Marsh
Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project.
#jira UE-49007
Change 3616680 by Ben.Marsh
Add the CodeAPI-HTML.tgz file into the installed engine build.
Change 3616767 by Ben.Marsh
Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible.
Change 3616864 by Ben.Marsh
Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended.
#jira UE-48711
Change 3619964 by Ben.Marsh
UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables.
Change 3548930 by Ben.Marsh
UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction.
Change 3558056 by Ben.Marsh
Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()).
Change 3563309 by Graeme.Thornton
Moved some common C# classes into the DotNETCommon assembly
Change 3570283 by Graeme.Thornton
Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects
Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore
Change 3572811 by Ben.Marsh
UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables).
Change 3573397 by Ben.Marsh
UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS.
Change 3575659 by Ben.Marsh
Remove CHM API documentation.
Change 3582103 by Graeme.Thornton
Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core
Removed reference to System.Windows.Form from UBT.
Change 3584113 by Ben.Marsh
Move key-mapping functionality into the InputCore module.
Change 3584278 by Ben.Marsh
Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc.
Change 3584453 by Ben.Marsh
Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms.
Change 3585301 by Ben.Marsh
Move PlatformPostInit() into an FPlatformApplicationMisc function.
Change 3587050 by Ben.Marsh
Move IsThisApplicationForeground() into FPlatformApplicationMisc.
Change 3587059 by Ben.Marsh
Move RequiresVirtualKeyboard() into FPlatformApplicationMisc.
Change 3587119 by Ben.Marsh
Move GetAbsoluteLogFilename() into FPlatformMisc.
Change 3587800 by Steve.Robb
Fixes to container visualizers for types whose pointer type isn't simply Type*.
Change 3588393 by Ben.Marsh
Move platform output devices into their own headers.
Change 3588868 by Ben.Marsh
Move creation of console, error and warning output devices int PlatformApplicationMisc.
Change 3589879 by Graeme.Thornton
All automation projects now have a reference to DotNETUtilities
Fixed a build error in the WEX automation library
Change 3590034 by Ben.Marsh
Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac).
Change 3593754 by Steve.Robb
Fix for tuple debugger visualization.
Change 3597208 by Ben.Marsh
Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees.
Change 3600163 by Ben.Marsh
UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned.
#jira UE-46725
Change 3604279 by Graeme.Thornton
Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects
Change 3606685 by James.Hopkin
Removed redundant 'Cast's (casting to either the same type or a base).
In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass.
Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp.
Change 3610950 by Ben.Marsh
UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic.
Change 3610991 by Ben.Marsh
UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line.
Change 3612342 by Ben.Marsh
UBT: Change JsonObject.Read() to take a FileReference parameter.
Change 3612362 by Ben.Marsh
UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects.
Change 3619128 by Ben.Marsh
Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures.
[CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
|
|
|
checkf(0, TEXT("Unhandled AST Operator %d!"), (int32)Operator);
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
bool FExpression::GetConstantIntValue(int32& OutValue) const
|
|
|
|
|
{
|
|
|
|
|
if (IsConstant())
|
|
|
|
|
{
|
|
|
|
|
checkf(Identifier, TEXT("Null identifier, literaltype %d"), (int32)LiteralType);
|
|
|
|
|
OutValue = (int32)FCString::Atoi(Identifier);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
FExpression::~FExpression()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Expr : Expressions)
|
|
|
|
|
{
|
|
|
|
|
if (Expr)
|
|
|
|
|
{
|
|
|
|
|
delete Expr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
for (int32 Index = 0; Index < Expressions.Num(); ++Index)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Expressions[Index])
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
delete Expressions[Index];
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FUnaryExpression::FUnaryExpression(FLinearAllocator* InAllocator, EOperators InOperator, FExpression* Expr, const FSourceInfo& InInfo) :
|
2020-01-24 18:07:01 -05:00
|
|
|
FExpression(InAllocator, InOperator, Expr, InInfo)
|
2014-11-14 14:08:41 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FUnaryExpression::Write(FASTWriter& Writer) const
|
2014-11-14 14:08:41 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteOperator(Writer);
|
2020-01-24 18:07:01 -05:00
|
|
|
|
|
|
|
|
if (Writer.ExpressionScope != 0 && Operator != EOperators::FieldSelection)
|
|
|
|
|
{
|
|
|
|
|
Writer << (TCHAR)'(';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Expressions.Num() != 0)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 19:18:20 -04:00
|
|
|
++Writer.ExpressionScope;
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[0]->Write(Writer);
|
2015-10-28 19:18:20 -04:00
|
|
|
--Writer.ExpressionScope;
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Suffix
|
|
|
|
|
switch (Operator)
|
|
|
|
|
{
|
|
|
|
|
case EOperators::PostInc:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("++");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::PostDec:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("--");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EOperators::FieldSelection:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'.';
|
|
|
|
|
Writer << Identifier;
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Writer.ExpressionScope != 0 && Operator != EOperators::FieldSelection)
|
2015-10-31 10:55:13 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << (TCHAR)')';
|
2015-10-31 10:55:13 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
FBinaryExpression::FBinaryExpression(FLinearAllocator* InAllocator, EOperators InOperator, FExpression* E0, FExpression* E1, const FSourceInfo& InInfo) :
|
2020-01-24 18:07:01 -05:00
|
|
|
FExpression(InAllocator, InOperator, E0, E1, InInfo)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FBinaryExpression::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
switch (Operator)
|
|
|
|
|
{
|
|
|
|
|
case EOperators::ArrayIndex:
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Expressions[0]->AsUnaryExpression() && Expressions[0]->Operator == EOperators::Identifier)
|
2019-06-11 18:27:07 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[0]->Write(Writer);
|
2019-06-11 18:27:07 -04:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Writer << (TCHAR)'(';
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[0]->Write(Writer);
|
2019-06-11 18:27:07 -04:00
|
|
|
Writer << (TCHAR)')';
|
|
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'[';
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[1]->Write(Writer);
|
2019-06-11 18:27:07 -04:00
|
|
|
Writer << (TCHAR)']';
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
|
|
|
if (Writer.ExpressionScope != 0 && !IsAssignmentOperator(Operator))
|
2015-10-28 19:18:20 -04:00
|
|
|
{
|
|
|
|
|
Writer << (TCHAR)'(';
|
|
|
|
|
}
|
|
|
|
|
++Writer.ExpressionScope;
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[0]->Write(Writer);
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)' ';
|
|
|
|
|
WriteOperator(Writer);
|
|
|
|
|
Writer << (TCHAR)' ';
|
2020-01-24 18:07:01 -05:00
|
|
|
Expressions[1]->Write(Writer);
|
2015-10-28 19:18:20 -04:00
|
|
|
--Writer.ExpressionScope;
|
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3607928)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3441680 by Uriel.Doyon
Added units to point light intensity, to allow the user to specify the value in candelas or lumens.
New point light actors now configure the intensity in candelas by default.
Replaced viewport exposure settings by an EV100 slider.
Hidding the tone mapper in the show flag now still applies the exposure.
Added a new AutoExposure method called EV100 which allows to specify :
- MinEV100, MaxEV100
- Calibration Constnat
- Exposure Compensation
#jira UE-42783
Change 3454934 by Chris.Bunner
Backing out changelists 3441680, 3454636 and 3454844 for the sake of integration stability.
Change 3512118 by Marc.Olano
Fix rare Sobol shader data problem. Mismatch with CPU code after a large number of points
Resubmit of portion of //UE4/Dev-Rendering@3509854 that was rolled back to avoid massive shader recompiles during integration testing
Change 3512129 by Benjamin.Hyder
Fixing up content in TM-SobolNoise
Change 3512151 by Rolando.Caloca
DR - Fixed some layouts that were general
- Added some extra dump information
Change 3512160 by Benjamin.Hyder
Still Fixing TM-Sobol
Change 3512180 by Marc.Olano
PCSS for spotlights. Like directional PCSS this is experimental, activated by r.Shadow.FilterMethod.
Change 3512261 by Michael.Lentine
Move Subsurface to shared properties.
Previously the same code could be executed multiple times without being optimized out if multiple inputs used the same subsurface output.
#jira UE-44405
Change 3512288 by Rolando.Caloca
DR - Fix issue when recycling image handles
Change 3512338 by Michael.Lentine
Fix precision if user enters a multiple of 90 degree rotation for transforms.
This will only work for exact values. Generally comparing float point numbers using == is unsafe but it should be ok in this case as they are exact values entered from the UI. We may want to later expand this to include thresholding using a value ~1e-7.
#jira UE-46137
Change 3512424 by Michael.Lentine
Regenerate BaseColor.uasset and Specular.uasset to not have the notforclient flags set.
#jira UE-44315
Change 3512686 by Brian.Karis
Fix for quadric assert in infiltrator. Due to bad tangents in source mesh.
Change 3512696 by Brian.Karis
Unrevert TAA. Fixed DOF NaN artifacts
Change 3512717 by Marcus.Wassmer
PR #3714: Fix typo in EOcclusionCombineMode (Contributed by Mumbles4)
Change 3513112 by Richard.Wallis
Crash when packaging for iOS with Shared Material Native Libraries and Share Material Shader Code from windows platform. Offline shader compile for archiving not done - shader header has missing offline compile flag for native Metal library archiving.
Fix includes:
- Handle offline compile failure when not running on Mac and no remote is configured (or remote fails). (I think it's this point at which the crash in the bug report is at).
- Make sure remote can build for native Metal libraries and archive correctly - this should now support Linux platforms or Mac to Mac (if enabled in MetalShaderCompiler.cpp) for testing if required.
- Updated to include remote calling into the xcode 9 Metal pch fix already submitted by Mark Satt.
#jira UE-45657
Change 3513357 by Richard.Wallis
Windows compile fix.
Change 3513375 by Guillaume.Abadie
Exposes the possibility to manually destroy the GPU ressource of UTextureRenderTarget2D.
Change 3513685 by Richard.Hinckley
#jira UEDOC-3822
Fixing a comment that refers to a non-existent function, for documentation purposes.
Change 3513705 by Marc.Olano
Updates to Sobol test levels in RenderTest project
Change 3513730 by Rolando.Caloca
DR - Fix mip size copying resolve targets
- Fix compute fence
- Fix descriptor set texture layout
- More dump info
Change 3513742 by Marc.Olano
Texture-free numeric print for shader debugging
Change 3513777 by Daniel.Wright
Handled edge case where no furthest samples are found in precomputed visibility
Change 3514852 by Rolando.Caloca
DR - Fix -directcompile on SCW
Change 3515049 by Rolando.Caloca
DR - hlslcc dump crash fix
Change 3515167 by Rolando.Caloca
DR - hlslcc - Fix bogus string pointer
- Allow reading from non-scalar UAVs
Change 3515745 by Rolando.Caloca
DR - Linux compile fix
Change 3515862 by Rolando.Caloca
DR - Remove old reference to CCT
- Link with hlslcc debug libs on SCW debug config for easier debugging
Change 3516292 by Rolando.Caloca
DR - glslang exe fixes
Change 3516568 by Rolando.Caloca
DR - hlslcc - Copy fix for *Buffer as functionparameters
Change 3516659 by Marcus.Wassmer
Fix some d3derrors with distance fields
Change 3516801 by Daniel.Wright
Fixed crash when doing editor 'Force Delete' on a static mesh whose distance field is still being built. Any UObject reference that is to an asset can be NULL'ed by the editor.
Change 3516825 by Rolando.Caloca
DR - Some initial fixes for structured buffers
Change 3516843 by Rolando.Caloca
DR - Fix for Vulkan dist fields
Change 3516869 by Marcus.Wassmer
Add format to the createrendertarget blueprint node
Change 3516957 by Daniel.Wright
Fixed bUsesDistortion being editable
Change 3516965 by Daniel.Wright
Still mark the distance field task completed, even if the static mesh has been deleted
Change 3517039 by Yujiang.Wang
GitHub #2655: Optimization for shadow map resolution selection for spot lights
* Use the radius of the inscribed sphere at the cone end as the spot light's screen radius
Note: slight drop of shadow quality of spot lights may occur when they are far away from the camera. This is intended, since before this optimization they tend to be always rendered with the maximum shadow map resolution (2048), which is very costly
#jira UE-33982
Change 3517069 by Yujiang.Wang
Fix for ScissorRect settings in d3d11 being lost under certain scenarios
* Scissor rectangle is always enabled in the low-level d3d11 pipeline, and it is expected that at least one ScissorRect is present no matter whether RHISetScissorRect is called with bEnable=false (when it is false we just use a big rect to make it effectively disabled)
* However FD3D11StateCacheBase::ClearState() clears all the states, which removes scissor rectangles and causes problems for certain routines (FScene::UpdateSkyCaptureContents)
* Now SetScissorRectIfRequiredWhenSettingViewport will always set a effectively disabled ScissorRect on each FD3D11DynamicRHI::RHISetViewport call, just like d3d12 does
#jira UE-45465 UE-44760
Change 3517134 by Yujiang.Wang
CIS fix
Change 3517662 by Rolando.Caloca
DR - Execute upload Vulkan cmds on the RHI thread
- Fix crash with structured buffer
Change 3517677 by Rolando.Caloca
DR - Update/copy textures on RHI thread
Change 3517680 by Rolando.Caloca
DR - Copy texture bulk data on rhi thread
Change 3517748 by Marcus.Wassmer
temporary workaround for one class of GPU crashes
Change 3518832 by Rolando.Caloca
DR - Copy & extend 3518077
- Fix for movable skylight shader missing on simple forward (low lighting quality mode)
Change 3519973 by Richard.Wallis
Jittering in Engine Menu Dropdown Options. Jitter fix: Fix some areas that hadn't been changed from RoundToInt (from previous CL's) to CeilToInt.
#jira UE-46505
Change 3520849 by Uriel.Doyon
Fixed issue with investigate texture command and dynamic component entries.
Change 3521064 by Guillaume.Abadie
Returns absolute path of shader files on error to avoid work loss in visual studio that can't figure out that a sln relative and absolute path might leading to same file on disk.
Change 3521834 by Rolando.Caloca
DR - Fix decals on Vulkan
Change 3521892 by Rolando.Caloca
DR - Fix Vulkan texture streaming
Change 3523181 by Rolando.Caloca
DR - Copy from 3523176
UE4.17 - Fix Vulkan scissor causing text to not clip
Change 3523534 by Yujiang.Wang
UE-46631: Implement a scalable LongGPUTask to fix ProfileGPU
* A new, scalable, platform-independent IssueLongGPUTask is now implemented in UtilityShaders
* Removed IssueLongGPUTask and G*Vector4VertexDeclaration from RHI implementations
* The measurement of the execution time of a basic LongGPUTask unit is kicked off on the very first frame
#jira UE-46631
Change 3524552 by Yujiang.Wang
Fix iteration number calculation of LongGPUTask
Change 3524975 by Joe.Graf
Moved the Hamming-weight function from StaticMeshDrawList.inl to FGenericPlatformMath
Added SSE versions using _mm_popcnt_u64 for platforms that support it
Added a SSE check to gracefully exit when missing the instruction and it was expected to be there
#CodeReview: arciel.rekman, brian.karis
Change 3525306 by Daniel.Wright
Fixed ensure from LPV
Change 3525346 by Rolando.Caloca
DR - Fix linking issue
Change 3525459 by Daniel.Wright
Volumetric Lightmaps - higher quality precomputed GI on dynamic objects and GI on Volumetric Fog
* Enabled by default on all maps, effective after a lighting build. This replaces the existing Precomputed Light Volume and Indirect Lighting Cache features.
* New Lightmass World Settings: VolumeLightingMethod, VolumetricLightmapDetailCellSize and VolumetricLightmapMaximumBrickMemoryMb.
* Lightmass computes lighting samples in an adaptive grid, with higher density around geometry inside the importance volume. Positions outside the importance volume get lit with the border texels.
* Improved Lightmass volume solver to use importance photons and full adaptive final gather, so volume samples have similar quality to 2d lightmaps.
* A static indirection texture is built covering the importance volume and flattening the brick tree by storing the offset to the highest density brick at each indirection cell.
* Seamless and efficient GPU interpolation across density levels is achieved by adding a single row of padding to bricks, copied from neighbors, and stitching up bricks with lower density neighbors
* The Volumetric lightmap stores Irradiance as a 3 band SH, which is 27 floats, quantized into 28 bytes, 7 texture lookups.
* A full screen barebones material using Volumetric Lightmaps costs .42ms on 970 GTX, while Indirect Lighting Cache Point costs .32ms
* Sky bent normal is also stored for stationary skylights and Directional Light Shadowing for Single Sample Shadow receiving.
* Volumetric fog, Movable components, unbuilt Static Components, SingleSampleShadow receiving and Capsule Shadows use Volumetric Lightmaps if available
* New Visualization show flag for Volumetric Lightmap sample points
* Level streaming of volume light data is not currently supported with this method
Change 3525461 by Daniel.Wright
Lowered default r.Shadow.RadiusThreshold for Epic shadow settings as it was causing a lot of visible artifacts from small objects popping out. This will increase shadowmap cost slightly (13.5ms RT -> 14.3ms RT in Fortnite on PS4, no measurable GPU difference).
Change 3526459 by Rolando.Caloca
DR - Fix validation error
Change 3526474 by Rolando.Caloca
DR - Integrate from GV
Change 3526487 by Daniel.Wright
Disabled Volumetric Lightmap filtering with neighbors due to artifacts
Fix linux compile errors
Change 3526833 by Rolando.Caloca
DR - Workaround for hlslcc
Change 3526991 by Uriel.Doyon
Integrated 3526859 : Texture mip bias is now reset whenever the streaming budget increases. This fixes an issue where textures persistently become low res after a memory spike.
Change 3527574 by Rolando.Caloca
DR - Added some missing resource entries for SCW direct mode
Change 3527625 by Rolando.Caloca
DR - Copy from 3527113
UE4.17 - Fix Vulkan not calling Present
Change 3528461 by Brian.Karis
Support larger hash sizes. Added uint list hashing function.
Change 3528780 by Rolando.Caloca
DR - Default Vulkan resources
Change 3528818 by Rolando.Caloca
DR - glslang - Added missing accessor
Change 3528839 by Rolando.Caloca
DR - Fix virtual path issue when using non-engine relative absolute paths
Change 3528900 by Daniel.Wright
Fixed variable shadowing
Change 3529039 by Rolando.Caloca
DR - Read Spirv reflection data (not used yet)
Change 3529040 by Joe.Graf
Fixed the 32bit compile failures for the popcnt optimization
#CodeReview: arciel.rekman
Change 3529060 by Rolando.Caloca
DR - hlslcc - New flag for keeping resource names
Change 3529344 by Rolando.Caloca
DR - Delete unused file
Change 3529723 by Brian.Karis
Fixed static analysis cleaner.
Change 3531357 by Michael.Trepka
Updated Mac glslang libraries with latest changes. Also, updated the Xcode project (generated with CMake) and moved it to a different location so that it no longer uses hardcoded absolute paths. It should be easy to rebuild these libraries in the future.
Change 3531517 by Joe.Graf
Added support for ddx_fine, ddy_fine, ddx_coarse, ddy_coarse to hlslcc
#CodeReview: arciel.rekman, mark.satterthwaite, rolando.caloca
Change 3531626 by Joe.Graf
Mac version of the popcount optimization
Changed Linux version to use the same builtin
#CodeReview: mark.satterthwaite, arciel.rekman
Change 3531837 by Chris.Bunner
SetScissorRectIfRequiredWhenSettingViewport sets the viewport size by default rather than disabling the scissor rect.
#jra UE-46753
Change 3533415 by Joe.Graf
Renamed the SSSE3 checks per feedback
#CodeReview: arciel.rekman
Change 3533480 by Michael.Lentine
Use more accurate descriptions for shader recompile options
Change 3533511 by Joe.Graf
Updated the GenericPlatformMisc to match the SSSE3 name change
#CodeReview: arciel.rekman
Change 3533521 by Marcus.Wassmer
Fix scenerenderer leak when updating out of view planar reflections
Change 3533528 by Joe.Graf
Updated comments
#CodeReview: n/a
Change 3533608 by Mark.Satterthwaite
New manual Xcode project for glslang so that we include all the necessary code and can link again.
Change 3534260 by Mark.Satterthwaite
Fix the Xcode 9 Beta 3 compile errors in MetalRHI without breaking Xcode 8.3.3.
Change 3535789 by Yujiang.Wang
Fix for wrong hair shading in forward shading
* IBL reflections should be turned off for hairs
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3538297 by Michael.Lentine
Add shader comparison test.
Adding the basic test case.
Adding logic to Common.ush to enable FP16 conditionally on a define (which is not set by default)
Adding more exported functionality to automation for use in the shader test.
Change 3538309 by Michael.Lentine
Add missing file from Shader Test CL.
Change 3538751 by Michael.Lentine
Add missing pragma once.
Change 3539236 by Michael.Lentine
Do not ignore return values.
Change 3539237 by Michael.Lentine
Check in the correct file
Change 3540343 by Rolando.Caloca
DR - Added t.DumpHitches.AllThreads
Change 3540661 by Yujiang.Wang
Fix spot tube light direction
* The tube direction for a spot light was pointing along the light direction, now it is along the local Z axis which is perpendicular to the light direction. Lightmass is also touched
* A new LightTangent is added to FDeferredLightData
* Packed all the values from LightSceneProxy->GetParameters into a single FLightParameters struct to avoid copy-pasting them everywhere
Change 3541129 by Rolando.Caloca
DR - vk - Copy all Vulkan fixes from 4.17
Change 3541347 by Yujiang.Wang
Fix wrong ViewFlags being set between objects when rendering shadow depth maps
* Bug caused by trying to share DrawRenderState between objects, but SetViewFlagsForShadowPass was designed to start from a fresh render state
* Now SetViewFlagsForShadowPass recalculates and sets the flags on each call
Change 3542603 by Rolando.Caloca
DR - vk - Allow sharing samplers on Vulkan
Change 3542639 by Jian.Ru
Changed warning text to better indicate that global clip plane needs to be enabled for planar reflection
#RB Marcus.Wassmer
Change 3543167 by Michael.Lentine
Fix naming for the shader comparison tests.
Change 3543210 by Uriel.Doyon
Fixed an issue when computing material scales where the default material ends up being used instead of the required material.
In that case, we used the default settings for texture streaming (assuming a scale of 1).
Change 3543221 by Brian.Karis
Simplifier optimizations
Change 3543239 by Arciel.Rekman
hlslcc: remove FCustomStd* workarounds.
- This was previous attempt to work around problems arising from different STL used for building libhlslcc (in the cross-toolchain) and possibly different STL used for building engine (on the system).
- The same problem has been resolved by bundling libc++.
Change 3543946 by Michael.Lentine
Add comparison output.
Change 3544277 by Brian.Karis
Fixed uninitialized var error
Change 3544404 by Rolando.Caloca
DR - Fix broken textures
Change 3544503 by Jian.Ru
Ensure lighting failure delegates are always called
#RB Marcus.Wassmer,Daniel.Wright
#3689
Change 3545241 by Daniel.Wright
Fixed spotlight whole scene shadows using a radius 2x too long
Change 3545347 by Daniel.Wright
Fixed shadow occlusion culling broken by shadowmap caching change. FProjectedShadowKey is now computed correctly for whole scene shadows and SDCM_StaticPrimitivesOnly shadowmaps will fall back to the query for a SDCM_MovablePrimitivesOnly, since the static primitives shadowmap's query is not issued every frame.
Change 3546196 by Marcus.Wassmer
Fix minor typo
Change 3546459 by Daniel.Wright
ULevel::PostEditChangeProperty recreates rendering resources if MapBuildData is modified - fixes a crash when Force Deleting the MapBuildData package.
Change 3546469 by Jian.Ru
Take into account CVarStaticMeshLODDistanceScale during static mesh LOD calculation
Change 3546804 by Daniel.Wright
[Copy] Added SendAllEndOfFrameUpdates draw event to wrap skin cache events
Change 3546814 by Daniel.Wright
[Copy] Only use skylight OcclusionMaxDistance for the global distance field if it casts shadows
Change 3546815 by Daniel.Wright
[Copy] Snap volumetric fog light function target resolution to a factor of 32 to avoid constant texture reallocation
Change 3546817 by Daniel.Wright
[Copy] Warmup time warning
Change 3546828 by Daniel.Wright
[Copy] Fixed UWorld::DestroyActor in PIE calling InvalidateLightingCacheDetailed which can do a FlushRenderingCommands and cause a large hitch
Change 3546836 by Daniel.Wright
[Copy] ULightComponent::InvalidateLightingCacheInner uses MarkRenderStateDirty instead of slow reregister + FlushRendingCommands, and only for lights which might have static lighting data
Change 3546849 by Rolando.Caloca
DR - vk - Fix missing samplerstates
- Fixes for structured buffers
- Add missing Draw and Dispatch Indirect
Change 3547516 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547542 by Brian.Karis
Linear time 5-coloring for planar graphs.
Brought in the Planarity library written by John Boyer, heavily edited and trimmed down to only include code necesary for graph coloring. Put behind a simple wrapper.
Change 3547563 by Brian.Karis
Fixed some compiler warnings and hopefully some errors.
Change 3547610 by Brian.Karis
Replaced macros with inlined functions
Change 3547620 by Brian.Karis
Clean up includes
Change 3547770 by Marcus.Wassmer
GPU Crash for MTBF analytics
Change 3547773 by Marcus.Wassmer
Updated doxygen comment for new analytic
Change 3548244 by Rolando.Caloca
DR - Fix for translucency
Change 3548352 by Yujiang.Wang
Added soft source radius for point and spot lights
* Soft source radius controls how 'blurry' the shape of specular lighting looks
* Implemented by LobeRoughness modification
* Better approximation for spherical lights so that they don't look sharp when the radius is large using 'smoothed representative point' method
* Suppoted LightTangent in forward shading
Change 3548530 by Brian.Karis
Fix for mac build
Change 3548770 by Rolando.Caloca
DR - vk - Prereq work for Vulkan parallel RHI contexts
Change 3548772 by Jian.Ru
Fixed an issue that caused an ensure when switching levels in D3D10. #rb Marcus.Wassmer
Change 3548865 by Daniel.Wright
With shadowmap caching of whole scene shadows, only one of the cache modes issues an occlusion query. Fixes a crash where the static primitive shadowmap is culled but the movable primitive shadowmap is visible, which is normally not possible.
Change 3548952 by Rolando.Caloca
DR - Allow separate samplers in the shaders on Vulkan
Change 3549197 by Marcus.Wassmer
Fix DX12 PIx not working in cooked builds
Change 3549209 by Daniel.Wright
Occlusion culling for CSM, from the main camera, controlled by 'r.Shadow.OcclusionCullCascadedShadowMaps'. Disabled by default as rapid view changes don't work well with latent occlusion queries.
Change 3549943 by Ben.Marsh
Include better diagnostic information when a modified build product is detected after running a build step.
Change 3550546 by Rolando.Caloca
DR - Fix merge issue
Change 3550962 by Marcus.Wassmer
EarlyZ Masking requires full depth prepass, so just force it to.
Change 3551062 by Daniel.Wright
Handle NULL skylight
Change 3551104 by Rolando.Caloca
DR - vk - Remove assert to match other platforms
Change 3551221 by Rolando.Caloca
DR - vk - Add mirror clamp to edge extension
- Fix framebuffer deletion
Change 3551224 by Daniel.Wright
Volumetric lightmap increase density around static lights affecting a voxel brighter than LightBrightnessSubdivideThreshold.
Change 3551495 by Rolando.Caloca
DR - vk - Intiial support for async queue
Change 3552101 by Rolando.Caloca
DR - vk - Fix for async
Change 3552102 by Rolando.Caloca
DR - SkinCache - Fix potential leak on staging buffers for recompute tangents
- Integrate changes from 4.17 for memory optimizations
Change 3552104 by Rolando.Caloca
DR - vk - Support for SRVs for index buffers
Change 3552838 by Rolando.Caloca
DR - vk - Enable debug markers if found
Change 3553106 by Rolando.Caloca
DR - vk - Fixes for index buffer SRVs
Change 3553107 by Rolando.Caloca
DR - vk - Enable recompute tangents on Vulkan
Change 3553154 by Rolando.Caloca
DR - vk - Fix crash with null uav
Change 3553342 by Yujiang.Wang
Fix redundant skylights in AdvancedPreviewScene
* PreviewScene was changed to using a skylight instead of ambient cubemap to support forward shading
* AdvancedPreviewScene originally had a skylight, now it is changed to using the one inherited from PreviewScene
Change 3553481 by Rolando.Caloca
DR - Integrate fix for D3D12 support of index buffers SRVs
#jira UE-47674
Change 3553715 by Rolando.Caloca
DR - Fix crash when launching PC with -featureleveles31
Change 3553725 by Rolando.Caloca
DR - Redo fix
Change 3553803 by Rolando.Caloca
DR - Shader compile fixes for ES3.1
Change 3553963 by Rolando.Caloca
DR - vk - Remove extra IRDump
Change 3554741 by Ben.Marsh
CIS fix.
Change 3555222 by Rolando.Caloca
DR - vk - static analysis fix
Change 3555362 by Rolando.Caloca
DR - vk - Prep work for separate present queue
Change 3556800 by Daniel.Wright
Fixed screenshot for simple volume material doc
Change 3556942 by Brian.Karis
Fixed Bokeh DOF regression.
Change 3556959 by Rolando.Caloca
DR - vk - Rework staging buffer peak usage
Change 3557497 by Daniel.Wright
Better display name for Unbound property on post process volume
Change 3557499 by Daniel.Wright
Disable r.GenerateLandscapeGIData by default, opt-in for kite demo. Projects that want to use heightfield GI need to opt-in to r.GenerateLandscapeGIData.
Change 3557068 by Olaf.Piesche
Configurable spawn rate scaling reference value; sets the zero-scale reference value (default: 2), so additional quality levels can be added and scaling customized further.
IMPORTANT: This sets the reference to 3 in PS4Scalability.ini; effects on PS4 are again going to have reduced spawn rates versus PC and Neo, as intended by the FX artists starting with this change.
#tests QAGame test maps
Change 3558123 by Rolando.Caloca
DR - vk - static analysis fix
Change 3558685 by Yujiang.Wang
Github #3323: Two sided foliage lightmap directionality fix
* Subsurface is not intended to work with lightmaps that don't have directionality, however we still want it to look similar to a directional one
* Now it uses a constant directionality value
#jira UE-42523
Change 3559052 by Brian.Karis
Hopefully fix static analysis
Change 3559113 by Rolando.Caloca
DR - Fix crash witrh planar reflections
Change 3559275 by Yujiang.Wang
Fix race condition on several scalability CVars between rendering thread and game thread
Change 3559612 by Rolando.Caloca
DR - vk - SM5 with uniform buffers backend support
Change 3559716 by Rolando.Caloca
DR - hlslcc - Fix linker warning on SCW debug
Change 3559768 by Rolando.Caloca
DR - vk - Keep ub names for bindings
Change 3560195 by Rolando.Caloca
DR - accessor
Change 3560275 by Rolando.Caloca
DR - vk - Support for uniform buffers
Change 3560913 by Rolando.Caloca
DR - vk - Fix static analysis
Change 3561145 by Rolando.Caloca
DR - Don't crash if out of resource table bits
Change 3561194 by Rolando.Caloca
DR - vk - Integrate timestamp fixes
Change 3562009 by Rolando.Caloca
DR - vk - Workaround for bad UTexture data
Change 3563884 by Chris.Bunner
VK_NULL_HANDLE fix.
Change 3563885 by Jian.Ru
Ignore a warning caused by enabling distance field generation so that test Cube_Blue and Cube_Section don't fail. #rb Chris.Bunner
Change 3565943 by Jian.Ru
Add extra warning log triggered when attempt to create FRWBuffer greater than 256MB in ComputeLightGrid() #rb Chris.Bunner
Change 3569479 by Michael.Lentine
Integrate rhino shader changes to dev-rendering
Change 3569511 by Michael.Lentine
Fix formating and string out on windows.
Change 3569572 by Yujiang.Wang
Fix MeasureLongGPUTaskExecutionTime crashing on AMD on Macs
Change 3569614 by Yujiang.Wang
Flush rendering commands before measuring the long GPU task's excution time to get accurate results
Change 3570524 by Jian.Ru
Add extra parentheses to avoid compilation warning #rb Chris.Bunner
Change 3570722 by Chris.Bunner
Static analysis workaround - same code, just validating compile-time assumptions a little further.
Change 3570880 by Jian.Ru
Add small depth offset to avoid depth test failing during velocity pass
#jira UE-37556
Change 3572532 by Jian.Ru
Disable a warning to let tests pass
#jira UE-48021
Change 3573109 by Michael.Lentine
Checkin Michael.Trepka's fix for external dynamic libraries on mac.
This is needed to make the build go green on mac.
Change 3573995 by Jian.Ru
Move an include out of define to let nightly build pass
Change 3574777 by Chris.Bunner
Continued merge fixes.
Change 3574792 by Rolando.Caloca
DR - Rename todo
Change 3574794 by Chris.Bunner
Re-adding includes lost in a pre-merge merge.
Change 3574879 by Michael.Trepka
Disabled a couple of Mac deprecation warnings
Change 3574932 by Chris.Bunner
Merge fix.
Change 3575048 by Michael.Trepka
Fixed iOS compile warnings
Change 3575530 by Chris.Bunner
Duplicating static analysis fix CL 3539836.
Change 3575582 by Chris.Bunner
Fixed GetDimensions return type in depth resolve shaders.
Compile error fix.
Change 3576326 by Chris.Bunner
Static analysis fixes.
Change 3576513 by Michael.Trepka
Updated Mac MCPP lib to be compatible with OS X 10.9
Change 3576555 by Richard.Wallis
Metal Validation Errors. Dummy black volume texture is in the wrong format in the Metal shader for the VolumetricLightmapIndirectionTexture. Create a new dummy texture with pixel format PF_R8G8B8A8_UINT.
#jira UE-47549
Change 3576562 by Chris.Bunner
OpenGL SetStreamSource stride updates.
Change 3576589 by Michael.Trepka
Fixed Mac CIS warnings and errors in Dev-Rendering
Change 3576708 by Jian.Ru
Fix cascade preview viewport background color not changing
#jira UE-39687
Change 3576827 by Rolando.Caloca
DR - Minor fix for licensee
Change 3576973 by Chris.Bunner
Fixing up HLSLCC language spec mismatch (potential shader compile crashes in GL and Vulkan).
Change 3577729 by Rolando.Caloca
DR - Fix for info on SCW crashes
Change 3578723 by Chris.Bunner
Fixed issue where custom material attribute was using display name as hlsl function name.
Change 3578797 by Chris.Bunner
Fixed pixel inspector crashing on high-precision normals gbuffer format.
#jira UE-48094
Change 3578815 by Yujiang.Wang
Fix for UE-48207 Orion cooked windows server crash on startup
* Crash caused by rendering features not available in a dedicated server build
* Skip over MeasureLongGPUTaskExecutionTime when !FApp::CanEvenRender()
#jira UE-48207
Change 3578828 by Daniel.Wright
Disable volumetric lightmap 3d texture creation on mobile
Change 3579473 by Daniel.Wright
Added View.SharedBilinearClampSampler and View.SharedBilinearWrapSampler. Used these to reduce base pass sampler counts with volumetric lightmaps.
Change 3580088 by Jian.Ru
Fix QAGame TM-CharacterMovement crashing on PIE
#jira UE-48031
Change 3580388 by Daniel.Wright
Fixed shadowed light injection into volumetric fog fallout from Rhino merge
Change 3580407 by Michael.Trepka
Updated Mac UnrealPak binaries
Change 3581094 by Michael.Trepka
Fix for ScreenSpaceReflections not working properly on iOS 11
Change 3581242 by Michael.Trepka
Fixed a crash on startup on Mac when launching TM-ShaderModels in QAGame
#jira UE-48255
Change 3581489 by Olaf.Piesche
Replicating CL 3578030 from Fortnite-Main to fix #jira UE-46475
#jira FORT-47068, FORT-49705
Don't inappropriaely touch game thread data on the render thread. Push SubUV cutout data into a RT side object owned by the sprite dynamic data.
#tests FN LastPerfTest
Change 3581544 by Simon.Tovey
Fix for ensure accessing cvar from task thread.
#tests no more ensure
Change 3581934 by Chris.Bunner
Fixed ConsoleVariables.ini break from merge.
Change 3581968 by Jian.Ru
Fix QAGame TM-ShaderModels PIE crash when resizing game viewport
#jira UE-48251
Change 3581989 by Richard.Wallis
Fix for NULL PrecomputedLightingBuffer. It is null for first frame request in forward rendering so should have the GEmptyPrecomputedLightingUniformBuffer set in these cases after it's been initially tried to be set not before.
#jira UE-46955
Change 3582632 by Chris.Bunner
Resolved merge error.
Change 3582722 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on GL
#jira UE-48208
Change 3584096 by Rolando.Caloca
DR - Fix for renderdoc crashing in shipping
#jira UE-46867
Change 3584245 by Jian.Ru
Fix System.Promotion.Editor.Particle Editor test crash
#jira UE-48235
Change 3584359 by Yujiang.Wang
Fix for UE-48315 Wall behind base in Monolith is flickering white in -game Orion
* Caused by dot(N, V) being negative
* Clamp to (0, 1)
#jira UE-48315
Change 3587864 by Mark.Satterthwaite
Fix the GPU hang on iOS caused by changes to the Depth-Stencil MSAA handling: you can't store the MSAA stencil results on iOS < 10 unless you use the slower MTLStoreActionStoreAndMultisampleResolve which we don't need for the mobile renderer.
#jira UE-48342
Change 3587866 by Mark.Satterthwaite
Correctly fix iOS compilation errors against Xcode 9 Beta 5 and Xcode 8.3.3 - duplicating function definitions is guaranteed to be wrong.
Change 3588168 by Mark.Satterthwaite
Move the Xcode version into the Metal shader format header, not the DDC key, so that we can handle bad compiler/driver combinations in the runtime and don't force all users to recompile every time the Xcode version changes.
Change 3588192 by Rolando.Caloca
DR - Fix d3d12 linker error when EXECUTE_DEBUG_COMMAND_LISTS is enabled
Change 3588291 by Rolando.Caloca
DR - Fix for d3d12 command list crash: Commited resources can not have aliasing barriers
#jira UE-48299
Change 3590134 by Michael.Trepka
Copy of CL 3578963
Reset automation tests timer after shader compilation when preparing for screenshots taking to make sure tests don't time out.
Change 3590405 by Rolando.Caloca
DR - hlslcc - support for sqrt(uint)
Change 3590436 by Mark.Satterthwaite
Rebuild Mac hlslcc for CL #3590405 - without the various compiler workarounds left over from before the recent code changes.
Change 3590674 by Rolando.Caloca
DR - vk - Integration from working branch
- Fixes distance field maps
- Compute pipelines stored in saved file
- Adds GRHIRequiresRenderTargetForPixelShaderUAVs for platforms that need dummy render targets
Change 3590699 by Rolando.Caloca
DR - Fix distance fields mem leak
Change 3590815 by Rolando.Caloca
DR - vk - Fixes for uniform buffers and empty resource tables
Change 3590818 by Mark.Satterthwaite
Temporarily switch back to OpenVR v1.0.6 for Mac only until I can clarify what to do about a required but missing API hook for Metal. Re-enabled and fixed compile errors with Mac SteamVR plugin code.
Change 3590905 by Mark.Satterthwaite
For Metal shader compilation where the bytecode compiler is unavailable force the debug compiler flag and disable the archiving flag because storing text requires this.
#jira UE-48163
Change 3590961 by Mark.Satterthwaite
Submitted on Richard Wallis's behalf as he's on holiday:
Mac fixes for Compute Skin Cache rendering issues (resulting in incorrect positions and tangents) and for recomputing tangents. Problem sampling from buffers/textures as floats with packed data. Some of the data appears as denorms so get flushed to zero then reinterpreted as uints via asuint or in Metal as_type<uint>(). Fix here for Metal seems to be to use uint types for the skin cache SRV's and as_type<> to floats instead.
There could be some other areas where we're unpacking via floats that could affect Metal and I'm not sure how this will impact on other platforms.
#jira UE-46688, UE-39256, UE-47215
Change 3590965 by Mark.Satterthwaite
Remove the Z-bias workaround from Metal MRT as it isn't required and actually causes more problems.
Change 3590969 by Mark.Satterthwaite
Make all Metal shader platforms compile such that half may be used, unless the material specifies full precision.
Change 3591871 by Rolando.Caloca
DR - Enable PCSS on Vulkan & Metal
- Enable capsule shadows on Vulkan
Change 3592014 by Mark.Satterthwaite
Remove support for Mac OS X El Capitan (10.11) including the stencil view workaround.
Bump the minimum Metal shader standard for Metal SM4, SM5 & Metal MRT to v1.2 (macOS 10.12 Sierra & iOS 10) so we can use FMAs and other newer shader language features globally.
Enable the new GRHIRequiresRenderTargetForPixelShaderUAVs flag as Metal is like Vulkan and needs a target for fragment rendering.
Also fix the filename for direct-compile & remove the old batch file generation in the Metal shader compiler.
Change 3592171 by Rolando.Caloca
DR - CIS fix
Change 3592753 by Jian.Ru
repeat Daniel's fix on xb1 profilegpu crash (draw events cannot live beyond present)
Change 3594595 by Rolando.Caloca
DR - Fix D3D shader compiling run time stack corruption failure on debug triggering falsely
Change 3594794 by Michael.Trepka
Call FPlatformMisc::PumpMessages() before attempting to toggle fullscreen on Mac to fix an issue on some Macs running 10.13 beta that would ignore the toggle fullscreen call freezing the app
Change 3594999 by Mark.Satterthwaite
Disable MallocBinned2 for iOS as on Rhino it worked but on iOS 10.0.2 there are bugs (munmap uses 64kb granularity, not the 4096 the code expects given the reported page-size).
While we are here remove the spurious FORCE_MALLOC_ANSI from the iOS platform header.
#jira UE-48342
Change 3595004 by Mark.Satterthwaite
Disable Metal's Deferred Store Actions and combined Depth/Stencil formats on iOS < 10.3 as there are bugs on earlier versions of iOS 10.
#jira UE-48342
Change 3595386 by Mark.Satterthwaite
Silence the deprecation warning for kIOSurfaceIsGlobal until SteamVR switches to one of the newer IOSurface sharing mechanisms.
Change 3595394 by Rolando.Caloca
DR - Added function for tracking down errors in the hlsl parser
- Added support for simple #if 0...#endif
Change 3599352 by Rolando.Caloca
DR - Fixes for HlslParser
- Added missing attributes for functions
- Fixed nested assignment
Change 3602440 by Michael.Trepka
Fixed Metal shader compilation from Windows with remote compilation disabled
#jira UE-48163
Change 3602898 by Chris.Bunner
Resaving assets.
Change 3603731 by Jian.Ru
fix a crash caused by a material destroyed before the decal component
#jira UE-48587
Change 3604629 by Rolando.Caloca
DR - Workaround for PF_R8G8B8A8_UINT on Android
#jira UE-48208
Change 3604984 by Peter.Sauerbrei
fix for orientation not being limited to that specified in the plist
#jira UE-48360
Change 3605738 by Chris.Bunner
Allow functional screenshot tests to request a camera cut (e.g. tests relying on temporal aa history).
#jira UE-48748
Change 3606009 by Mark.Satterthwaite
Correctly implement ClipDistance for Metal as an array of floats as required by the spec. and fix a few irritating issues from the merge that should not have.
- When compiling a tessellation vertex shader in the SCW direct mode we can't evaluate non-existant defines and we don't actually need to.
- The define names, values & shader file name are irrelevant to the Metal output key, but the shader format name & Metal standard really do matter - should speed up Metal shader compilation a bit.
- Move the shader vertex layer clip-distance to index 2 to avoid conflicts.
- Don't default initialise the debug code string for Metal shaders or it won't print out the actual code....
#jira UE-47663
Change 3606108 by Mark.Satterthwaite
Temporary hack to avoid a crash in AVPlayer.
#jira UE-48758
Change 3606121 by Mark.Satterthwaite
Fix Windows compilation.
Change 3606992 by Chris.Bunner
Static analysis fix.
[CL 3608256 by Marcus Wassmer in Main branch]
2017-08-24 15:38:57 -04:00
|
|
|
if (Writer.ExpressionScope != 0 && !IsAssignmentOperator(Operator))
|
2015-10-28 19:18:20 -04:00
|
|
|
{
|
|
|
|
|
Writer << (TCHAR)')';
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-31 10:55:13 -04:00
|
|
|
bool FBinaryExpression::GetConstantIntValue(int32& OutValue) const
|
|
|
|
|
{
|
|
|
|
|
int32 LHS = 0;
|
|
|
|
|
int32 RHS = 0;
|
2020-01-24 18:07:01 -05:00
|
|
|
if (!Expressions[0]->GetConstantIntValue(LHS) || !Expressions[1]->GetConstantIntValue(RHS))
|
2015-10-31 10:55:13 -04:00
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch (Operator)
|
|
|
|
|
{
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
case EOperators::LogicOr: OutValue = LHS || RHS; break;
|
|
|
|
|
case EOperators::LogicAnd: OutValue = LHS && RHS; break;
|
|
|
|
|
case EOperators::BitOr: OutValue = LHS | RHS; break;
|
|
|
|
|
case EOperators::BitXor: OutValue = LHS ^ RHS; break;
|
|
|
|
|
case EOperators::BitAnd: OutValue = LHS ^ RHS; break;
|
|
|
|
|
case EOperators::Equal: OutValue = LHS == RHS; break;
|
|
|
|
|
case EOperators::NEqual: OutValue = LHS != RHS; break;
|
|
|
|
|
case EOperators::Less: OutValue = LHS < RHS; break;
|
|
|
|
|
case EOperators::Greater: OutValue = LHS > RHS; break;
|
|
|
|
|
case EOperators::LEqual: OutValue = LHS <= RHS; break;
|
|
|
|
|
case EOperators::GEqual: OutValue = LHS >= RHS; break;
|
|
|
|
|
case EOperators::LShift: OutValue = LHS << RHS; break;
|
|
|
|
|
case EOperators::RShift: OutValue = LHS >> RHS; break;
|
|
|
|
|
case EOperators::Add: OutValue = LHS + RHS; break;
|
|
|
|
|
case EOperators::Sub: OutValue = LHS - RHS; break;
|
|
|
|
|
case EOperators::Mul: OutValue = LHS * RHS; break;
|
|
|
|
|
case EOperators::Div: OutValue = LHS / RHS; break;
|
|
|
|
|
case EOperators::Mod: OutValue = LHS % RHS; break;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
FExpressionStatement::FExpressionStatement(FLinearAllocator* InAllocator, FExpression* InExpr, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Expression(InExpr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FExpressionStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Expression->Write(Writer);
|
|
|
|
|
Writer << TEXT(";\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FExpressionStatement::~FExpressionStatement()
|
|
|
|
|
{
|
|
|
|
|
if (Expression)
|
|
|
|
|
{
|
|
|
|
|
delete Expression;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCompoundStatement::FCompoundStatement(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Statements(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCompoundStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
for (auto* Statement : Statements)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Statement->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCompoundStatement::~FCompoundStatement()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Statement : Statements)
|
|
|
|
|
{
|
|
|
|
|
if (Statement)
|
|
|
|
|
{
|
|
|
|
|
delete Statement;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFunctionDefinition::FFunctionDefinition(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Prototype(nullptr),
|
|
|
|
|
Body(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FFunctionDefinition::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteAttributes(Writer);
|
|
|
|
|
Prototype->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Body)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Body->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFunctionDefinition::~FFunctionDefinition()
|
|
|
|
|
{
|
|
|
|
|
delete Prototype;
|
|
|
|
|
delete Body;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFunction::FFunction(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
ReturnType(nullptr),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
ReturnSemantic(nullptr),
|
|
|
|
|
Parameters(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FFunction::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteAttributes(Writer);
|
|
|
|
|
Writer << TEXT("\n");
|
|
|
|
|
ReturnType->Write(Writer);
|
|
|
|
|
Writer << (TCHAR)' ';
|
|
|
|
|
Writer << Identifier;
|
|
|
|
|
Writer << (TCHAR)'(';
|
2014-12-11 15:49:40 -05:00
|
|
|
bool bFirst = true;
|
2020-01-24 18:07:01 -05:00
|
|
|
const int32 ParamsPerLine = 6;
|
|
|
|
|
for (int32 Index = 0; Index < Parameters.Num(); ++Index)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Index > 0)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
if ((Index % ParamsPerLine) == 0)
|
2015-10-28 08:58:16 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT(",\n\t\t");
|
2015-10-28 08:58:16 -04:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT(", ");
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2020-01-24 18:07:01 -05:00
|
|
|
Parameters[Index]->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 19:18:20 -04:00
|
|
|
Writer << TEXT(")");
|
2020-01-24 18:07:01 -05:00
|
|
|
if (ReturnSemantic)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
ReturnSemantic->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2019-11-04 15:54:25 -05:00
|
|
|
if (bIsDefinition)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT(";\n");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT("\n");
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFunction::~FFunction()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Param : Parameters)
|
|
|
|
|
{
|
|
|
|
|
delete Param;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FJumpStatement::FJumpStatement(FLinearAllocator* InAllocator, EJumpType InType, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Type(InType),
|
|
|
|
|
OptionalExpression(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FJumpStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
switch (Type)
|
|
|
|
|
{
|
|
|
|
|
case EJumpType::Return:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("return");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EJumpType::Break:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("break");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EJumpType::Continue:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("continue");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("*MISSING_");
|
|
|
|
|
Writer << (uint32)Type;
|
|
|
|
|
Writer << (TCHAR)'*';
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3550452 by Ben.Marsh
UAT: Improve readability of error message when an editor commandlet fails with an error code.
Change 3551179 by Ben.Marsh
Add methods for reading text files into an array of strings.
Change 3551260 by Ben.Marsh
Core: Change FFileHelper routines to use enum classes for flags.
Change 3555697 by Gil.Gribb
Fixed a rare crash when the asset registry scanner found old cooked files with package level compression.
#jira UE-47668
Change 3556464 by Ben.Marsh
UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files.
Change 3557630 by Ben.Marsh
Allow the network version to be set via Build.version if it's not overriden from Version.h.
Change 3561357 by Gil.Gribb
Fixed crashes related to loading old unversioned files in the editor.
#jira UE-47806
Change 3565711 by Graeme.Thornton
PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx)
Change 3565864 by Robert.Manuszewski
Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object.
Change 3569022 by Ben.Marsh
PR #3849: Update gitignore (Contributed by mhutch)
Change 3569113 by Ben.Marsh
Fix Japanese errors not displaying correctly in the cook output log.
#jira UE-47746
Change 3569486 by Ben.Marsh
UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set.
Change 3570483 by Graeme.Thornton
Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors
Change 3570513 by Robert.Manuszewski
Fix for a race condition with async loading thread enabled.
Change 3570664 by Ben.Marsh
UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core.
Change 3570708 by Robert.Manuszewski
Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running.
Change 3571592 by Ben.Marsh
UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available.
Change 3572215 by Graeme.Thornton
UBT
- Remove some unnecessary using directives
- Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself
Change 3572437 by Robert.Manuszewski
Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects.
#jira UE-44996
Change 3572480 by Robert.Manuszewski
MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long
Change 3573547 by Ben.Marsh
Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line.
Change 3574562 by Robert.Manuszewski
PR #3847: Add GC callbacks for script integrations (Contributed by mhutch)
Change 3575017 by Ben.Marsh
Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core.
Change 3575689 by Ben.Marsh
Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds.
Change 3575934 by Steve.Robb
Fix for nested preprocessor definitions.
Change 3575961 by Steve.Robb
Fix for nested zeros.
Change 3576297 by Robert.Manuszewski
Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread.
#jira FORT-38977
Change 3576366 by Ben.Marsh
Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated.
Change 3578290 by Graeme.Thornton
Changes to Ionic zip library to allow building on dot net core
Change 3578291 by Graeme.Thornton
Ionic zip library binaries built for .NET Core
Change 3578354 by Graeme.Thornton
Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string
Change 3578674 by Robert.Manuszewski
After loading packages flush linker cache on uncooked platforms to free precache memory
Change 3579068 by Steve.Robb
Fix for CLASS_Intrinsic getting stomped.
Fix to EClassFlags so that they are visible in the debugger.
Re-added mysteriously-removed comments.
Change 3579228 by Steve.Robb
BOM removed.
Change 3579297 by Ben.Marsh
Fix exception if a plugin lists the same module twice.
#jira UE-48232
Change 3579898 by Robert.Manuszewski
When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert.
Change 3579983 by Robert.Manuszewski
More fixes for freeing linker cache memory in the editor.
Change 3580012 by Graeme.Thornton
Remove redundant copy of FileReference.cs
Change 3580408 by Ben.Marsh
Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect.
Change 3582104 by Graeme.Thornton
Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path.
Change 3582131 by Graeme.Thornton
#define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway.
Change 3582645 by Ben.Marsh
PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola)
#jira UE-48192
Change 3583955 by Robert.Manuszewski
Support for EDL cooked packages in the editor
Change 3584035 by Graeme.Thornton
Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly.
Change 3584177 by Robert.Manuszewski
Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached)
Change 3584315 by Ben.Marsh
Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class.
Change 3584370 by Ben.Marsh
Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes.
Change 3584498 by Ben.Marsh
Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes.
Change 3585003 by Steve.Robb
Fix for TChunkedArray ranged-for iteration.
#jira UE-48297
Change 3585235 by Ben.Marsh
Remove LogEngine extern from Core; use the platform log channels instead.
Change 3585942 by Ben.Marsh
Move MessageBoxExt() implementation into application layer for platforms that require it.
Change 3587071 by Ben.Marsh
Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL.
Change 3587161 by Ben.Marsh
Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h.
Change 3587579 by Steve.Robb
Fix for Children list not being rebuilt after hot reload.
Change 3587584 by Graeme.Thornton
Logging improvements for pak signature check failures
- Added "PakCorrupt" console command which corrupts the master signature table
- Added some extra log information about which block failed
- Re-hash the master signature table and to make sure that it hasn't changed since startup
- Moved the ensure around so that some extra logging messages can make it out before the ensure is hit
- Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again
Change 3587586 by Graeme.Thornton
Changes to make UBT build and run on .NET Core
- Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups
- VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use
- After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects
Change 3587953 by Steve.Robb
Allow arbitrary UENUM initializers for enumerators.
Editor-only data UENUM support.
Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated.
#jira UE-46274
Change 3589827 by Graeme.Thornton
More fixes for VSCode project generation and for UBT running on .NET Core
- Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts
- UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel
- Added documentation for UEConsoleTraceListener
- All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files
- Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose"
- Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff
Change 3589868 by Graeme.Thornton
Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures.
UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases
Change 3589919 by Robert.Manuszewski
Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor)
Change 3589940 by Graeme.Thornton
Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths.
Change 3590078 by Graeme.Thornton
Fully disable automatic assembly info generation in .NET Core projects
Change 3590534 by Robert.Manuszewski
Marking UObject as intrinsic clas to fix a crash on UFE startup.
Change 3591498 by Gil.Gribb
UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading.
Change 3591605 by Gil.Gribb
UE4 - Follow up to fixing several edge cases in the low level async loading code.
Change 3592577 by Graeme.Thornton
.NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates
Change 3592684 by Steve.Robb
Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush.
Change 3592710 by Steve.Robb
Fix for invalid casts in ListProps command.
Some name changes in command output.
Change 3592715 by Ben.Marsh
Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default.
Change 3592767 by Gil.Gribb
UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules.
Change 3592770 by Gil.Gribb
UE4 - Fixed a race condition with async read completion in the prescence of cancels.
Change 3593090 by Steve.Robb
Better error message when there two clashing type names are found.
Change 3593697 by Steve.Robb
VisitTupleElements function, which calls a functor for each element in the tuple.
Change 3595206 by Ben.Marsh
Include additional diagnostics for missing imports when a module load fails.
Change 3596140 by Graeme.Thornton
Batch file for running MSBuild
Change 3596267 by Steve.Robb
Thread safety fix to FPaths::GetProjectFilePath().
Change 3596271 by Robert.Manuszewski
Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor
#jira UE-47535
Change 3596283 by Steve.Robb
Redundant casts removed from UHT.
Change 3596303 by Ben.Marsh
EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window.
Change 3596337 by Ben.Marsh
UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio.
Change 3596367 by Steve.Robb
Iterator checks in ranged-for on TMap, TSet and TSparseArray.
Change 3596410 by Gil.Gribb
UE4 - Improved some error messages on runtime failures in the EDL.
Change 3596532 by Ben.Marsh
UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013.
#jira UE-48119
Change 3596631 by Steve.Robb
Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder.
Change 3596807 by Ben.Marsh
Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense.
* UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables.
* Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration.
Change 3596957 by Steve.Robb
UBT can be used to write out an .objsrcmap file for use with the MapFileParser.
Renaming of ObjMap to ObjSrcMap in MapFileParser.
Change 3597213 by Ben.Marsh
Remove AutoReporter. We don't support this any more.
Change 3597558 by Ben.Marsh
UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax:
+ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar")
The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable.
Change 3597982 by Ben.Marsh
Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache).
#jira UE-47173
Change 3598045 by Ben.Marsh
UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI).
Change 3599214 by Ben.Marsh
Avoid string duplication when comparing extensions.
Change 3600038 by Steve.Robb
Fix for maps being modified during iteration in cache compaction.
Change 3600136 by Steve.Robb
GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool
Change 3600214 by Steve.Robb
More accurate error message when unsupported template parameters are provided in a TSet property.
Change 3600232 by Ben.Marsh
UBT: Force UHT to run again if the .build.cs file for a module has changed.
#jira UE-46119
Change 3600246 by Steve.Robb
GitHub #3045 : allow multiple interface definition in a file
Change 3600645 by Ben.Marsh
Convert QAGame to Include-What-You-Use.
Change 3600897 by Ben.Marsh
Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes.
Change 3601558 by Graeme.Thornton
Simple first pass VSCode editor integration plugin
Change 3601658 by Graeme.Thornton
Enable intellisense generation for VS Code project files and setup include paths properly
Change 3601762 by Ben.Marsh
UBT: Add support for adaptive non-unity builds when working from a Git repository.
The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged.
Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior:
<SourceFileWorkingSet>
<Provider>Default</Provider> <!-- May be None, Default, Git or Perforce -->
<RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. -->
<GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH -->
</SourceFileWorkingSet>
Change 3604032 by Graeme.Thornton
First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows.
Change 3604038 by Graeme.Thornton
Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor.
Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code.
Change 3604106 by Steve.Robb
GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro
Change 3604192 by Steve.Robb
GitHub #3911 : Improving ToUpper/ToLower efficiency
Change 3604273 by Graeme.Thornton
IWYU build fixes when malloc profiler is enabled
Change 3605457 by Ben.Marsh
Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it.
Change 3606720 by James.Hopkin
Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn.
Change 3606807 by Graeme.Thornton
Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741.
Change 3607026 by James.Hopkin
Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed
Change 3607142 by Graeme.Thornton
UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose.
Change 3607146 by Ben.Marsh
UGS: Fix exception due to formatting string when Perforce throws an error.
Change 3607147 by Steve.Robb
Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time.
Float and double conversion support added to int properties.
NAME_DoubleProperty added.
Fix for converting enum class enumerators > 255 to int properties.
Change 3607516 by Ben.Marsh
PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames)
Change 3610421 by Ben.Marsh
UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help.
Change 3610657 by Ben.Marsh
UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables.
Change 3611000 by Ben.Marsh
UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument.
Change 3612471 by Ben.Marsh
UBT: Move FastJSON into DotNETUtilities.
Change 3613479 by Ben.Marsh
UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator.
Change 3613910 by Ben.Marsh
UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later.
Change 3614075 by Ben.Marsh
UBT: Remove hacks for testing project file attributes by name.
Change 3614090 by Ben.Marsh
UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary.
Change 3614488 by Ben.Marsh
UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled.
Change 3614490 by Ben.Marsh
UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself.
Change 3614962 by Ben.Marsh
UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers.
Change 3615416 by Ben.Marsh
EC: Include an icon showing the overall status of a build in the grid view.
Change 3615713 by Ben.Marsh
UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder.
#jira UE-48987
Change 3616652 by Ben.Marsh
Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project.
#jira UE-49007
Change 3616680 by Ben.Marsh
Add the CodeAPI-HTML.tgz file into the installed engine build.
Change 3616767 by Ben.Marsh
Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible.
Change 3616864 by Ben.Marsh
Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended.
#jira UE-48711
Change 3619964 by Ben.Marsh
UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables.
Change 3548930 by Ben.Marsh
UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction.
Change 3558056 by Ben.Marsh
Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()).
Change 3563309 by Graeme.Thornton
Moved some common C# classes into the DotNETCommon assembly
Change 3570283 by Graeme.Thornton
Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects
Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore
Change 3572811 by Ben.Marsh
UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables).
Change 3573397 by Ben.Marsh
UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS.
Change 3575659 by Ben.Marsh
Remove CHM API documentation.
Change 3582103 by Graeme.Thornton
Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core
Removed reference to System.Windows.Form from UBT.
Change 3584113 by Ben.Marsh
Move key-mapping functionality into the InputCore module.
Change 3584278 by Ben.Marsh
Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc.
Change 3584453 by Ben.Marsh
Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms.
Change 3585301 by Ben.Marsh
Move PlatformPostInit() into an FPlatformApplicationMisc function.
Change 3587050 by Ben.Marsh
Move IsThisApplicationForeground() into FPlatformApplicationMisc.
Change 3587059 by Ben.Marsh
Move RequiresVirtualKeyboard() into FPlatformApplicationMisc.
Change 3587119 by Ben.Marsh
Move GetAbsoluteLogFilename() into FPlatformMisc.
Change 3587800 by Steve.Robb
Fixes to container visualizers for types whose pointer type isn't simply Type*.
Change 3588393 by Ben.Marsh
Move platform output devices into their own headers.
Change 3588868 by Ben.Marsh
Move creation of console, error and warning output devices int PlatformApplicationMisc.
Change 3589879 by Graeme.Thornton
All automation projects now have a reference to DotNETUtilities
Fixed a build error in the WEX automation library
Change 3590034 by Ben.Marsh
Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac).
Change 3593754 by Steve.Robb
Fix for tuple debugger visualization.
Change 3597208 by Ben.Marsh
Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees.
Change 3600163 by Ben.Marsh
UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned.
#jira UE-46725
Change 3604279 by Graeme.Thornton
Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects
Change 3606685 by James.Hopkin
Removed redundant 'Cast's (casting to either the same type or a base).
In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass.
Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp.
Change 3610950 by Ben.Marsh
UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic.
Change 3610991 by Ben.Marsh
UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line.
Change 3612342 by Ben.Marsh
UBT: Change JsonObject.Read() to take a FileReference parameter.
Change 3612362 by Ben.Marsh
UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects.
Change 3619128 by Ben.Marsh
Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures.
[CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
|
|
|
checkf(0, TEXT("Unhandled AST jump type %d!"), (int32)Type);
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (OptionalExpression)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" ");
|
|
|
|
|
OptionalExpression->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(";\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FJumpStatement::~FJumpStatement()
|
|
|
|
|
{
|
|
|
|
|
if (OptionalExpression)
|
|
|
|
|
{
|
|
|
|
|
delete OptionalExpression;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSelectionStatement::FSelectionStatement(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Condition(nullptr),
|
|
|
|
|
ThenStatement(nullptr),
|
|
|
|
|
ElseStatement(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FSelectionStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
WriteAttributes(Writer);
|
|
|
|
|
Writer << TEXT("if (");
|
|
|
|
|
Condition->Write(Writer);
|
|
|
|
|
Writer << TEXT(")\n");
|
|
|
|
|
ThenStatement->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
if (ElseStatement)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("else\n");
|
|
|
|
|
ElseStatement->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSelectionStatement::~FSelectionStatement()
|
|
|
|
|
{
|
|
|
|
|
delete Condition;
|
|
|
|
|
delete ThenStatement;
|
|
|
|
|
if (ElseStatement)
|
|
|
|
|
{
|
|
|
|
|
delete ElseStatement;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FTypeSpecifier::FTypeSpecifier(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
2015-03-04 17:00:58 -05:00
|
|
|
TypeName(nullptr),
|
|
|
|
|
InnerType(nullptr),
|
2014-12-11 15:49:40 -05:00
|
|
|
Structure(nullptr),
|
|
|
|
|
TextureMSNumSamples(1),
|
|
|
|
|
PatchSize(0),
|
|
|
|
|
bIsArray(false),
|
|
|
|
|
//bIsUnsizedArray(false),
|
|
|
|
|
ArraySize(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FTypeSpecifier::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
if (Structure)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Structure->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2019-10-21 15:47:20 -04:00
|
|
|
if (bPrecise)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT("precise ");
|
|
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TypeName;
|
2014-12-11 15:49:40 -05:00
|
|
|
if (TextureMSNumSamples > 1)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'<';
|
|
|
|
|
Writer << InnerType;
|
|
|
|
|
Writer << TEXT(", ");
|
|
|
|
|
Writer << (uint32)TextureMSNumSamples;
|
|
|
|
|
Writer << (TCHAR)'>';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else if (InnerType && *InnerType)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'<';
|
|
|
|
|
Writer << InnerType;
|
|
|
|
|
Writer << (TCHAR)'>';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bIsArray)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("[ ");
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
if (ArraySize)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
ArraySize->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("]");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FTypeSpecifier::~FTypeSpecifier()
|
|
|
|
|
{
|
|
|
|
|
if (Structure)
|
|
|
|
|
{
|
|
|
|
|
delete Structure;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ArraySize)
|
|
|
|
|
{
|
|
|
|
|
delete ArraySize;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCBufferDeclaration::FCBufferDeclaration(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Name(nullptr),
|
|
|
|
|
Declarations(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCBufferDeclaration::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("cbuffer ");
|
|
|
|
|
Writer << Name;
|
|
|
|
|
Writer << (TCHAR)'\n';
|
2014-12-11 15:49:40 -05:00
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
for (auto* Declaration : Declarations)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Declaration->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCBufferDeclaration::~FCBufferDeclaration()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Decl : Declarations)
|
|
|
|
|
{
|
|
|
|
|
delete Decl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FTypeQualifier::FTypeQualifier()
|
|
|
|
|
{
|
|
|
|
|
Raw = 0;
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FTypeQualifier::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
if (bIsStatic)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("static ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3635055)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3503468 by Marcus.Wassmer
Fix merge conflicts
Change 3537059 by Ben.Marsh
Fixing case of iOS directories, pt1
Change 3537060 by Ben.Marsh
Fixing case of iOS directories, pt2
Change 3608300 by Chris.Bunner
Added post process material to preview compile cache set to allow post process volume preview scene improvements.
Change 3608302 by Chris.Bunner
Fixed decal lifetime fading.
#jira UE-48400
Change 3608303 by Chris.Bunner
Updated default WritesAllPixels input to ignore dithering (as intended, was disabled due to isues at the time).
Fixed material instances returning their local data when not overridden.
#jira UE-48254
Change 3608455 by Mark.Satterthwaite
Enabling WorldPositionOffset requires disabling fast-math on Metal because the manually specified FMA's are not respected if one or more arguments is a literal which then leads to very different compiler optimisation between the depth-only shader and the base-pass shader. This change will only affect the way Metal compiles shaders.
#jira UE-47372
Change 3608462 by Rolando.Caloca
DR - Cloth vertex buffers no longer generate dummy vertices
Copy from 3608349 and 3608407
Change 3608491 by Rolando.Caloca
DR - hlsl - Fix crash when type was not found
Change 3608513 by Rolando.Caloca
DR - Default to real uniform buffers for Vulkan SM4 & SM5
Change 3608794 by Mark.Satterthwaite
Implement SV_DepthLessEqual (maybe right?) for Metal - seems to work in the ParallaxOcclusionMapping test map.
#jira UE-47614
Change 3608929 by Mark.Satterthwaite
Fix ambiguous expression compile error.
Change 3608991 by Mark.Satterthwaite
Fix a dumb bug when parsing the Metal compiler version that breaks Metal shader PCH generation on HFS+ volumes.
Change 3609090 by Uriel.Doyon
StaticMeshComponent and LandscapeComponent now register AO material mask and sky occlusion texture in the texture streamer.
Changing the current lighting scenario now triggers an update of the texture streamer, and a refresh of lighting data for instanced static meshes.
Added an option to the "liststreamingtextures" named UNKOWNREF allowing to inspect texture without references in the texture streamer.
BUILDMATERIALTEXTURESTREAMINGDATA now rebuild every shader in memory and mark for save those with different data.
MipBias now behaves the same way in shipping than in other builds.
Fixed texture resolution logic for editor tooltips and in game stats.
Change 3609659 by Richard.Wallis
Remove Eye Adaption Pixel Shader Workaround for macOS 10.11 (El Cap) Nividia.
#jira UE-48642
Change 3610552 by Mark.Satterthwaite
Optimise the constant-propagation pass in hlslcc by using a hash-table to reduce the cost of looking up the existing constant assignment instructions. The get_assignment_entry drops from 25% of runtime to 2.2% of runtime on a 4.2Ghz Quad i7 2017 iMac.
Change 3610662 by Rolando.Caloca
DR - hlsl - Fix for rwstructured buffer
Fix for floats printed as ints
Change 3610830 by Michael.Lentine
ByteAddressBuffer does not have a subtype.
Change 3610869 by Rolando.Caloca
DR - hlsl - Fix disambiguation between 1.r and 1.0.r
Change 3610982 by Mark.Satterthwaite
Use the correct code to dump Metal shader text for debugging at runtime.
Change 3610996 by Rolando.Caloca
DR - hlsl - Actual fix for 0.r
Change 3611312 by Rolando.Caloca
DR - Integrate: Improve performance of bokeh depth of field.
* Fewer instances with more work (higher quad count) per instance.
* Improves performance on RX 480 in the Infiltrator demo by 0.37 ms at 1080p and 0.50 ms at 1440p (average frame time over the beginning of the demo, including the hallway confrontation between the guard and the infiltrator, where heavy DOF is used).
* Similar optimizations may be possible for other systems that perform similar "instanced draws of quads" (e.g. virtual texture page table updates, lens blur, and velocity scatter).
Change 3611345 by Mark.Satterthwaite
Missed the hash-table destructor in previous change.
Change 3611372 by Rolando.Caloca
DR - vk - New barrier/layout api
Change 3611445 by Mark.Satterthwaite
Fix stupid bugs in MetalBackend's LoadRWBuffer helper function where the wrong type was being used - won't fix problems in the LinearTexture case though.
Change 3611686 by Mark.Satterthwaite
Remove the sampler from the Metal Linear Texture SRV path as for reasons so far unknown it doesn?╟╓t work with the light grid culling.
#jira UE-48881
Change 3611743 by Mark.Satterthwaite
Implement early depth test for Metal - it is implemented such that manual specification of the SV_Depth* outputs will elide the early_fragment_test qualifier as Metal does not permit both at present.
Change 3611746 by Mark.Satterthwaite
Use early fragment tests implicitly unless we perform a direct resource write or use discard - explicit depth writes always disable early fragment tests as Metal doesn?╟╓t allow both. This should better match D3D driver behaviour.
Change 3611756 by Mark.Satterthwaite
Missed a header file in last commit.
Change 3611836 by Mark.Satterthwaite
Fixed the use of Metal?╟╓s capture manager so that it doesn?╟╓t capture more frames than intended.
Change 3611843 by Mark.Satterthwaite
Tidy up the handling of when to increment the frame count for the Metal capture manager.
Change 3612279 by Michael.Lentine
Move FP16 Math to Public so that it can be included as part of platform which is where the other float/half defines happen.
Change 3612595 by Rolando.Caloca
DR - hlslcc - Rebuilt with CL 3611345
Change 3612665 by Rolando.Caloca
DR - Make cubemap mip barrier consistent with HZB mip barriers
Change 3612758 by Daniel.Wright
FColor usage comment
Change 3612980 by Rolando.Caloca
DR - hlsl - Do not overflow ints
Change 3613068 by Rolando.Caloca
DR - vk - Initial fix for transition validation warnings
Change 3613115 by Daniel.Wright
Volumetric lightmap voxels are now always cubes
Bricks outside of any Lightmass Importance Volume will never be refined
Change 3613124 by zachary.wilson
Enabling Eye-Adaptation in TM-ShaderModels.
Change 3613205 by Mark.Satterthwaite
Fully disable linear textures in Metal - they simply aren't performant. Instead we'll have to use helper functions to dynamically type-cast appropriately within the shader. This is currently only configured for a handful of UAV types and will need to be extended.
Change 3613208 by Mark.Satterthwaite
Add code to MetalBackend to promote half types to float for math operations to avoid compiler errors.
Change 3613354 by zachary.wilson
Fixing up the Bloom_FFT map. Renaming to fit qa conventions, updating content and improving workflow.
Change 3613409 by Rolando.Caloca
DR - vk - Layout as part of descriptor writes
Some access flag warning fixes
Change 3613518 by Daniel.Wright
Added 'Render Unbuilt Preview Shadows in game' rendering project setting and r.Shadow.UnbuiltPreviewInGame cvar
Change 3613610 by Daniel.Wright
Volumetric lightmap visualization sphere size is now a fraction of the corresponding brick world size
Change 3613651 by Daniel.Wright
[Copy] Fixed landscape in the Global Distance field on PS4. Multiple updates to a vertex buffer using BUF_Dynamic cause a race condition on PS4 with no assert.
Also added shrinking for GDistanceFieldUploadData which saved 15Mb.
Change 3613696 by Mark.Satterthwaite
Add the Metal SRV format for Index buffers so that they can be properly type-cast inside the shader. Fixes recompute tangents with latest changes.
Change 3613697 by Rolando.Caloca
DR - vk - Fix missing layout
Change 3613922 by Rolando.Caloca
DR - vk - Some fixes for layout/transitions
- Disable GSupportsDepthFetchDuringDepthTest on desktop as the deferred renderer is not copying the aux depth in the right spot and will be removed
Change 3614009 by Mark.Satterthwaite
TPS Approved: Integrating the MIT-licensed mtlpp C++ Metal wrapper from Nikolay Aleksiev which will slowly replace previous Metal API wrappers in MetalRHI.
Change 3614015 by Mark.Satterthwaite
Initial extensions to mtlpp:
- Fixed over retention of alloc-init'd objects.
- Added 10_13 & 11_0 availablity macros.
- Started, but have not yet finished adding new Metal API function wrappers.
Change 3614909 by Rolando.Caloca
DR - Fix static analysis
Change 3614916 by Michael.Lentine
Add function to convert FP32 to FP16
Change 3614957 by Mark.Satterthwaite
mtlpp declarations for macOS 10.13 & iOS 11 Metal features - no matching definitions yet.
Change 3614995 by Mark.Satterthwaite
Revert all changes to project config's from Rhino that should not have come back to Dev-Rendering, keeping only the solitary change to Metal shader standard necessary for ShowdownDemo.
Change 3615035 by Rolando.Caloca
DR - Generate mips using shader for HZB
Change 3615561 by Rolando.Caloca
DR - Fix deprecation warning
Change 3615787 by Mark.Satterthwaite
Only emit min. OS version specification into the Metal shader bytecode for macOS as we share shaders between iOS & tvOS and this option inhibts that.
#jira UE-48919
Change 3616317 by Mark.Satterthwaite
Make TonemapperConfBitmaskPC the proper size so we dn't attempt to access uninitialized memory.
Change 3616357 by Mark.Satterthwaite
And fix some compile errors...
Change 3616473 by Rolando.Caloca
DR - Render pass api minor changes
Change 3616518 by Mark.Satterthwaite
Fix a merge snafu where dead code was retained where it shouldn't be.
#jira UE-48472
Change 3616706 by Rolando.Caloca
DR - Vulkan fixes (integration from Vulkan working branch)
- Fix for editor outline
- Fix for profilegpu
Change 3616770 by Rolando.Caloca
DR - vk - Mark GIsGPUCrashed on device lost
Change 3616993 by Daniel.Wright
IndirectLightingCacheQuality respects VolumetricLightingMethod
Change 3616996 by Daniel.Wright
Volumetric Lightmap show flag is respected by Volumetric Fog
Change 3616999 by Daniel.Wright
Fixed ObjectRadius in Volume domain materials
Change 3617777 by Rolando.Caloca
DR - Fix static analysis warning
Change 3617863 by Guillaume.Abadie
PR #3875: Removed Duplicated "RHI" Module Dependency (Contributed by DavidNSilva)
#jira UE-48159
Change 3618133 by Rolando.Caloca
DR - vk - Set general layout for compute shader resources
- Assume transitions to writable imply end render pass
Change 3618292 by Michael.Lentine
Add support for Expressions, Jump Statments, and Structs.
Change 3618326 by Rolando.Caloca
DR - vk - Fix transition flags
Change 3618408 by Daniel.Wright
Lightmass skylight solver improvements
* Lightmass uses a filtered cubemap to represent the skylight instead of a 3rd order Spherical Harmonic. Directionality in shadowed areas is improved. Mip level is chosen based on the ray differential for anti-aliasing.
* Multiple skylight and emissive bounces are now supported with a radiosity solver, controlled by NumSkyLightingBounces in Lightmass WorldSettings. More bounces results in longer build times, and the radiosity time is not distributable.
* The mapping surface cache is now rasterized with supersampling, reduces incorrect darkness in corners
* Combined direct lighting, photon irradiance, skylight radiosity and diffuse in the mapping surface cache so final gather rays only have to do one memory fetch, speeds up lighting builds by 7%.
* Added support for Embree packet tracing although no solver algorithms use it yet
Change 3618413 by Daniel.Wright
Swarm hands out the most expensive tasks in roughly a round robin ordering among distribution agents. Lightmass processing of a single task is multithreaded, so ideally the most expensive tasks are evenly distributed among active agents. This has the biggest impact in small scenes with 10's of high resolution lightmaps, and with a distribution farm. Build time in one scene went from to 113s -> 47s.
Change 3618439 by Mark.Satterthwaite
Fix the assert in hlslcc when we have saturate(int) and the shader language spec. supports a native saturate intrinsic.
Change 3618468 by Rolando.Caloca
DR - vk - Fix copy to non render target surface
Change 3618696 by Daniel.Wright
Worked around Lightmass crash callstacks not getting reported back to the editor
Change 3618779 by Mark.Satterthwaite
mtlpp definitions for a few of the new calls & fixing the max. number of samplers it assumes.
Change 3618789 by Daniel.Wright
Added missing file
Change 3618816 by Daniel.Wright
Another missing file
Change 3618855 by Rolando.Caloca
DR - vk - Show user debug markers when using dump layers
- Remove old defines
Change 3618887 by Rolando.Caloca
DR - Fix for missing transition to readable for blur widget. Was causing corruption on Vulkan.
Change 3618999 by Mark.Satterthwaite
Definitions for Metal's new CaptureManager & CaptureScope classes.
Change 3619790 by Jian.Ru
Add some debug info
#jira UE-48710
Change 3619834 by Rolando.Caloca
DR - vk - static analysis fix
Change 3619952 by Rolando.Caloca
DR - vk - Static analysis not smart enough...
Change 3620191 by Jian.Ru
Revert 3584245 to prevent focus stealing
#jira UE-49044
Change 3620402 by Mark.Satterthwaite
Remaining Metal definitions for mtlpp.
Change 3620803 by Brian.Karis
Removed faceting bug I introduced to Dither Opacity Mask. Removes the attempt to make opacity stack properly.
Change 3620904 by Michael.Lentine
Change the order of static and const
Change 3620975 by Rolando.Caloca
DR - Updated Vulkan headers to SDK 1.0.57.0
Change 3621026 by Rolando.Caloca
DR - Remove unused type
- Force recompile with new Vulkan headers
Change 3621070 by Rolando.Caloca
DR - glslang - Fix pdb option
Change 3621157 by Arciel.Rekman
Added files to cross-build glslang on Windows.
(Edigrating //UE4/Main/...@3621127 to //UE4/Dev-Rendering/...)
Change 3621194 by Rolando.Caloca
DR - glslang - Update to 1.0.57.0
- Fix some tab/whitespace mismatch
Change 3621225 by Rolando.Caloca
DR - Revert glslang (Back out changelist 3621194)
Change 3621254 by Mark.Satterthwaite
Duplicate 3610656 and revert the incorrect merge from the Rhino task stream. Fixes EyeAdaptation on all clang platforms properly thanks to RCL.
Change 3621261 by Mark.Satterthwaite
Trivial FMetalStateCache optimisations - won't help much but equally they shouldn't hurt.
Change 3621262 by Mark.Satterthwaite
Correct the handling of MSAA target in Desktop Forward for iOS - now the problem is that iOS always creates an internal resolve target so which texture to bind depends on the shader parameter type. Not sure (yet) how best to solve that.
Change 3621263 by Mark.Satterthwaite
Don't mandate Mobile Metal for projects that have Metal MRT enabled.
Change 3621301 by Rolando.Caloca
DR - Unity build fix
Change 3621349 by Mark.Satterthwaite
Fix a bug in MetalBackend that was omitting the depth-output variable from the hlslcc signature if the semantic was SV_DepthLessEqual rather than SV_Depth.
Change 3621546 by Uriel.Doyon
Refactor of the texture 2D mip update logic to offload more work on the async thread.
#jira UE-45332
#jira UE-45789
Change 3622210 by Rolando.Caloca
DR - Do not store DDC data if static mesh failed to build
#jira UE-48358
Change 3622349 by Arciel.Rekman
Better build script for Linux glslang and a bugfix.
(Edigrating CL 3622235 from //UE4/Main/... to //UE4/Dev-Rendering/...)
Change 3622401 by Rolando.Caloca
DR - vk - Integration
- Support for r.Vulkan.ProfileCmdBuffers
Change 3622506 by Rolando.Caloca
DR - vk - Back out changelist 3622401
Change 3622521 by Mark.Satterthwaite
Support disabling V-Sync in MetalRHI on macOS 10.13+.
Change 3622910 by Rolando.Caloca
DR - static analysis fix
Change 3622964 by Mark.Satterthwaite
Fix generation of .metallib on local Macs and exclude .metallib files from the pak - they must always be loaded from disk.
#jira UE-48193
Change 3622986 by Mark.Satterthwaite
A couple more trivial optimisations to MetalRHI for iOS:
- Metal page size is 4k but only buffers under 512 bytes should go through set*Bytes on iOS to balance CPU cost.
- On iOS the minimum buffer size should therefore be 1k and on Mac 4k as nothing else makes much sense.
- No need to rebind uniform buffers if to the same slot - it just wastes cycles.
Change 3623266 by Rolando.Caloca
DR - Fix GL4 rendering
#jira UE-49187
Change 3623377 by Daniel.Wright
Volume materials applied to static meshes operate on the object's bounding sphere
Change 3623427 by Mark.Satterthwaite
Fix MetalViewport compile errors on Xode 8.3.
#jira UE-49231
Change 3623443 by Daniel.Wright
Fixed out of bounds crash in lightmass
Change 3623751 by Daniel.Wright
Volume materials on static meshes now voxelize the mesh's Object space bounding box
Change 3625142 by Guillaume.Abadie
PR #2992: Fixing aspect ratio issue of SceneCapture2D rendering in "Ortho" camera mode (Contributed by monsieurgustav)
Change 3625983 by Jian.Ru
Fix a LPV race condtion due to parallel RSM draw-call submission
#jira UE-48247
Change 3626015 by Jian.Ru
Small fix to 3625983
Change 3626294 by Michael.Trepka
Copy of CL 3535792 and 3576637
Added support for changing monitor's display mode on Mac in fullscreen mode. This greatly improves performance on Retina screens when playing in resolutions lower than native.
Fixed a problem with incorrect viewport size being set in windowed fullscreen in some cases. Also, slightly improved screen fades for fullscreen mode transitions on Mac.
#jira UE-48018
Change 3626532 by Marcus.Wassmer
Fix divide by 0 crash when GPU timing frequency not available for whatever reason.
Change 3626548 by Ryan.Brucks
KismetRenderingLibrary: Added EditorOnly function for creating static textures from Render Targets. Has options for Mip and Compression Settings
Change 3626874 by Mark.Satterthwaite
Fix Metal 2.0 compilation.
Change 3626997 by Rolando.Caloca
DR - vk - cis fix
- Initial RGBA16 readback
Change 3627016 by Mark.Satterthwaite
Workaround more of Metal's unfortunate tendency to re-associate float mul/add/sub operations - this time from Metal's own standard-library.
Change 3627040 by Brian.Karis
Removed old rasterized deferred reflection env path.
Removed reflection compute shader. Replaced with PS. Small perf gain.
Change 3627055 by Mark.Satterthwaite
No MSAA support on Intel Metal or iOS Desktop Forward for the moment as neitehr work and I don't want to have lots of crashes out in the wild until we have a solution.
Change 3627057 by Mark.Satterthwaite
Make SCW's directcompile not fall over with Metal when there are compilation errors.
Change 3627083 by Mark.Satterthwaite
Invalidate Metal shaders so QA testing picks up the most recent changes.
Change 3627788 by Chris.Bunner
[Duplicate, CL 3627751] - VisibleExpressions static switch value evaluation needs to handle reroute nodes rather than only verify first expression.
Change 3627834 by Rolando.Caloca
DR - cis fix
Change 3627847 by Rolando.Caloca
DR - 4th try to fix static analysis
Change 3627877 by Guillaume.Abadie
Works arround a HLSLCC bug in a SimpleComposure project's material where x != x does not work for an unknown reason yet.
#jira UE-48063
Change 3628035 by Marcus.Wassmer
Duplicate 3620990
Smarter scenecapture allocation behavior.
Change 3628204 by Daniel.Wright
Fixed denormalization scale on one of the 2nd SH band of volumetric lightmaps
Change 3628217 by Mark.Satterthwaite
Fix InfiltratorForward project defaults so that iOS will package.
Change 3628515 by Arne.Schober
DR - [UE-49213] - Fix case where HZB was not generated for SSR and SSAO when Occlusion culling was disabled.
#RB Marcus.Wassmer
Change 3628550 by Chris.Bunner
Merge fixes.
Change 3628597 by Chris.Bunner
Merge fixes.
Change 3628656 by Michael.Trepka
One more workaround for a bug in StandardPlatformString.cpp. It doesn't handle %lf format correctly, parsing it as long double instead of ignoring the 'l' format sub-specifier.
Change 3628685 by Daniel.Wright
CPU interpolation of Volumetric Lightmaps for the mobile renderer. They use a scene cache based on interpolation position, since the precomputed lighting buffer for movable objects is recreated every frame.
Change 3629094 by Ryan.Brucks
Fixes to RenderTargetCreateStaticTexture2DEditorOnly with additional error checks
#RB none
Change 3629223 by Rolando.Caloca
DR - Rollback //UE4/Dev-Rendering/Engine/Source/Runtime/VulkanRHI to changelist 3627847
Change 3629491 by Rolando.Caloca
DR - Revert back to emulated uniform buffers on SM4/SM5
Change 3629663 by Daniel.Wright
Fixed NaN when capsule shadow direction is derived from volumetric lightmap with completely black lighting
Change 3629664 by Daniel.Wright
Don't render dynamic indirect occlusion from mesh distance fields when operating on a movable skylight, since DFAO fills that role
Change 3629708 by Rolando.Caloca
DR - vk - Redo some changes from DevMobile
3601439
3604186
3606672
3617383
3617474
3617483
Change 3629770 by Mark.Satterthwaite
Fix a mobile Metal shader compilation error when using the FMA workaround for "cross" which should only be applied if the min. Metal version is 1.2 (as FMA is not known to work prior to this).
Change 3629793 by Daniel.Wright
Fixed VolumetricLightmapDetailCellSize not being respected in small levels, causing too much volumetric lightmap density and memory
Change 3629859 by Mark.Satterthwaite
macOS 10.12 also had problems with MSAA in forward rendering - so only permit it to work on macOS 10.13 and above.
Change 3630790 by Mark.Satterthwaite
Move RHISupportsMSAA so that the Metal related complications for when it is viable can be hidden within.
Change 3630990 by Rolando.Caloca
DR - vk - Redid CL 3617437 (optimize number of Buffer Views, eg 165 to 58)
Change 3631071 by Mark.Satterthwaite
Fix a small gotcha in a change from Dev-Mobile: for MetalRHI we need to explicitly configure the ShaderCacheContext for the immediate/device context after initialising the shader-cache.
#jira UE-49431
Change 3631076 by Rolando.Caloca
DR - vk - Redo 3617574, reduce number of render pass objects created
Change 3631250 by Mark.Satterthwaite
Make another Metal warning a Verbose log instead as it isn't interesting unless you are me.
Change 3631911 by Chris.Bunner
Back out changelist 3628035.
#jira UE-49364, UE-49365
Change 3632041 by Mark.Satterthwaite
Fix cloth rendering on Metal - some of the data in FClothVertex is uint but we load it from a float buffer. This could be due to a bug in Metal's as_type<uint4>() or it could be that Xcode 9's compiler is now finally enforcing Metal's official flush-to-zero-on-load semantics for denorms - it isn't immediately obvious.
#jira UE-49439
Change 3632261 by Brian.Karis
SM4 fallback for reflection captures.
Change 3632281 by Mark.Satterthwaite
Fix an intermittent assert on startup when the AVFoundation movie player gets the QAGame TM-ShaderModels video ready to play prior to the rendering thread being back online when resizing the window. This is done by deferring the processing of AVFoundation events to the game-thread where it won't cause a threading violation.
Change 3632382 by Rolando.Caloca
DR - vk - Fix clang warning
Change 3633338 by Chris.Bunner
Static analysis/Linux compile fix.
#jira UE-49502
Change 3633616 by Jian.Ru
Force alpha to 0xff for functional UI screenshot tests
#jira UE-48266
Change 3633818 by Daniel.Wright
Better indirection texture clamping and asserts
Change 3634319 by Mark.Satterthwaite
Stop FVolumetricLightmapDataLayer ::Discard which is invoked by the Editor RHI during texture-upload from chucking the backing data when in the Editor - because if we do that then cooking will serialise an empty array. This was only apparent on Mac because Metal always invokes Discard on BulkDataInterfaces and D3D11 never does.
#jira UE-49381
Change 3634613 by Rolando.Caloca
DR - Call discard on bulk data for textures
#jira UE-49533
Change 3634654 by Mark.Satterthwaite
Fixes for broken iOS builds:
- Fix RHIGetShaderLanguageVersion returning the wrong version for iOS Metal if the Mac version had already been queried - this has been wrong for a long while.
- Remove the precise:: qualifier for Metal's fma intrinsic - it isn't necessary and breaks on older OSes.
#jira UE-49381
Change 3634820 by Mark.Satterthwaite
Change the hash-function for the preprocessed HLSL source in FMetalShaderOutputCooker to reduce risk of hash-collisions. Fixes one cause of UE-49381 and reveals an underlying driver bug on iOS 9 with runtime-compiled text shaders *only*.
#jira UE-49381
Change 3634821 by Mark.Satterthwaite
Force Metal shaders only to recompile by incrementing the format version.
[CL 3635058 by Chris Bunner in Main branch]
2017-09-09 16:29:11 -04:00
|
|
|
if (bConstant)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT("const ");
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-04 17:00:58 -05:00
|
|
|
if (bShared)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("groupshared ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
else if (bIn && bOut)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("inout ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else if (bIn)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("in ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else if (bOut)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("out ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-03-04 17:00:58 -05:00
|
|
|
if (bLinear)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("linear ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
if (bCentroid)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("centroid ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
if (bNoInterpolation)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("nointerpolation ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
if (bNoPerspective)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("noperspective ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
if (bSample)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("sample ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bRowMajor)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("row_major ");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
2019-11-04 15:54:25 -05:00
|
|
|
|
|
|
|
|
if (PrimitiveType)
|
|
|
|
|
{
|
|
|
|
|
Writer << PrimitiveType;
|
|
|
|
|
Writer << (TCHAR)' ';
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFullySpecifiedType::FFullySpecifiedType(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Specifier(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FFullySpecifiedType::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Qualifier.Write(Writer);
|
|
|
|
|
Specifier->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FFullySpecifiedType::~FFullySpecifiedType()
|
|
|
|
|
{
|
|
|
|
|
delete Specifier;
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
FSemanticSpecifier::FSemanticSpecifier(FLinearAllocator* InAllocator, FSemanticSpecifier::ESpecType InType, const FSourceInfo& InInfo) :
|
2019-06-11 18:27:07 -04:00
|
|
|
FNode(InAllocator, InInfo),
|
2020-01-24 18:07:01 -05:00
|
|
|
Arguments(InAllocator),
|
|
|
|
|
Type(InType),
|
|
|
|
|
Semantic(nullptr)
|
2019-06-11 18:27:07 -04:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
FSemanticSpecifier::FSemanticSpecifier(FLinearAllocator* InAllocator, const TCHAR* InSemantic, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Arguments(InAllocator),
|
|
|
|
|
Type(FSemanticSpecifier::ESpecType::Semantic)
|
|
|
|
|
{
|
|
|
|
|
Semantic = InAllocator->Strdup(InSemantic);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSemanticSpecifier::~FSemanticSpecifier()
|
2019-06-11 18:27:07 -04:00
|
|
|
{
|
|
|
|
|
for (FExpression* Expr : Arguments)
|
|
|
|
|
{
|
|
|
|
|
delete Expr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
void FSemanticSpecifier::Write(FASTWriter& Writer) const
|
2019-06-11 18:27:07 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT(" : ");
|
|
|
|
|
switch (Type)
|
2019-06-11 18:27:07 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
case ESpecType::Semantic:
|
|
|
|
|
Writer << Semantic;
|
|
|
|
|
Writer << TEXT(" ");
|
|
|
|
|
break;
|
|
|
|
|
case ESpecType::Register:
|
|
|
|
|
Writer << TEXT("register");
|
|
|
|
|
break;
|
|
|
|
|
case ESpecType::PackOffset:
|
|
|
|
|
Writer << TEXT("packoffset");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
Writer << *FString::Printf(TEXT("<Unknown Type value %d!>"), (int32)Type);
|
|
|
|
|
}
|
|
|
|
|
if (Arguments.Num() > 0)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT("(");
|
|
|
|
|
for (int32 Index = 0, Num = Arguments.Num(); Index < Num; ++Index)
|
|
|
|
|
{
|
|
|
|
|
Arguments[Index]->Write(Writer);
|
|
|
|
|
if (Index + 1 < Num)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT(", ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Writer << TEXT(")");
|
2019-06-11 18:27:07 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
FDeclaration::FDeclaration(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Identifier(nullptr),
|
|
|
|
|
Semantic(nullptr),
|
|
|
|
|
bIsArray(false),
|
|
|
|
|
ArraySize(InAllocator),
|
|
|
|
|
Initializer(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FDeclaration::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteAttributes(Writer);
|
|
|
|
|
Writer << Identifier;
|
2014-12-11 15:49:40 -05:00
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteOptionArraySize(Writer, bIsArray, ArraySize);
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
if (Initializer)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" = ");
|
|
|
|
|
Initializer->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Semantic)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Semantic->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FDeclaration::~FDeclaration()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Expr : ArraySize)
|
|
|
|
|
{
|
|
|
|
|
delete Expr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Initializer)
|
|
|
|
|
{
|
|
|
|
|
delete Initializer;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FDeclaratorList::FDeclaratorList(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Type(nullptr),
|
|
|
|
|
Declarations(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
void FDeclaratorList::WriteNoEOL(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteAttributes(Writer);
|
2019-11-04 15:54:25 -05:00
|
|
|
if (bTypedef)
|
|
|
|
|
{
|
|
|
|
|
Writer << TEXT("typedef ");
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Type)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Type->Write(Writer);
|
2015-10-28 19:18:20 -04:00
|
|
|
Writer << TEXT(" ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool bFirst = true;
|
|
|
|
|
for (auto* Decl : Declarations)
|
|
|
|
|
{
|
|
|
|
|
if (bFirst)
|
|
|
|
|
{
|
|
|
|
|
bFirst = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(", ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Decl->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT(";");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FDeclaratorList::Write(FASTWriter& Writer) const
|
|
|
|
|
{
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
|
|
|
|
|
WriteNoEOL(Writer);
|
|
|
|
|
|
|
|
|
|
Writer << TEXT("\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FDeclaratorList::~FDeclaratorList()
|
|
|
|
|
{
|
|
|
|
|
delete Type;
|
|
|
|
|
|
|
|
|
|
for (auto* Decl : Declarations)
|
|
|
|
|
{
|
|
|
|
|
delete Decl;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
FExpressionList::FExpressionList(FLinearAllocator* InAllocator, FExpressionList::EType InType, const FSourceInfo& InInfo) :
|
|
|
|
|
FExpression(InAllocator, EOperators::ExpressionList, InInfo),
|
|
|
|
|
Type(InType)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
void FExpressionList::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
switch (Type)
|
|
|
|
|
{
|
|
|
|
|
case EType::Braced: Writer << TEXT("{"); break;
|
|
|
|
|
case EType::Parenthesized: Writer << TEXT("("); break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
bool bFirst = true;
|
|
|
|
|
for (auto* Expr : Expressions)
|
|
|
|
|
{
|
|
|
|
|
if (bFirst)
|
|
|
|
|
{
|
|
|
|
|
bFirst = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(", ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Expr->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2020-01-24 18:07:01 -05:00
|
|
|
switch (Type)
|
|
|
|
|
{
|
|
|
|
|
case EType::Braced: Writer << TEXT("}"); break;
|
|
|
|
|
case EType::Parenthesized: Writer << TEXT(")"); break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FParameterDeclarator::FParameterDeclarator(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Type(nullptr),
|
2015-11-18 09:31:10 -05:00
|
|
|
Identifier(nullptr),
|
|
|
|
|
Semantic(nullptr),
|
2014-12-11 15:49:40 -05:00
|
|
|
bIsArray(false),
|
|
|
|
|
ArraySize(InAllocator),
|
|
|
|
|
DefaultValue(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FParameterDeclarator::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteAttributes(Writer);
|
|
|
|
|
Type->Write(Writer);
|
|
|
|
|
Writer << (TCHAR)' ' << Identifier;
|
2014-12-11 15:49:40 -05:00
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
WriteOptionArraySize(Writer, bIsArray, ArraySize);
|
2014-12-11 15:49:40 -05:00
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
if (Semantic)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Semantic->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (DefaultValue)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" = ");
|
|
|
|
|
DefaultValue->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FParameterDeclarator* FParameterDeclarator::CreateFromDeclaratorList(FDeclaratorList* List, FLinearAllocator* Allocator)
|
|
|
|
|
{
|
|
|
|
|
check(List);
|
|
|
|
|
check(List->Declarations.Num() == 1);
|
|
|
|
|
|
|
|
|
|
auto* Source = (FDeclaration*)List->Declarations[0];
|
|
|
|
|
auto* New = new(Allocator) FParameterDeclarator(Allocator, Source->SourceInfo);
|
|
|
|
|
New->Type = List->Type;
|
|
|
|
|
New->Identifier = Source->Identifier;
|
|
|
|
|
New->Semantic = Source->Semantic;
|
|
|
|
|
New->bIsArray = Source->bIsArray;
|
|
|
|
|
New->ArraySize = Source->ArraySize;
|
|
|
|
|
New->DefaultValue = Source->Initializer;
|
|
|
|
|
return New;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FParameterDeclarator::~FParameterDeclarator()
|
|
|
|
|
{
|
|
|
|
|
delete Type;
|
|
|
|
|
|
|
|
|
|
for (auto* Expr : ArraySize)
|
|
|
|
|
{
|
|
|
|
|
delete Expr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (DefaultValue)
|
|
|
|
|
{
|
|
|
|
|
delete DefaultValue;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FIterationStatement::FIterationStatement(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, EIterationType InType) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Type(InType),
|
|
|
|
|
InitStatement(nullptr),
|
|
|
|
|
Condition(nullptr),
|
|
|
|
|
RestExpression(nullptr),
|
|
|
|
|
Body(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FIterationStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
WriteAttributes(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
switch (Type)
|
|
|
|
|
{
|
|
|
|
|
case EIterationType::For:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("for (");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (InitStatement)
|
|
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
auto* DeclList = InitStatement->AsDeclaratorList();
|
|
|
|
|
if (DeclList)
|
2015-10-28 08:58:16 -04:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
DeclList->WriteNoEOL(Writer);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
InitStatement->Write(Writer);
|
|
|
|
|
Writer << TEXT(";");
|
2015-10-28 08:58:16 -04:00
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT(" ;");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT(" ");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Condition)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Condition->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2020-01-24 18:07:01 -05:00
|
|
|
Writer << TEXT("; ");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (RestExpression)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
RestExpression->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2020-01-24 18:07:01 -05:00
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(")\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Body)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Body->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-03-04 17:00:58 -05:00
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
2015-03-04 17:00:58 -05:00
|
|
|
}
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EIterationType::While:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("while (");
|
|
|
|
|
Condition->Write(Writer);
|
|
|
|
|
Writer << TEXT(")\n");
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Body)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Body->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EIterationType::DoWhile:
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("do\n");
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
if (Body)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Body->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("while (");
|
|
|
|
|
Condition->Write(Writer);
|
|
|
|
|
Writer << TEXT(");\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3620134)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3550452 by Ben.Marsh
UAT: Improve readability of error message when an editor commandlet fails with an error code.
Change 3551179 by Ben.Marsh
Add methods for reading text files into an array of strings.
Change 3551260 by Ben.Marsh
Core: Change FFileHelper routines to use enum classes for flags.
Change 3555697 by Gil.Gribb
Fixed a rare crash when the asset registry scanner found old cooked files with package level compression.
#jira UE-47668
Change 3556464 by Ben.Marsh
UGS: If working in a virtual stream, use the name of the first non-virtual ancestor for writing version files.
Change 3557630 by Ben.Marsh
Allow the network version to be set via Build.version if it's not overriden from Version.h.
Change 3561357 by Gil.Gribb
Fixed crashes related to loading old unversioned files in the editor.
#jira UE-47806
Change 3565711 by Graeme.Thornton
PR #3839: Make non-encoding specific Base64 functions accessible (Contributed by stfx)
Change 3565864 by Robert.Manuszewski
Temp fix for a race condition with the async loading thread enabled - caching the linker in case it gets removed (but not deleted) from super class object.
Change 3569022 by Ben.Marsh
PR #3849: Update gitignore (Contributed by mhutch)
Change 3569113 by Ben.Marsh
Fix Japanese errors not displaying correctly in the cook output log.
#jira UE-47746
Change 3569486 by Ben.Marsh
UGS: Always sync the Enterprise folder if the selected .uproject file has the "Enterprise" flag set.
Change 3570483 by Graeme.Thornton
Minor C# cleanups. Removing some redundant "using" calls which also cause dotnetcore compile errors
Change 3570513 by Robert.Manuszewski
Fix for a race condition with async loading thread enabled.
Change 3570664 by Ben.Marsh
UBT: Use P/Invoke to determine number of physical processors on Windows rather than using WMI. Starting up WMIC adds 2.5 seconds to build times, and is not compatible with .NET core.
Change 3570708 by Robert.Manuszewski
Added ENABLE_GC_OBJECT_CHECKS macro to be able to quickly toggle UObject pointer checks in shipping builds when the garbage collector is running.
Change 3571592 by Ben.Marsh
UBT: Allow running with -installed without creating [InstalledPlatforms] entries in BaseEngine.ini. If there is no HasInstalledPlatformInfo=true setting, assume that all platforms are still available.
Change 3572215 by Graeme.Thornton
UBT
- Remove some unnecessary using directives
- Point SN-DBS code at the new Utils.GetPhysicalProcessorCount call, rather than trying to calculate it itself
Change 3572437 by Robert.Manuszewski
Game-specific fix for lazy object pointer issues in one of the test levels. The previous fix had to be partially reverted due to side-effects.
#jira UE-44996
Change 3572480 by Robert.Manuszewski
MaterialInstanceCollections will no longer be added to GC clusters to prevent materials staying around in memory for too long
Change 3573547 by Ben.Marsh
Add support for displaying log timestamps in local time. Set LogTimes=Local in *Engine.ini, or pass -LocalLogTimes on the command line.
Change 3574562 by Robert.Manuszewski
PR #3847: Add GC callbacks for script integrations (Contributed by mhutch)
Change 3575017 by Ben.Marsh
Move some functions related to generating window resolutions out of Core (FParse::Resolution, GenerateConvenientWindowedResolutions). Also remove a few headers from shared PCHs prior to splitting application functionality out of Core.
Change 3575689 by Ben.Marsh
Add a fixed URL for opening the API documentation, so it works correctly in "internal" and "perforce" builds.
Change 3575934 by Steve.Robb
Fix for nested preprocessor definitions.
Change 3575961 by Steve.Robb
Fix for nested zeros.
Change 3576297 by Robert.Manuszewski
Material resources will now be discarded in PostLoad (Game Thread) instead of in Serialize (potentially Async Loading Thread) so that shader deregistration doesn't assert when done from a different thread than the game thread.
#jira FORT-38977
Change 3576366 by Ben.Marsh
Add shim functions to allow redirecting FPlatformMisc::ClipboardCopy()/ClipboardPaste() to FPlatformApplicationMisc::ClipboardCopy()/ClipboardPaste() while they are deprecated.
Change 3578290 by Graeme.Thornton
Changes to Ionic zip library to allow building on dot net core
Change 3578291 by Graeme.Thornton
Ionic zip library binaries built for .NET Core
Change 3578354 by Graeme.Thornton
Added FBase64::GetDecodedDataSize() to determine the size of bytes of a decoded base64 string
Change 3578674 by Robert.Manuszewski
After loading packages flush linker cache on uncooked platforms to free precache memory
Change 3579068 by Steve.Robb
Fix for CLASS_Intrinsic getting stomped.
Fix to EClassFlags so that they are visible in the debugger.
Re-added mysteriously-removed comments.
Change 3579228 by Steve.Robb
BOM removed.
Change 3579297 by Ben.Marsh
Fix exception if a plugin lists the same module twice.
#jira UE-48232
Change 3579898 by Robert.Manuszewski
When creating GC clusters and asserting due to objects still being pending load, the object name and cluster name will now be logged with the assert.
Change 3579983 by Robert.Manuszewski
More fixes for freeing linker cache memory in the editor.
Change 3580012 by Graeme.Thornton
Remove redundant copy of FileReference.cs
Change 3580408 by Ben.Marsh
Validate that arguments passed to the checkf macro are valid sprintf types, and fix up a few places which are currently incorrect.
Change 3582104 by Graeme.Thornton
Added a dynamic compilation path that uses the latest roslyn apis. Currently only used by the .NET Core path.
Change 3582131 by Graeme.Thornton
#define out some PerformanceCounter calls that don't exist in .NET Core. They're only used by mono-specific calls anyway.
Change 3582645 by Ben.Marsh
PR #3879: fix bug when creating a new VS2017 C++ project (Contributed by mnannola)
#jira UE-48192
Change 3583955 by Robert.Manuszewski
Support for EDL cooked packages in the editor
Change 3584035 by Graeme.Thornton
Split RunExternalExecutable into RunExternaNativelExecutable and RunExternalDotNETExecutable. When running under .NET Core, externally launched DotNET utilities must be launched via the 'dotnet' proxy to work correctly.
Change 3584177 by Robert.Manuszewski
Removed unused member variable (FArchiveAsync2::bKeepRestOfFilePrecached)
Change 3584315 by Ben.Marsh
Move Android JNI accessor functions into separate header, to decouple it from the FAndroidApplication class.
Change 3584370 by Ben.Marsh
Move hooks which allow platforms to load any modules into the FPlatformApplicationMisc classes.
Change 3584498 by Ben.Marsh
Move functions for getting and setting the hardware window pointer onto the appropriate platform window classes.
Change 3585003 by Steve.Robb
Fix for TChunkedArray ranged-for iteration.
#jira UE-48297
Change 3585235 by Ben.Marsh
Remove LogEngine extern from Core; use the platform log channels instead.
Change 3585942 by Ben.Marsh
Move MessageBoxExt() implementation into application layer for platforms that require it.
Change 3587071 by Ben.Marsh
Move Linux's UngrabAllInput() function into a callback, so DebugBreak still works without SDL.
Change 3587161 by Ben.Marsh
Remove headers which will be stripped out of the Core module from Core.h and PlatformIncludes.h.
Change 3587579 by Steve.Robb
Fix for Children list not being rebuilt after hot reload.
Change 3587584 by Graeme.Thornton
Logging improvements for pak signature check failures
- Added "PakCorrupt" console command which corrupts the master signature table
- Added some extra log information about which block failed
- Re-hash the master signature table and to make sure that it hasn't changed since startup
- Moved the ensure around so that some extra logging messages can make it out before the ensure is hit
- Added PAK_SIGNATURE_CHECK_FAILS_ARE_FATAL to IPlatformFilePak.h so we have a single place to make signature check failures fatal again
Change 3587586 by Graeme.Thornton
Changes to make UBT build and run on .NET Core
- Added *_DNC csproj files for DotNETUtilities and UnrealBuildTool projects which contain the .NET Core build setups
- VCSharpProjectFile can no be asked for the CsProjectInfo for a particular configuration, which is cached for future use
- After loading VCSharpProjectFiles, .NET Core based projects will be excluded unless generating VSCode projects
Change 3587953 by Steve.Robb
Allow arbitrary UENUM initializers for enumerators.
Editor-only data UENUM support.
Enumerators named MAX are now treated as the UENUM's maximum, and will not cause a MAX+1 value to be generated.
#jira UE-46274
Change 3589827 by Graeme.Thornton
More fixes for VSCode project generation and for UBT running on .NET Core
- Use a different file extension for rules assemblies when build on .NET Core, so they never get used by their counterparts
- UEConsoleTraceListener supports stdout/stderror constructor parameter and outputs to the appropriate channel
- Added documentation for UEConsoleTraceListener
- All platforms .NET project compilation tasks/launch configs now use "dotnet" and not the normal batch files
- Restored the default UBT log verbosity to "Log" rather than "VeryVeryVerbose"
- Renamed assemblies for .NETCore versions of DotNETUtilities and UnrealBuildTool so they don't conflict with the output of the existing .NET Desktop Framework stuff
Change 3589868 by Graeme.Thornton
Separate .NET Core projects for UBT and DotNETCommon out into their own directories so that their intermediates don't overlap with the standard .NET builds, causing failures.
UBT registers ONLY .NET Core C# projects when generating VSCode solutions, and ONLY standard C# projects in all other cases
Change 3589919 by Robert.Manuszewski
Fixing crash when cooking textures that have already been cooked for EDL (support for cooked content in the editor)
Change 3589940 by Graeme.Thornton
Force UBT to think it's running on mono when actually running on .NET Core. Disables a lot of windows specific code paths.
Change 3590078 by Graeme.Thornton
Fully disable automatic assembly info generation in .NET Core projects
Change 3590534 by Robert.Manuszewski
Marking UObject as intrinsic clas to fix a crash on UFE startup.
Change 3591498 by Gil.Gribb
UE4 - Fixed several edge cases in the low level async loading code, especially around cancellation. Also PakFileTest is a console command which can be used to stress test pak file loading.
Change 3591605 by Gil.Gribb
UE4 - Follow up to fixing several edge cases in the low level async loading code.
Change 3592577 by Graeme.Thornton
.NET Core C# projects now reference source files explicitly, to stop it accidentally compiling various intermediates
Change 3592684 by Steve.Robb
Fix for EObjectFlags being passed as the wrong argument to csgCopyBrush.
Change 3592710 by Steve.Robb
Fix for invalid casts in ListProps command.
Some name changes in command output.
Change 3592715 by Ben.Marsh
Move Windows event log code into cpp file, and expose it to other modules even if it's not enabled by default.
Change 3592767 by Gil.Gribb
UE4 - Changed the logic so that engine UObjects boot before anything else. The engine classes are known to be cycle-free, so we will get them done before moving onto game modules.
Change 3592770 by Gil.Gribb
UE4 - Fixed a race condition with async read completion in the prescence of cancels.
Change 3593090 by Steve.Robb
Better error message when there two clashing type names are found.
Change 3593697 by Steve.Robb
VisitTupleElements function, which calls a functor for each element in the tuple.
Change 3595206 by Ben.Marsh
Include additional diagnostics for missing imports when a module load fails.
Change 3596140 by Graeme.Thornton
Batch file for running MSBuild
Change 3596267 by Steve.Robb
Thread safety fix to FPaths::GetProjectFilePath().
Change 3596271 by Robert.Manuszewski
Added code to verify compression flags in package file summary to avoid cases where corrupt packages are crashing the editor
#jira UE-47535
Change 3596283 by Steve.Robb
Redundant casts removed from UHT.
Change 3596303 by Ben.Marsh
EC: Improve parsing of Android Clang errors and warnings, which are formatted as MSVC diagnostics to allow go-to-line clicking in the Output Window.
Change 3596337 by Ben.Marsh
UBT: Format messages about incorrect headers in a way that makes them clickable from Visual Studio.
Change 3596367 by Steve.Robb
Iterator checks in ranged-for on TMap, TSet and TSparseArray.
Change 3596410 by Gil.Gribb
UE4 - Improved some error messages on runtime failures in the EDL.
Change 3596532 by Ben.Marsh
UnrealVS: Fix setting command line to empty not affecting property sheet. Also remove support for VS2013.
#jira UE-48119
Change 3596631 by Steve.Robb
Tool which takes a .map file and a .objmap file (from UBT) and creates a report which shows the size of all the symbols contributed by the source code per-folder.
Change 3596807 by Ben.Marsh
Improve Intellisense when generated headers are missing or out of date (eg. line numbers changed, etc...). These errors seem to be masked by VAX, but are present when using the default Visual Studio Intellisense.
* UCLASS macro is defined to empty when __INTELLISENSE__ is defined. Previous macro was preventing any following class declaration being parsed correctly if generated code was out of date, causing squiggles over all class methods/variables.
* Insert a semicolon after each expanded GENERATED_BODY macro, so that if it parses incorrectly, the compiler can still continue parsing the next declaration.
Change 3596957 by Steve.Robb
UBT can be used to write out an .objsrcmap file for use with the MapFileParser.
Renaming of ObjMap to ObjSrcMap in MapFileParser.
Change 3597213 by Ben.Marsh
Remove AutoReporter. We don't support this any more.
Change 3597558 by Ben.Marsh
UGS: Allow adding custom actions to the context menu for right clicking on a changelist. Actions are specified in the project's UnrealEngine.ini file, with the following syntax:
+ContextMenu=(Label="This is the menu item", Execute="foo.exe", Arguments="bar")
The standard set of variables for custom tools is expanded in each parameter (eg. $(ProjectDir), $(EditorConfig), etc...), plus the $(Change) variable.
Change 3597982 by Ben.Marsh
Add an option to allow overriding the local DDC path from the editor (under Editor Preferences > Global > Local Derived Data Cache).
#jira UE-47173
Change 3598045 by Ben.Marsh
UGS: Add variables for stream and client name, and the ability to escape any variables for URIs using the syntax $(VariableName:URI).
Change 3599214 by Ben.Marsh
Avoid string duplication when comparing extensions.
Change 3600038 by Steve.Robb
Fix for maps being modified during iteration in cache compaction.
Change 3600136 by Steve.Robb
GitHub #3538 : Fixed a bug with the handling of 'TMap' key/value types in the UnrealHeaderTool
Change 3600214 by Steve.Robb
More accurate error message when unsupported template parameters are provided in a TSet property.
Change 3600232 by Ben.Marsh
UBT: Force UHT to run again if the .build.cs file for a module has changed.
#jira UE-46119
Change 3600246 by Steve.Robb
GitHub #3045 : allow multiple interface definition in a file
Change 3600645 by Ben.Marsh
Convert QAGame to Include-What-You-Use.
Change 3600897 by Ben.Marsh
Fix invalid path (multiple slashes) in LibCurl.build.cs. Causes exception when scanning for includes.
Change 3601558 by Graeme.Thornton
Simple first pass VSCode editor integration plugin
Change 3601658 by Graeme.Thornton
Enable intellisense generation for VS Code project files and setup include paths properly
Change 3601762 by Ben.Marsh
UBT: Add support for adaptive non-unity builds when working from a Git repository.
The ISourceFileWorkingSet interface is now used to query files belonging to the working set, and has separate implementations for Perforce (PerforceSourceFileWorkingSet) and Git (GitSourceFileWorkingSet). The Git implementation is used if a .git directory is found in the directory containing the Engine folder, the directory containing the project file, or the parent directory of the project file, and spawns a "git status" process in the background to determine which files are untracked or staged.
Several new settings are supported in BuildConfiguration.xml to allow modifying default behavior:
<SourceFileWorkingSet>
<Provider>Default</Provider> <!-- May be None, Default, Git or Perforce -->
<RepositoryPath></RepositoryPath> <!-- Specifies the path to the repository, relative to the directory containing the Engine folder. If not set, tries to find a .git directory in the locations listed above. -->
<GitPath>git</GitPath> <!-- Specifies the path to the Git executable. Defaults to "git", which assumes that it will be on the PATH -->
</SourceFileWorkingSet>
Change 3604032 by Graeme.Thornton
First attempt at automatically detecting the existance and location of visual studio code in the source code accessor module. Only works for windows.
Change 3604038 by Graeme.Thornton
Added FSourceCodeNavigation::GetSelectedSourceCodeIDE() which returns the name of the selected source code accessor.
Replaced all usages of FSourceCodeNavigation::GetSuggestedSourceCodeIDE() with GetSelectedSourceCodeIDE(), where the message is referring to the opening or editing of code.
Change 3604106 by Steve.Robb
GitHub #3561 : UE-44950: Don't see all caps struct constructor as macro
Change 3604192 by Steve.Robb
GitHub #3911 : Improving ToUpper/ToLower efficiency
Change 3604273 by Graeme.Thornton
IWYU build fixes when malloc profiler is enabled
Change 3605457 by Ben.Marsh
Fix race for intiialization of ThreadID variable on FRunnableThreadWin, and restore a previous check that was working around it.
Change 3606720 by James.Hopkin
Dave Ratti's fix to character base recursion protection code - was missing a GetOwner call, instead attempting to cast a component to a pawn.
Change 3606807 by Graeme.Thornton
Disabled optimizations around FShooterStyle::Create(), which was crashing in Win64 shipping game builds due to some known compiler issue. Same variety of fix as BenZ did in CL 3567741.
Change 3607026 by James.Hopkin
Fixed incorrect ABrush cast - was attempting to cast a UModel to ABrush, which can never succeed
Change 3607142 by Graeme.Thornton
UBT - Minor refactor of BackgroundProcess shutdown in SourceFileWorkingSet. Check whether the process has already exited before trying to kill it during Dispose.
Change 3607146 by Ben.Marsh
UGS: Fix exception due to formatting string when Perforce throws an error.
Change 3607147 by Steve.Robb
Efficiency fix for integer properties, which were causing a property mismatch and thus a tag lookup every time.
Float and double conversion support added to int properties.
NAME_DoubleProperty added.
Fix for converting enum class enumerators > 255 to int properties.
Change 3607516 by Ben.Marsh
PR #3935: Fix DECLARE_DELEGATE_NineParams, DECLARE_MULTICAST_DELEGATE_NineParams. (Contributed by enginevividgames)
Change 3610421 by Ben.Marsh
UAT: Move help for RebuildLightMapsCommand into attributes, so they display when running with -help.
Change 3610657 by Ben.Marsh
UAT: Unify initialization of command environment for build machines and local execution. Always derive parameters which aren't manually set via environment variables.
Change 3611000 by Ben.Marsh
UAT: Remove the -ForceLocal command line option. Settings are now determined automatically, independently of the -Buildmachine argument.
Change 3612471 by Ben.Marsh
UBT: Move FastJSON into DotNETUtilities.
Change 3613479 by Ben.Marsh
UBT: Remove the bIsCodeProject flag from UProjectInfo. This was only really being used to determine which projects to generate an IDE project for, so it is now checked in the project file generator.
Change 3613910 by Ben.Marsh
UBT: Remove unnecessary code to guess a project from the target name; doesn't work due to init order, actual project is determined later.
Change 3614075 by Ben.Marsh
UBT: Remove hacks for testing project file attributes by name.
Change 3614090 by Ben.Marsh
UBT: Remove global lookup of project by name. Projects should be explicitly specified by path when necessary.
Change 3614488 by Ben.Marsh
UBT: Prevent annoying (but handled) exception when constructing SQLiteModuleSupport objects with -precompile enabled.
Change 3614490 by Ben.Marsh
UBT: Simplify generation of arguments for building intellisense; determine the platform/configuration to build from the project file generation code, rather than inside the target itself.
Change 3614962 by Ben.Marsh
UBT: Move the VS2017 strict conformance mode (/permissive-) behind a command line option (-Strict), and disable it by default. Building with this mode is not guaranteed to work correctly without updated Windows headers.
Change 3615416 by Ben.Marsh
EC: Include an icon showing the overall status of a build in the grid view.
Change 3615713 by Ben.Marsh
UBT: Delete any files in output directories which match output files in other directories. Allows automatically deleting build products which are moved into another folder.
#jira UE-48987
Change 3616652 by Ben.Marsh
Plugins: Fix incorrect dialog when binaries for a plugin are missing. Should only prompt to disable if starting a content-only project.
#jira UE-49007
Change 3616680 by Ben.Marsh
Add the CodeAPI-HTML.tgz file into the installed engine build.
Change 3616767 by Ben.Marsh
Plugins: Tweak error message if the FModuleManager::IsUpToDate() function returns false for a plugin module; the module may be missing, not just incompatible.
Change 3616864 by Ben.Marsh
Cap the length of the temporary package name during save, to prevent excessively long filenames going over the limit once a GUID is appended.
#jira UE-48711
Change 3619964 by Ben.Marsh
UnrealVS: Fix single file compile for foreign projects, where the command line contains $(SolutionDir) and $(ProjectName) variables.
Change 3548930 by Ben.Marsh
UBT: Remove UEBuildModuleCSDLL; there is no codepath that still supports creating them. Remove the remaining UEBuildModule/UEBuildModuleCPP abstraction.
Change 3558056 by Ben.Marsh
Deprecate FString::Trim() and FString::TrimTrailing(), and replace them with separate versions to mutate (TrimStartInline(), TrimEndInline()) or return by copy (TrimStart(), TrimEnd()). Also add a functions to trim whitespace from both ends of a string (TrimStartAndEnd(), TrimStartAndEndInline()).
Change 3563309 by Graeme.Thornton
Moved some common C# classes into the DotNETCommon assembly
Change 3570283 by Graeme.Thornton
Move some code out of RPCUtility and into DotNETCommon, removing the dependency between the two projects
Added UEConsoleTraceListener to replace ConsoleTraceListener, which doesn't exist in DotNetCore
Change 3572811 by Ben.Marsh
UBT: Add -enableasan / -enabletsan command line options and bEnableAddressSanitizer / bEnableThreadSanitizer settings in BuildConfiguration.xml (and remove environment variables).
Change 3573397 by Ben.Marsh
UBT: Create a <ExeName>.version file for every target built by UBT, in the same JSON format as Engine/Build/Build.version. This allows monolithic targets to read a version number at runtime, unlike when it's embedded in a modules file, and allows creating versioned client executables that will work with versioned servers when syncing through UGS.
Change 3575659 by Ben.Marsh
Remove CHM API documentation.
Change 3582103 by Graeme.Thornton
Simple ResX writer implemetation that the xbox deloyment code can use instead of the one from the windows forms assembly, which isn't supported on .NET Core
Removed reference to System.Windows.Form from UBT.
Change 3584113 by Ben.Marsh
Move key-mapping functionality into the InputCore module.
Change 3584278 by Ben.Marsh
Move FPlatformMisc::RequestMinimize() into FPlatformApplicationMisc.
Change 3584453 by Ben.Marsh
Move functionality for querying device display density to FApplicationMisc, due to dependence on application-level functionality on mobile platforms.
Change 3585301 by Ben.Marsh
Move PlatformPostInit() into an FPlatformApplicationMisc function.
Change 3587050 by Ben.Marsh
Move IsThisApplicationForeground() into FPlatformApplicationMisc.
Change 3587059 by Ben.Marsh
Move RequiresVirtualKeyboard() into FPlatformApplicationMisc.
Change 3587119 by Ben.Marsh
Move GetAbsoluteLogFilename() into FPlatformMisc.
Change 3587800 by Steve.Robb
Fixes to container visualizers for types whose pointer type isn't simply Type*.
Change 3588393 by Ben.Marsh
Move platform output devices into their own headers.
Change 3588868 by Ben.Marsh
Move creation of console, error and warning output devices int PlatformApplicationMisc.
Change 3589879 by Graeme.Thornton
All automation projects now have a reference to DotNETUtilities
Fixed a build error in the WEX automation library
Change 3590034 by Ben.Marsh
Move functionality related to windowing and input out of the Core module and into an ApplicationCore module, so it is possible to build utilities with Core without adding dependencies on XInput (Windows), SDL (Linux), and OpenGL (Mac).
Change 3593754 by Steve.Robb
Fix for tuple debugger visualization.
Change 3597208 by Ben.Marsh
Move CrashReporter out of a public folder; it's not in a form that is usable by subscribers and licensees.
Change 3600163 by Ben.Marsh
UBT: Simplify how targets are cleaned. Delete all intermediate folders for a platform/configuration, and delete any build products matching the UE4 naming convention for that target, rather than relying on the current build configuration or list of previous build products. This will ensure that build products which are no longer being generated will also be cleaned.
#jira UE-46725
Change 3604279 by Graeme.Thornton
Move pre/post garbage collection delegates into accessor functions so they can be used by globally constructed objects
Change 3606685 by James.Hopkin
Removed redundant 'Cast's (casting to either the same type or a base).
In SClassViewer, replaced cast with TAssetPtr::operator* call to get the wrapped UClass.
Also removed redundant 'IsA's from AnimationRetargetContent::AddRemappedAsset in EditorAnimUtils.cpp.
Change 3610950 by Ben.Marsh
UAT: Simplify logic for detecting Perforce settings, using environment variables if they are set, otherwise falling back to detecting them. Removes special cases for build machines, and makes it simpler to set up UAT commands on builders outside Epic.
Change 3610991 by Ben.Marsh
UAT: Use the correct P4 settings to detect settings if only some parameters are specified on the command line.
Change 3612342 by Ben.Marsh
UBT: Change JsonObject.Read() to take a FileReference parameter.
Change 3612362 by Ben.Marsh
UBT: Remove some more cases of paths being passed as strings rather than using FileReference objects.
Change 3619128 by Ben.Marsh
Include builder warnings and errors in the notification emails for automated tests, otherwise it's difficult to track down non-test failures.
[CL 3620189 by Ben Marsh in Main branch]
2017-08-31 12:08:38 -04:00
|
|
|
checkf(0, TEXT("Unhandled AST iteration type %d!"), (int32)Type);
|
2014-12-11 15:49:40 -05:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FIterationStatement::~FIterationStatement()
|
|
|
|
|
{
|
|
|
|
|
if (InitStatement)
|
|
|
|
|
{
|
|
|
|
|
delete InitStatement;
|
|
|
|
|
}
|
|
|
|
|
if (Condition)
|
|
|
|
|
{
|
|
|
|
|
delete Condition;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (RestExpression)
|
|
|
|
|
{
|
|
|
|
|
delete RestExpression;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Body)
|
|
|
|
|
{
|
|
|
|
|
delete Body;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
FFunctionExpression::FFunctionExpression(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, FExpression* InCallee) :
|
|
|
|
|
FExpression(InAllocator, EOperators::FunctionCall, InInfo)
|
|
|
|
|
, Callee(InCallee)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FFunctionExpression::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
Callee->Write(Writer);
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'(';
|
2014-12-11 15:49:40 -05:00
|
|
|
bool bFirst = true;
|
|
|
|
|
for (auto* Expr : Expressions)
|
|
|
|
|
{
|
|
|
|
|
if (bFirst)
|
|
|
|
|
{
|
|
|
|
|
bFirst = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(", ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Expr->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(")");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSwitchStatement::FSwitchStatement(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, FExpression* InCondition, FSwitchBody* InBody) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Condition(InCondition),
|
|
|
|
|
Body(InBody)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FSwitchStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("switch (");
|
|
|
|
|
Condition->Write(Writer);
|
|
|
|
|
Writer << TEXT(")\n");
|
|
|
|
|
Body->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSwitchStatement::~FSwitchStatement()
|
|
|
|
|
{
|
|
|
|
|
delete Condition;
|
|
|
|
|
delete Body;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSwitchBody::FSwitchBody(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
CaseList(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FSwitchBody::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
|
|
|
|
{
|
|
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
CaseList->Write(Writer);
|
|
|
|
|
}
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FSwitchBody::~FSwitchBody()
|
|
|
|
|
{
|
|
|
|
|
delete CaseList;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseLabel::FCaseLabel(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, AST::FExpression* InExpression) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
TestExpression(InExpression)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCaseLabel::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
2014-12-11 15:49:40 -05:00
|
|
|
if (TestExpression)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("case ");
|
|
|
|
|
TestExpression->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("default");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(":\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseLabel::~FCaseLabel()
|
|
|
|
|
{
|
|
|
|
|
if (TestExpression)
|
|
|
|
|
{
|
|
|
|
|
delete TestExpression;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FCaseStatement::FCaseStatement(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, FCaseLabelList* InLabels) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Labels(InLabels),
|
|
|
|
|
Statements(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCaseStatement::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Labels->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
if (Statements.Num() > 1)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
for (auto* Statement : Statements)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Statement->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else if (Statements.Num() > 0)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
|
|
|
|
Statements[0]->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseStatement::~FCaseStatement()
|
|
|
|
|
{
|
|
|
|
|
delete Labels;
|
|
|
|
|
for (auto* Statement : Statements)
|
|
|
|
|
{
|
|
|
|
|
if (Statement)
|
|
|
|
|
{
|
|
|
|
|
delete Statement;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseLabelList::FCaseLabelList(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Labels(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCaseLabelList::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
for (auto* Label : Labels)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Label->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseLabelList::~FCaseLabelList()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Label : Labels)
|
|
|
|
|
{
|
|
|
|
|
delete Label;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseStatementList::FCaseStatementList(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Cases(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FCaseStatementList::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
for (auto* Case : Cases)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Case->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FCaseStatementList::~FCaseStatementList()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Case : Cases)
|
|
|
|
|
{
|
|
|
|
|
delete Case;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FStructSpecifier::FStructSpecifier(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Name(nullptr),
|
|
|
|
|
ParentName(nullptr),
|
2020-01-24 18:07:01 -05:00
|
|
|
Members(InAllocator)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FStructSpecifier::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("struct ");
|
|
|
|
|
Writer << (Name ? Name : TEXT(""));
|
2014-12-11 15:49:40 -05:00
|
|
|
if (ParentName && *ParentName)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(" : ");
|
|
|
|
|
Writer << ParentName;
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'\n';
|
|
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("{\n");
|
2014-12-11 15:49:40 -05:00
|
|
|
|
2020-01-24 18:07:01 -05:00
|
|
|
for (auto* Member : Members)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
FASTWriterIncrementScope Scope(Writer);
|
2020-01-24 18:07:01 -05:00
|
|
|
Member->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer.DoIndent();
|
|
|
|
|
Writer << TEXT("}");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FStructSpecifier::~FStructSpecifier()
|
|
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
for (auto* Member : Members)
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2020-01-24 18:07:01 -05:00
|
|
|
delete Member;
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FAttribute::FAttribute(FLinearAllocator* InAllocator, const FSourceInfo& InInfo, const TCHAR* InName) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
Name(InName),
|
|
|
|
|
Arguments(InAllocator)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FAttribute::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'[';
|
|
|
|
|
Writer << Name;
|
2014-12-11 15:49:40 -05:00
|
|
|
|
|
|
|
|
bool bFirst = true;
|
|
|
|
|
for (auto* Arg : Arguments)
|
|
|
|
|
{
|
|
|
|
|
if (bFirst)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'(';
|
2014-12-11 15:49:40 -05:00
|
|
|
bFirst = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(", ");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Arg->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!bFirst)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT(")");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << TEXT("]");
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FAttribute::~FAttribute()
|
|
|
|
|
{
|
|
|
|
|
for (auto* Arg : Arguments)
|
|
|
|
|
{
|
|
|
|
|
delete Arg;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FAttributeArgument::FAttributeArgument(FLinearAllocator* InAllocator, const FSourceInfo& InInfo) :
|
|
|
|
|
FNode(InAllocator, InInfo),
|
|
|
|
|
StringArgument(nullptr),
|
|
|
|
|
ExpressionArgument(nullptr)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-10-28 08:58:16 -04:00
|
|
|
void FAttributeArgument::Write(FASTWriter& Writer) const
|
2014-12-11 15:49:40 -05:00
|
|
|
{
|
|
|
|
|
if (ExpressionArgument)
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
ExpressionArgument->Write(Writer);
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2015-10-28 08:58:16 -04:00
|
|
|
Writer << (TCHAR)'"';
|
|
|
|
|
Writer << StringArgument;
|
|
|
|
|
Writer << (TCHAR)'"';
|
2014-12-11 15:49:40 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FAttributeArgument::~FAttributeArgument()
|
|
|
|
|
{
|
|
|
|
|
if (ExpressionArgument)
|
|
|
|
|
{
|
|
|
|
|
delete ExpressionArgument;
|
|
|
|
|
}
|
2014-11-14 14:08:41 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|