Files
UnrealEngineUWP/Engine/Source/Runtime/OpenGLDrv/Private/OpenGLShaders.cpp

3199 lines
109 KiB
C++
Raw Normal View History

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
OpenGLShaders.cpp: OpenGL shader RHI implementation.
=============================================================================*/
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
#include "OpenGLShaders.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "HAL/PlatformFilemanager.h"
#include "HAL/FileManager.h"
#include "Misc/Paths.h"
#include "Serialization/MemoryWriter.h"
#include "Serialization/MemoryReader.h"
#include "OpenGLDrvPrivate.h"
#include "Shader.h"
#include "GlobalShader.h"
#define CHECK_FOR_GL_SHADERS_TO_REPLACE 0
#if PLATFORM_WINDOWS
#include <mmintrin.h>
#elif PLATFORM_MAC
#include <xmmintrin.h>
#endif
Copying //UE4/Release-Staging-4.15 to //UE4/Dev-Main (Source: //UE4/Release-4.15 @ 3278667) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3278667 on 2017/01/31 by Chris.Wood Added extra context to crash analytics and crash reports in the Editor. [UE-41306] - Add context to crash analytics and crash reports (with Editor user activity) When a Slate tab becomes active or foregrounded, we take its LayoutIdentity, Label and Content Widget Type and generate a string from all three. This gives context for what the user was doing. The string is set as the UserActivity and passed to MTBF analytics, crash analytics and crash reporter. Also added filter to the UserActivity tracking system that defaults to Game mode to preserve previous behavior. Editor now switches it to Editor mode and starts setting the activity in this mode. #jira UE-41306 Change 3278637 on 2017/01/30 by Dmitriy.Dyomin Fixed: iOS Device displays textures darker than in Editor #jira UE-41298 Change 3278566 on 2017/01/30 by Jack.Porter Fix #WITH_EDITOR in InstancedStaticMesh.cpp #jira UE-41292 Change 3278195 on 2017/01/30 by Alexis.Matte Fix the re-import skeletal mesh regression, where all material disapear. #jira UE-41294 Change 3278173 on 2017/01/30 by Frank.Fella PlatformMediaSource - Don't allow the user to nest platform media sources, and also fail validation on nested platform media sources just in case they are set outside of the cusomization UI. #Jira UE-40779 Change 3278156 on 2017/01/30 by Josh.Adams - Adding the missed #include line for IsWindowsServer() #jira UE-41304 Change 3278088 on 2017/01/30 by Mike.Beach Mirroring CL 3249423 from Dev-BP. Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()). #jira OR-34038 Change 3278036 on 2017/01/30 by Mike.Beach Mirroring CL 3277671 from Dev-BP. Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto). #jira UE-41188, UE-41189, UE-41186, UE-41037 Change 3277974 on 2017/01/30 by Josh.Adams - Hopeful workaround for COM crash in HandleGameExplorerIntegration function #jira UE-41080 Change 3277951 on 2017/01/30 by Ori.Cohen Fix access violation in physx. #JIRA ODIN-5199 Change 3277773 on 2017/01/30 by Jamie.Dale Fixing crash that could occur with null meta-data #jira UE-41271 Change 3277549 on 2017/01/30 by Max.Chen Sequencer: Back out changelist 3276452 because it breaks other uses of the time snapping interval in the settings. #jira UE-41009 Change 3277510 on 2017/01/30 by Jamie.Dale Fixed localization sometimes having incorrect keys in cooked builds Merged CL# 3276233 and CL# 3277273. #jira UE-41271 Change 3277500 on 2017/01/30 by Michael.Trepka Added -Wno-undefined-var-template on Mac to work around an issue with compiling UHT in Xcode 8.3 #jira UE-41225 Change 3277421 on 2017/01/30 by Arciel.Rekman TestPAL: delete unused test (UE-36984) #jira UE-36984 (Edigrating CL 3267568 from Dev-Platform to Release-4.15) Change 3277410 on 2017/01/30 by Jeff.Fisher UE-41152 more non-unity include fixes. -Matthew Griffin showed me how to run this locally, so I was able to locally reproduce the errors and this fixed them (the previous fixes were insufficient rather than incorrect). #jira UE-41152 Change 3277230 on 2017/01/30 by Jack.Porter Fixed issue with static lighting for Foliage and Instanced Static Meshes where shadows on instances in LOD levels other than LOD 0 was incorrect. #jira UE-39884 Change 3277178 on 2017/01/30 by Allan.Bentham enable FORCE_FLOATS with iOS metal shaders when full precision material setting is set. #jira UE-41253 Change 3277134 on 2017/01/30 by Matthew.Griffin Fixed NonUnity compile issues Change 3276503 on 2017/01/28 by Jeff.Fisher UE-41152 more non-unity include fixes. #jira UE-41152 Change 3276452 on 2017/01/28 by Max.Chen Sequencer: Changed the time snapping interval in the toolbar ui so that it no longer additionally updates the sequencer setting. The value used in the sequencer settings is only used to initialize a new level sequence. #jira UE-41009 Change 3276130 on 2017/01/27 by Phillip.Kavan [UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy. - Mirrored from //UE4/Dev-Blueprints (CL# 3276109). #jira UE-40894 Change 3276013 on 2017/01/27 by Lina.Halper - fix issue with additive pose preview applying twice #jira: UE-41216 #code review:Thomas.Sarkanen Change 3275990 on 2017/01/27 by Mitchell.Wilson Disabling 'Used with skeletal mesh' on some materials to resolve errors and warnings. #jira UE-40736 Change 3275885 on 2017/01/27 by Matt.Kuhlenschmidt Fixed missing slate style assets log warning #jira UE-41148 Change 3275805 on 2017/01/27 by Ori.Cohen Fix incorrect warning about moving simulated bodies during tick group. The existing code would warn if you had a kinematic that was SimulationDisabled (i.e. meaning it's not in the sim scene). #JIRA UE-37270 Change 3275797 on 2017/01/27 by Shaun.Kime In some cases, it was possible to create a SRetainerWidget that does not have a valid scene. This would cause the recorded scene index to be mismatched with the actual rendering index when played back in the future. #jira OR-34919 Change 3275681 on 2017/01/27 by Lina.Halper Dupe change of CL 3273803, 3274129, 3274700 #jira: UE-41163 #code review:Daniel.Wright, Martin.Wilson Change 3275624 on 2017/01/27 by Benn.Gallagher Fixed crash when creating destructible meshes from static meshes with null material interface entries #jira UE-38998 Change 3275601 on 2017/01/27 by Matt.Kuhlenschmidt Fix crash when a kdop collision generation fails and there are existing collision meshes selected. We no longer clear out unrelated collision primitives when kdop generation fails. #jira UE-41220 Change 3275545 on 2017/01/27 by Chris.Bunner Added flag for retreiving debug materials from GetUsedMaterials calls on rendering components. #jira UE-40482 Change 3275522 on 2017/01/27 by Max.Chen Sequencer: Call modify before setting row indices #jira UE-40682 Change 3275518 on 2017/01/27 by Max.Chen Sequencer: Switch to static pointer to fix crash when tearing down curve editor. #jira UE-41105 Change 3275475 on 2017/01/27 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing non-unity missing includes. #jira UE-41152 Change 3275387 on 2017/01/27 by Steve.Robb Prevent engine reinstancing on hot reload. Copied from CL# 3265490. #jira UE-40765 Change 3275279 on 2017/01/27 by Josh.Adams - Redoing change 3274305 in 4.15 #jira UE-40451 Change 3275233 on 2017/01/27 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix share play initialization logic. #jira UE-41209 Change 3275227 on 2017/01/27 by Alex.Delesky Duplicating the fix for UE-40791 from Dev-Editor CL 3265714 - The ForceFeedback thumbnail's Play and Stop icons will now render correctly, and will only be visible while an effect is playing or when the cursor hovers over the icon. #jira UE-40791 Change 3275057 on 2017/01/27 by Peter.Sauerbrei fix for crash after changing the metal shader version #jira ue-41183 Change 3275031 on 2017/01/27 by Matthew.Griffin Added architecture hash to path for Linux generated includes, didn't realize that this was part of the path. Change 3275005 on 2017/01/27 by Matthew.Griffin Re-enabled Cache of cooked platform data during DerivedDataCache commandlet Moved caching DDC of non-host platform data behind an option so it's not done for Installed Build by default Removed other platforms from Launcher Samples and changed 'CookPlatforms' to 'DDCPlatforms' so that its purpose is more clear Change 3274828 on 2017/01/27 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing non-unity missing include. #jira UE-41152 Change 3274799 on 2017/01/27 by Arciel.Rekman Fix for installed Linux cross-toolchain (UE-40392). - Pull request #3111 contributed by rubu. #jira UE-40392 Change 3274756 on 2017/01/27 by Max.Chen Sequencer: Update the parent guid with the new possessable guid. This fixes a bug where the parent guid isn't set properly and so folders aren't retained when assign actors and running fix up actor references. #jira UE-41010 Change 3274755 on 2017/01/27 by Max.Chen Sequencer: Call notify movie scene data changed when creating a camera instead of marking the instances as needing a refresh. #jira UE-41019 Change 3274597 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing monolithic include warning. #jira UE-41152 Change 3274564 on 2017/01/26 by Mike.Beach Following the example of other nodes with external dependencies (like UK2Node_SwitchEnum), and making sure the struct is preloaded before we use it (the struct needs to have a valid size). #jira UE-41073 Change 3274535 on 2017/01/26 by Mike.Beach Removed ensure that was blocking a wrapper function call to a non-nativized function lib from being generated (while not optimal, the generated code works). #jira UE-41190 Change 3274512 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3255506 Copyright update for google -note most of the changes went in with the previous 3 androidvr-devvr change integrations, these two were not otherwise changed. -just incrementing the year //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273588 Change 3274511 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243495 Adding GoogleVRTransition2D plugin to handle VR->2D->VR transition for daydream app. //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273586 Change 3274510 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243494 Update GoogleVR plugin to v1.2. -Upgrade GVR NDK to 1.10.0 -Add easy to use GoogleVR input component, including controller component for daydream and a gaze based reticle component for cardboard. -Make the GoogleVRSplash rendered with depth. -Add built in arm model support in GoogleVR controller plugin. -Add "Use ExternalFilesDir for UE4Game files" option in AndroidRuntimeSetting to support saving game progress without requesting EXTERNAL_STORAGE permission in Andoird 23+ -Remove the "Package for Daydream" option in AndroidRuntimeSetting. -Fix the crash on iOS9 when GoogleVR plugin is enabled.(udn/325432) //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273585 Change 3274509 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243493 Adding AndroidPermission plugin to handle runtime permission request and check for android api 23 and above. -The plugin works for both daydream and normal Android application. -For Daydream app, it need to work with GoogleVRTransition2D plugin. //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273583 Change 3274485 on 2017/01/26 by Chris.Babcock Fix handling of numbers in textedit (allow decimals) #jira UE-41198 #ue4 #android Change 3274457 on 2017/01/26 by Mike.Beach Fix to CIS warning (fallout from CL 3274362) #jira UE-41072, UE-41071, UE-41070 Change 3274445 on 2017/01/26 by Arciel.Rekman Proper fix for deploying to Linux (UE-40023). - The logic is: if the base path (local to PC, one we are replacing) *ends* with a separator, add the separator to the dest path (one we're mapping to). Previous fix had a last minute change that inverted it. #jira UE-40023 Change 3274428 on 2017/01/26 by Brian.Karis Fixed bloom flickering on high contrast HDR edges when r.TemporalAACatmullRom was enabled. #jira UE-41138 Change 3274362 on 2017/01/26 by Mike.Beach Restructuring how we apply individual (exclusive) Blueprint nativization flags... 1. Explicitly flagging Blueprints as dependencies for nativization (and communicating that to the user) 2. Now applying nativization flag to authoritative config for all dependencies on save 3. Flagging new dependencies (parent or interface) as needing nativization (when required) 4. Ignore bDontNativizeDataOnlyBP setting when nativization mode is set to explicit #jira UE-41072, UE-41071, UE-41070 Change 3274349 on 2017/01/26 by Yannick.Lange VREditor: Fix Laser not hidden on MotionControllers with docked Menu/UI Panels #jira UE-40070 Change 3274301 on 2017/01/26 by Chris.Bunner Added missing material expression tooltips/keywords for new nodes based on 4.15 preview feeback. #jira UE-41193 Change 3274254 on 2017/01/26 by Ryan.Gerleve Fix for IsInGameThread() checks that could fail in debug builds while recording a replay with tick.DoAsyncEndOfFrameTasks and demo.ClientRecordAsyncEndOfFrame enabled. #jira UE-39911 Change 3274121 on 2017/01/26 by Josh.Adams - Fixed build error with landscape gizmo #jira UE-41177 Change 3274114 on 2017/01/26 by Dan.Oconnor Updating all references before calling post edit - prevents objects from being destroyed or created while updating references #jira UE-40121 Change 3273971 on 2017/01/26 by Chris.Bunner Update material instance permutations when we have already set param/switch overrides, then only change the base properties. #jira UE-39754 Change 3273842 on 2017/01/26 by Daniel.Wright Attempt to remove instructions from code features only present in the forward renderer, so we are showing users their graph cost. Allows shader complexity in forward to sortof match deferred. #jira UE-41167 Change 3273750 on 2017/01/26 by Jeff.Fisher UE-41137 //UE4/Main: Step 'Compile Ocean (Win32/Win64)' - 2 Errors - SteamVRController.cpp -Fixing build break for Ocean. Maybe they are using an older compiler? #jira UE-31137 Change 3273602 on 2017/01/26 by Michael.Trepka Fix for UE-41146 #jira UE-41146 Change 3273506 on 2017/01/26 by Maciej.Mroz #jira ODIN-4991, UE-41035 merged cl3273497 from Dev-Blueprints branch Nativization: EX_AddMulticastDelegate - generated code calls TMulticastScriptDelegate::AddUniqe instead of TMulticastScriptDelegate::Add. Change 3273464 on 2017/01/26 by Mitchell.Wilson Resaving asset to resolve warning. #jira UE-41008 Change 3273413 on 2017/01/26 by Marc.Audy Fix crash when audio device fails to initialize #author Andrew.Grant #jira UE-41143 Change 3273391 on 2017/01/26 by Jack.Porter Fixed ensure encountered when using the Copy/Paste sub-tool in sculpt mode #jira UE-40480 Change 3273343 on 2017/01/26 by Matt.Kuhlenschmidt Resetting the preview on a material now properly clears the thumbnail which could have a stale references that was impossible to fix. Fixed on asset exibiting this problem #jira UE-40300 Change 3273243 on 2017/01/26 by Jamie.Dale Speculative fix for an issue where User Defined Enum display names were being lost on upgrade to 4.15 #jira UE-41130 Change 3273235 on 2017/01/26 by Graeme.Thornton Fix for some memory being left hanging around when loading bulk data asyncronously under certain circumstances #jira UE-37815 Change 3273225 on 2017/01/26 by Ben.Cosh This fixes an issue with actor details component selection causing actor selection to get out of sync across undo operations #Jira UE-40753 - [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602] #Proj Engine Change 3273224 on 2017/01/26 by Josh.Stoddard Increment FDerivedDataPhysXCooker to force recook of PhysX data #jira UE-39791#rb none #lockdown james.golding Change 3273201 on 2017/01/26 by Jack.Porter Fixed problem where UpdateInstanceTransform blueprint function was not updating bounds correctly #jira UE-41126 Change 3273122 on 2017/01/26 by Graeme.Thornton Added some extra log output for situations where a compressed block in an archive doesn't have a valid header #jira UE-38767 Change 3273116 on 2017/01/26 by Benn.Gallagher Fix for crash generating clothing skinning data due to coplanar check triggering a check() on small triangles #jira UE-41112 Change 3273077 on 2017/01/26 by Thomas.Sarkanen Allowed LODs other than LOD0 to have screen sizes greater than 1 #jira UE-41125 - Static mesh LODs other than LOD0 cannot be set to screen sizes greater than 1 Change 3273061 on 2017/01/26 by Matthew.Griffin Disabled code caching data for all platforms until we can figure out why it's filling up DDC cache Change 3272938 on 2017/01/25 by Arciel.Rekman Fix launch on a remote Linux machine (UE-38691). - Device id is now used to get target platform, so should match it exactly. #jira UE-38691 Change 3272816 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272590 on 2017/01/25 by Daniel.Wright Workaround for "error X3067: 'GetObjectWorldPosition': ambiguous function call" which happens when FMaterialPixelParameters and FMaterialVertexParameters have the same number of floats with the HLSL compiler. Function overload resolution appears to identify types based on how many floats / ints / etc they contain. #jira UE-41099 Change 3272419 on 2017/01/25 by Arciel.Rekman Linux: fix remote deploying of a packaged build (UE-40023). #jira UE-40023 Change 3272355 on 2017/01/25 by Daniel.Wright Prevent a large shadow depth bias due to low resolution from causing near plane clipping #jira UE-40873 Change 3272196 on 2017/01/25 by tim.gautier Updating TM-UMG content for UI visibility #jira UE-29618 Change 3272114 on 2017/01/25 by Michael.Dupuis #jira UE-29817 : backout of CL from Dev-Editor fixing this jira Change 3271953 on 2017/01/25 by Michael.Trepka Attempt to fix UE-40956 - Rare crash occurs in CoreAudio in Vehicle Game on Mac when quitting. #jira UE-40956 Change 3271945 on 2017/01/25 by Olaf.Piesche Replicating CL 3271564 #jira UE-40980 #udn 325525 Fix uniform buffers for mesh particles; these should really be on the mesh collector, so allocating them as a one frame resource is safe. Change 3271883 on 2017/01/25 by Daniel.Wright UWorld::AreAlwaysLoadedLevelsLoaded takes into account bShouldBeVisible. Fixes reflection captures not getting uploaded when there's an invisible always loaded level, which is supposed to be invisible. #jira UE-40724 Change 3271686 on 2017/01/25 by Marc.Audy Properly fix line endings in all cases when installing a c++ feature pack #jira UE-40939 Change 3271631 on 2017/01/25 by Ryan.Gerleve In UEngine::CommitMapChange, rename the new ULevelStreaming objects so that the main world is their outer. This is more correct in general, and will cause those levels to be added to the correct level collection during FlushLevelStreaming. Also use MoveTemp to add the streaming level list to the main world, so that the fake world will no longer reference them. #jira UE-40524 Change 3271611 on 2017/01/25 by Allan.Bentham Ensure texture's buildsettings are not marked as streamable if the target platform does not support streaming. #jira UE-40927 Change 3271504 on 2017/01/25 by tim.gautier Updated default values of UMG_Behavior #jira UE-29618 Change 3271491 on 2017/01/25 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix bug in AT9 audio cooking. - Maximum mono bitrate is 144kbps, but 100% quality mono tracks were selecting 168kbps, causing the AT9 tool to fail. - Also bumped AT9 engine format to recook potentially broken audio data. #jira UE-40761 Change 3271428 on 2017/01/25 by Chris.Bunner Bug in previous CL. #jira UE-39953 Change 3271413 on 2017/01/25 by Lina.Halper #DUPEFIX of CL 3270776 #jira: UE-41082 Change 3271403 on 2017/01/25 by tim.gautier Adjusted UMG_Blur intensity settings. #jira UE-29618 # rb cristina.riveron Change 3271300 on 2017/01/25 by Luke.Thatcher [PLATFORM] [PS4] [^] Merge (as edit) fix for NpToolkit2 initialization in 6CPU mode, from //UE4/Dev-Platform to //UE4/Release-4.15 (Original CL 3271215) - Default thread affinity in the InitParams structure is 7 CPUs. - Using this affinity in games with 6CPU mode set in param.sfo causes init() to fail. - We now select 6 or 7 CPU affinity based on what sceKernelGetCpumode reports at runtime. #jira UE-41079 Change 3271197 on 2017/01/25 by Andrew.Rodham Sequencer: Ensure initial evaluation range correctly sets exclusive lower boundary for subsequent evaluations - This prevents us from erroneously evaluating the initial time twice as part of swept evaluations) #jira UE-40758 Change 3270386 on 2017/01/24 by tim.gautier Updated UMG_Blur to include second Low-Quality asset #jira UE-29618 Change 3270267 on 2017/01/24 by Arciel.Rekman Linux: fix not being able to run a packaged build (UE-37016, UE-39648). - Fixed expansion of paths with spaces in the bootstrap script. - Also increased the timeout since large projects can sometimes get killed on start. - Also killed spammy console output. #jira UE-37016 Change 3270203 on 2017/01/24 by Chris.Babcock Fixed issue with Mac and Linux install and uninstall scripts if ANDROID_HOME not set (contributed by nathansizemore) #jira UE-41042 #PR #3160 #ue4 #android Change 3270037 on 2017/01/24 by tim.gautier Checking in UMG_Blur for UMG test coverage #jira UE-29618 Change 3269829 on 2017/01/24 by matt.barnes Adding content for Material Attribute testing #jira UE-29618 Change 3269700 on 2017/01/24 by Josh.Stoddard force relink of PhysX libs #jira UE-39791 #rb ori.cohen #lockdown james.golding Change 3269621 on 2017/01/24 by Allan.Bentham Make sure 'intrinsic_GetHDR32bppEncodeModeES2()' reports no encoding mode when mobileHDR == false #jira UE-41023 Change 3269503 on 2017/01/24 by Josh.Stoddard Integrate PhysX change 3268008 from //UE4/Dev-Physics-Upgrade #jira UE-39791 #lockdown james.golding #rb josh.stoddard Change 3269359 on 2017/01/24 by Jack.Porter Fix for Web browser widget crash on Android when packaged for Distribution #jira UE-39451 Change 3269316 on 2017/01/24 by Thomas.Sarkanen Fixed non-unity issues with last change for UE-40945 #jira UE-40945 - Crash trying to import facial animations Change 3269047 on 2017/01/23 by Yannick.Lange VREditor: Fix VREditor Laser not hidden on MotionControllers with docked Menu/UI Panels #jira UE-40070 Change 3268824 on 2017/01/23 by Rolando.Caloca UE4.15 - Fix for right eye showing black on VR #jira UE-40900 Change 3268752 on 2017/01/23 by Nick.Whiting Fix for assertion for binding an MSAA'd scene color with a non-MSAA'd texture. #jira UE-39304 Change 3268722 on 2017/01/23 by Olaf.Piesche Replicating 3256329 #jira UE-38615 Removing unnecessary assert that fires when exporting emitters. Change 3268220 on 2017/01/23 by Nick.Whiting Adding in a new CVar (vr.SteamVR.UsePostPresentHandoff), which defaults to 0. When set to 0, we do NOT use the SteamVR PostPresentHandoff, which costs some performance GPU time. When 1, we use the call, and get some extra GPU performance. However, this call is NOT safe for scenes that have frame-behind GPU work, like SceneCapture components and Widget Components #jira UE-40570 Change 3268180 on 2017/01/23 by Marc.Audy PendingKill Actors will no longer register their components when the level is being loaded #jira UE-40505 Change 3268076 on 2017/01/23 by Matthew.Griffin Changed Mac SunTemple cook jobs to use Sample Editor to avoid errors about mismatched files #jira UE-40806 Change 3267997 on 2017/01/23 by Mitchell.Wilson Increased lightmap size on spheres in volumes example to resolve issue with lighting. Corrected misspelling in multiple examples and one UMG asset. #jira UE-40890 UE-40926 UE-40882 UE-40928 UE-40825 UE-40819 Change 3267892 on 2017/01/23 by Mitchell.Wilson Removed preview mesh on M_Bird_Inst that was referencing a static mesh that was removed or renamed to resolve warnings in CIS. #jira UE-40300 Change 3267866 on 2017/01/23 by Thomas.Sarkanen Prevented crash when using Facial Animation importer Also hid the feature behind an experiemental setting flag, as it is not ready for users yet. #jira UE-40945 - Crash trying to import facial animations Change 3267834 on 2017/01/23 by Nick.Darnell An addition to 3255247, this also adds input processing incrementing for double click, and preview mouse down. #jira UE-40313 Change 3267785 on 2017/01/23 by Marc.Audy Put proper line endings when modifying template files when installing feature pack #jira UE-40939 Change 3267761 on 2017/01/23 by Mitchell.Wilson Moved left landscape mesh slightly to hide a seam that can be seen when using VR and looking over the railing. #jira UE-40916 Change 3267632 on 2017/01/23 by Jurre.deBaare Marker syncs not working correctly in Blend Spaces #fix Ensure that SampleIndexWithMarkers is serialized #JIRA UE-40975 [CL 3287682 by Matthew Griffin in Main branch]
2017-02-06 10:41:38 -05:00
#include "SceneUtils.h"
const uint32 SizeOfFloat4 = 16;
const uint32 NumFloatsInFloat4 = 4;
FORCEINLINE void FOpenGLShaderParameterCache::FRange::MarkDirtyRange(uint32 NewStartVector, uint32 NewNumVectors)
{
if (NumVectors > 0)
{
uint32 High = StartVector + NumVectors;
uint32 NewHigh = NewStartVector + NewNumVectors;
uint32 MaxVector = FMath::Max(High, NewHigh);
uint32 MinVector = FMath::Min(StartVector, NewStartVector);
StartVector = MinVector;
NumVectors = (MaxVector - MinVector) + 1;
}
else
{
StartVector = NewStartVector;
NumVectors = NewNumVectors;
}
}
/**
* Verify that an OpenGL program has linked successfully.
*/
static bool VerifyLinkedProgram(GLuint Program)
{
SCOPE_CYCLE_COUNTER(STAT_OpenGLShaderLinkVerifyTime);
#if UE_BUILD_DEBUG || DEBUG_GL_SHADERS
GLint LinkStatus = 0;
glGetProgramiv(Program, GL_LINK_STATUS, &LinkStatus);
if (LinkStatus != GL_TRUE)
{
GLint LogLength;
ANSICHAR DefaultLog[] = "No log";
ANSICHAR *CompileLog = DefaultLog;
glGetProgramiv(Program, GL_INFO_LOG_LENGTH, &LogLength);
if (LogLength > 1)
{
CompileLog = (ANSICHAR *)FMemory::Malloc(LogLength);
glGetProgramInfoLog(Program, LogLength, NULL, CompileLog);
}
UE_LOG(LogRHI,Error,TEXT("Failed to link program. Compile log:\n%s"),
ANSI_TO_TCHAR(CompileLog));
if (LogLength > 1)
{
FMemory::Free(CompileLog);
}
return false;
}
#endif
return true;
}
/**
* Verify that an OpenGL shader has compiled successfully.
*/
static bool VerifyCompiledShader(GLuint Shader, const ANSICHAR* GlslCode )
{
SCOPE_CYCLE_COUNTER(STAT_OpenGLShaderCompileVerifyTime);
#if UE_BUILD_DEBUG || DEBUG_GL_SHADERS
if (FOpenGL::SupportsSeparateShaderObjects() && glIsProgram(Shader))
{
bool const bCompiledOK = VerifyLinkedProgram(Shader);
#if DEBUG_GL_SHADERS
if (!bCompiledOK && GlslCode)
{
UE_LOG(LogRHI,Error,TEXT("Shader:\n%s"),ANSI_TO_TCHAR(GlslCode));
#if 0
const ANSICHAR *Temp = GlslCode;
for ( int i = 0; i < 30 && (*Temp != '\0'); ++i )
{
FString Converted = ANSI_TO_TCHAR( Temp );
Converted.LeftChop( 256 );
UE_LOG(LogRHI,Display,TEXT("%s"), *Converted );
Temp += Converted.Len();
}
#endif
}
#endif
return bCompiledOK;
}
else
{
GLint CompileStatus;
glGetShaderiv(Shader, GL_COMPILE_STATUS, &CompileStatus);
if (CompileStatus != GL_TRUE)
{
GLint LogLength;
ANSICHAR DefaultLog[] = "No log";
ANSICHAR *CompileLog = DefaultLog;
glGetShaderiv(Shader, GL_INFO_LOG_LENGTH, &LogLength);
#if PLATFORM_ANDROID
if ( LogLength == 0 )
{
// make it big anyway
// there was a bug in android 2.2 where glGetShaderiv would return 0 even though there was a error message
// https://code.google.com/p/android/issues/detail?id=9953
LogLength = 4096;
}
#endif
if (LogLength > 1)
{
CompileLog = (ANSICHAR *)FMemory::Malloc(LogLength);
glGetShaderInfoLog(Shader, LogLength, NULL, CompileLog);
}
#if DEBUG_GL_SHADERS
if (GlslCode)
{
UE_LOG(LogRHI,Error,TEXT("Shader:\n%s"),ANSI_TO_TCHAR(GlslCode));
#if 0
const ANSICHAR *Temp = GlslCode;
for ( int i = 0; i < 30 && (*Temp != '\0'); ++i )
{
FString Converted = ANSI_TO_TCHAR( Temp );
Converted.LeftChop( 256 );
UE_LOG(LogRHI,Display,TEXT("%s"), *Converted );
Temp += Converted.Len();
}
#endif
}
#endif
UE_LOG(LogRHI,Fatal,TEXT("Failed to compile shader. Compile log:\n%s"), ANSI_TO_TCHAR(CompileLog));
if (LogLength > 1)
{
FMemory::Free(CompileLog);
}
return false;
}
}
#endif
return true;
}
static bool VerifyProgramPipeline(GLuint Program)
{
bool bOK = true;
// Don't try and validate SSOs here - the draw state matters to SSOs and it definitely can't be guaranteed to be valid at this stage
if ( FOpenGL::SupportsSeparateShaderObjects() )
{
#if DEBUG_GL_SHADERS
bOK = FOpenGL::IsProgramPipeline(Program);
#endif
}
else
{
bOK = VerifyLinkedProgram(Program);
}
return bOK;
}
// ============================================================================================================================
class FOpenGLCompiledShaderKey
{
public:
FOpenGLCompiledShaderKey(
GLenum InTypeEnum,
uint32 InCodeSize,
uint32 InCodeCRC
)
: TypeEnum(InTypeEnum)
, CodeSize(InCodeSize)
, CodeCRC(InCodeCRC)
{}
friend bool operator ==(const FOpenGLCompiledShaderKey& A,const FOpenGLCompiledShaderKey& B)
{
return A.TypeEnum == B.TypeEnum && A.CodeSize == B.CodeSize && A.CodeCRC == B.CodeCRC;
}
friend uint32 GetTypeHash(const FOpenGLCompiledShaderKey &Key)
{
return GetTypeHash(Key.TypeEnum) ^ GetTypeHash(Key.CodeSize) ^ GetTypeHash(Key.CodeCRC);
}
private:
GLenum TypeEnum;
uint32 CodeSize;
uint32 CodeCRC;
};
typedef TMap<FOpenGLCompiledShaderKey,GLuint> FOpenGLCompiledShaderCache;
static FOpenGLCompiledShaderCache& GetOpenGLCompiledShaderCache()
{
static FOpenGLCompiledShaderCache CompiledShaderCache;
return CompiledShaderCache;
}
// ============================================================================================================================
static const TCHAR* ShaderNameFromShaderType(GLenum ShaderType)
{
switch(ShaderType)
{
case GL_VERTEX_SHADER: return TEXT("vertex");
case GL_FRAGMENT_SHADER: return TEXT("fragment");
case GL_GEOMETRY_SHADER: return TEXT("geometry");
case GL_TESS_CONTROL_SHADER: return TEXT("hull");
case GL_TESS_EVALUATION_SHADER: return TEXT("domain");
case GL_COMPUTE_SHADER: return TEXT("compute");
default: return NULL;
}
}
// ============================================================================================================================
namespace
{
inline void AppendCString(TArray<ANSICHAR> & Dest, const ANSICHAR * Source)
{
if (Dest.Num() > 0)
{
Dest.Insert(Source, FCStringAnsi::Strlen(Source), Dest.Num() - 1);;
}
else
{
Dest.Append(Source, FCStringAnsi::Strlen(Source) + 1);
}
}
inline void ReplaceCString(TArray<ANSICHAR> & Dest, const ANSICHAR * Source, const ANSICHAR * Replacement)
{
int32 SourceLen = FCStringAnsi::Strlen(Source);
int32 ReplacementLen = FCStringAnsi::Strlen(Replacement);
int32 FoundIndex = 0;
for (const ANSICHAR * FoundPointer = FCStringAnsi::Strstr(Dest.GetData(), Source);
nullptr != FoundPointer;
FoundPointer = FCStringAnsi::Strstr(Dest.GetData()+FoundIndex, Source))
{
FoundIndex = FoundPointer - Dest.GetData();
Dest.RemoveAt(FoundIndex, SourceLen);
Dest.Insert(Replacement, ReplacementLen, FoundIndex);
}
}
inline const ANSICHAR * CStringEndOfLine(const ANSICHAR * Text)
{
const ANSICHAR * LineEnd = FCStringAnsi::Strchr(Text, '\n');
if (nullptr == LineEnd)
{
LineEnd = Text + FCStringAnsi::Strlen(Text);
}
return LineEnd;
}
inline bool CStringIsBlankLine(const ANSICHAR * Text)
{
while (!FCharAnsi::IsLinebreak(*Text))
{
if (!FCharAnsi::IsWhitespace(*Text))
{
return false;
}
++Text;
}
return true;
}
inline int CStringCountOccurances(TArray<ANSICHAR> & Source, const ANSICHAR * TargetString)
{
int32 TargetLen = FCStringAnsi::Strlen(TargetString);
int Count = 0;
int32 FoundIndex = 0;
for (const ANSICHAR * FoundPointer = FCStringAnsi::Strstr(Source.GetData(), TargetString);
nullptr != FoundPointer;
FoundPointer = FCStringAnsi::Strstr(Source.GetData() + FoundIndex, TargetString))
{
FoundIndex = FoundPointer - Source.GetData();
FoundIndex += TargetLen;
Count++;
}
return Count;
}
inline bool MoveHashLines(TArray<ANSICHAR> & Dest, TArray<ANSICHAR> & Source)
{
// Walk through the lines to find the first non-# line...
const ANSICHAR * LineStart = Source.GetData();
for (bool FoundNonHashLine = false; !FoundNonHashLine;)
{
const ANSICHAR * LineEnd = CStringEndOfLine(LineStart);
if (LineStart[0] != '#' && !CStringIsBlankLine(LineStart))
{
FoundNonHashLine = true;
}
else if (LineEnd[0] == '\n')
{
LineStart = LineEnd + 1;
}
else
{
LineStart = LineEnd;
}
}
// Copy the hash lines over, if we found any. And delete from
// the source.
if (LineStart > Source.GetData())
{
int32 LineLength = LineStart - Source.GetData();
if (Dest.Num() > 0)
{
Dest.Insert(Source.GetData(), LineLength, Dest.Num() - 1);
}
else
{
Dest.Append(Source.GetData(), LineLength);
Dest.Append("", 1);
}
if (Dest.Last(1) != '\n')
{
Dest.Insert("\n", 1, Dest.Num() - 1);
}
Source.RemoveAt(0, LineStart - Source.GetData());
return true;
}
return false;
}
}
inline uint32 GetTypeHash(FAnsiCharArray const& CharArray)
{
return FCrc::MemCrc32(CharArray.GetData(), CharArray.Num() * sizeof(ANSICHAR));
}
static void BindShaderLocations(GLenum TypeEnum, GLuint Resource, uint16 InOutMask, const uint8 * RemapTable = nullptr)
{
if ( OpenGLShaderPlatformNeedsBindLocation(GMaxRHIShaderPlatform) )
{
ANSICHAR Buf[32] = {0};
switch(TypeEnum)
{
case GL_VERTEX_SHADER:
{
uint32 Mask = InOutMask;
uint32 Index = 0;
FCStringAnsi::Strcpy(Buf, "in_ATTRIBUTE");
while (Mask)
{
if (Mask & 0x1)
{
if (Index < 10)
{
Buf[12] = '0' + Index;
Buf[13] = 0;
}
else
{
Buf[12] = '1';
Buf[13] = '0' + (Index % 10);
Buf[14] = 0;
}
if (FOpenGL::NeedsVertexAttribRemapTable())
{
check(RemapTable != nullptr);
uint32 MappedAttributeIndex = RemapTable[Index];
check(MappedAttributeIndex < NUM_OPENGL_VERTEX_STREAMS);
glBindAttribLocation(Resource, MappedAttributeIndex, Buf);
}
else
{
glBindAttribLocation(Resource, Index, Buf);
}
}
Index++;
Mask >>= 1;
}
break;
}
case GL_FRAGMENT_SHADER:
{
uint32 Mask = (InOutMask) & 0x7fff; // mask out the depth bit
uint32 Index = 0;
FCStringAnsi::Strcpy(Buf, "out_Target");
while (Mask)
{
if (Mask & 0x1)
{
if (Index < 10)
{
Buf[10] = '0' + Index;
Buf[11] = 0;
}
else
{
Buf[10] = '1';
Buf[11] = '0' + (Index % 10);
Buf[12] = 0;
}
FOpenGL::BindFragDataLocation(Resource, Index, Buf);
}
Index++;
Mask >>= 1;
}
break;
}
case GL_GEOMETRY_SHADER:
case GL_COMPUTE_SHADER:
case GL_TESS_CONTROL_SHADER:
case GL_TESS_EVALUATION_SHADER:
break;
default:
check(0);
break;
}
}
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// Helper to compile a shader and return success, logging errors if necessary.
GLint CompileCurrentShader(const GLuint Resource, const FAnsiCharArray& GlslCode)
{
const ANSICHAR * GlslCodeString = GlslCode.GetData();
int32 GlslCodeLength = GlslCode.Num() - 1;
glShaderSource(Resource, 1, (const GLchar**)&GlslCodeString, &GlslCodeLength);
glCompileShader(Resource);
GLint CompileStatus = GL_TRUE;
#if PLATFORM_ANDROID
// On Android the same shader is compiled with different hacks to find the right one(s) to apply so don't cache unless successful if currently testing them
if (FOpenGL::IsCheckingShaderCompilerHacks())
{
glGetShaderiv(Resource, GL_COMPILE_STATUS, &CompileStatus);
}
#endif
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3228013) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3156770 on 2016/10/10 by Allan.Bentham Fix VULKAN_ENABLE_API_DUMP build on android. Change 3157838 on 2016/10/11 by Allan.Bentham Fix Vulkan API tracing on android. Change 3170713 on 2016/10/21 by Steve.Cano Adding the "Optional Mobile Features BP Library" plugin to explose Blueprint functions for Sound Volume, Battery level, system temperature (only available on android), and Headphones being plugged in #jira UE-30896 #android #ios #ue4 Change 3171064 on 2016/10/21 by Steve.Cano Plugins to provide a common interface and Android implemenation for providing access to GPS / Location data from Blueprints #ue4 #android #jira UE-35917 Change 3171065 on 2016/10/21 by Steve.Cano IOS implementation of LocationServices plugin to provide access to location data in Blueprints #ue4 #ios #jira UE-35917 Change 3181802 on 2016/11/01 by Steve.Cano Fix an issue introduced in CL 3170713 - Adding new config section to RequiredSections list so that we can generate projects successfully. #jira UE-30896 #ios Change 3181807 on 2016/11/01 by Steve.Cano Make sure to clear out references to our eglSurface when we destroy it, else we will try to set our context with an invalid surface. #jira UE-35004 #android #ue4 Change 3184827 on 2016/11/03 by Allan.Bentham Do not HDR32 encode for views without view family. TranslucentAlphaOnly blend mode now works with encoding. #jira UE-37951 Change 3186684 on 2016/11/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3188693 on 2016/11/07 by Chris.Babcock Corrections to memory stats for Android #jira WEX-3760 #ue4 #android Change 3191538 on 2016/11/09 by Allan.Bentham Mobile tonemapper can use CVarTonemapperOverride Change 3192575 on 2016/11/09 by Chris.Babcock Support placing UE4Game files in ExternalFilesDir for automatic cleanup on uninstall for distribution packages #jira UEPLAT-1422 #ue4 #android Change 3196231 on 2016/11/13 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3196538 on 2016/11/14 by Jack.Porter Fix issue where lighting would not build for the first editor session of projects defaulting to MobileHDR=false as HardwareTargetingModule didn't set cvars #jira UE-38507 Change 3198068 on 2016/11/15 by Dmitriy.Dyomin Fixed android console command sender to work with ADB version 1.0.36 #jira UE-35171 Change 3200230 on 2016/11/16 by Jack.Porter Remove mosaic resolution limitation on ES3 devices #jira WEX-3119 Change 3201251 on 2016/11/16 by Chris.Babcock Fix Android compile error Change 3203542 on 2016/11/18 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3205598 on 2016/11/21 by Dmitriy.Dyomin Fixed: Missing selection outline in editor ES2 preview #jira UE-6458 Change 3205622 on 2016/11/21 by Dmitriy.Dyomin Fix ES2 build error from CL# 3205598 Change 3207232 on 2016/11/22 by Dmitriy.Dyomin ES2 GLSL generated shader simplifications Change 3208608 on 2016/11/23 by Dmitriy.Dyomin Fixed: Landscape Grasstype warning causes log spam when landscape is streamed in or out #jira UE-38694 Change 3209135 on 2016/11/23 by Alicia.Cano Packaging for iOS fails due to several invalid object type errors #jira UE-38431 #ios Change 3209822 on 2016/11/24 by Jack.Porter IWYU changes for LocationServicesBPLibrary Change 3209824 on 2016/11/24 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3210264 on 2016/11/25 by Jack.Porter Fix unicode compile issue on Korean windows Change 3210268 on 2016/11/25 by Jack.Porter IWYU and unicode fixes to Dev-Mobile Change 3211800 on 2016/11/28 by Allan.Bentham Create and set PrimitiveSceneProxy->PrimitiveSceneInfo before SetTransform render thread command is enqueued. Avoids race condition with FPrimitiveSceneInfo's constructor which can occur on out-of-order CPUs. Change 3212621 on 2016/11/28 by Jack.Porter More IWYU fixes. Change 3213080 on 2016/11/29 by Allan.Bentham enable UseSingleSampleShadowFromStationaryLights on mobile. PR #2990: Fixes single sample shadows for mobile. (Contributed by kallehamalainen) Change 3213164 on 2016/11/29 by Jack.Porter Win32 IWYU fix Change 3213932 on 2016/11/29 by Chris.Babcock Fix handling of ETC2 filtering by Google Play Store (if only ETC2, require ES3.0+ but don't use texture filtering in manifest) #jira UE-39120 #ue4 #android Change 3214563 on 2016/11/29 by Dmitriy.Dyomin Disable dynamic buffer discarding on Adreno330 (was casuing 10ms stalls on slate buffers update) Change 3214571 on 2016/11/29 by Dmitriy.Dyomin Custom stencil on Mobile #jira UEMOB-183 Change 3214641 on 2016/11/30 by Dmitriy.Dyomin Disable distance culling when rendering image for world composition #jira UE-37754 Change 3214656 on 2016/11/30 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3218479 on 2016/12/01 by Jack.Porter Fix for Vulkan build error when using AutoSDK Change 3218596 on 2016/12/02 by Dmitriy.Dyomin Fixed: Android split screen multiplayer does not function or render correctly #jira UE-35204 Change 3218874 on 2016/12/02 by Allan.Bentham Fix CSM shadow bug when ES3.1 + mobileHDR == false. Fix inverted culling when rendering shadow depths with mobilehdr == false #jira UE-39111 Change 3220911 on 2016/12/04 by Jack.Porter Fixed landscape duplicated GUID detection and crash when one of the landscapes is in a hidden streaming level Change 3220935 on 2016/12/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3222831 on 2016/12/05 by Dmitriy.Dyomin Added support for MGD and Andreno profilers #jira UEMOB-184 Change 3222843 on 2016/12/05 by Jack.Porter Fixed bug caused by CL 3196538 causing r.MobileHDR to toggle and crash when opening render settings #jira UE-38507 Change 3222934 on 2016/12/06 by Jack.Porter Android graphics debugger text changes Change 3223042 on 2016/12/06 by Dmitriy.Dyomin Fixed: missing GPU particles in LDR mode on device #jira UE-39363 Change 3223043 on 2016/12/06 by Jack.Porter Fixed logspam warnings from TcpMessaging launching on Android #jira UE-37895 Change 3223046 on 2016/12/06 by Allan.Bentham Move ES3.1 preview mode out of experimental. Add per device quality level preview to ES3.1 preview sub menu when project settings allow. #jira UEMOB-178 Change 3223113 on 2016/12/06 by Allan.Bentham changed MOBILE_EMULATION define for METAL_PROFILE on mac. fixes issues with editor primitive rendering with ES3.1 feature level preview. added -featureleveles2/31 commandline support to metalrhi. Change 3223117 on 2016/12/06 by Allan.Bentham Initialise FPrimitiveSceneInfo::CachedReflectionCaptureProxies Change 3223131 on 2016/12/06 by Allan.Bentham Fix translucency rendering when mobilehdr == false. (Disable mod shadows when mobilehdr == false.) #jira UE-38343 Change 3223162 on 2016/12/06 by Jack.Porter Disallow Absolute World Position with "excluding shader offset" on ES2 #jra UE-25555 Change 3223204 on 2016/12/06 by Jack.Porter Fix for unable to save levels when landscape components with tessellation moved to another level #jira UE-39372 Change 3223677 on 2016/12/06 by Chris.Babcock Fix tabs Change 3224139 on 2016/12/06 by Chris.Babcock Support modification of build.xml and add post import additions to GameActivity #jira UE-31372 #PR #2440 #ue4 #android Change 3224152 on 2016/12/06 by Chris.Babcock Add support for MadCatz C.T.R.L.R Android controller models #ue4 #android Change 3224162 on 2016/12/06 by Chris.Babcock Driver bug fix and using separate context for MediaPlayer14 (contributed by BrianHarris) #jira UE-35825 #PR #2787 #ue4 #android Change 3224581 on 2016/12/07 by Dmitriy.Dyomin Fixed black screen regression on iOS OpenGL Also now reporting shader compiler errors in iOS Change 3224589 on 2016/12/07 by Allan.Bentham Increase mobile renderer's maximum CSM cascade limit to 4 and introduce max shadow cascade cvar for mobile which defaults to 2 retaining existing behaviour. #jira UEMOB-187 Change 3224774 on 2016/12/07 by Jack.Porter Added flags for mobile shader permutation reduction Renamed mobile lighting policies to better describe them Set flags to remove policies not used by SunTemple - saves 22MB package size on Android #jira: UEMOB-179 Change 3224782 on 2016/12/07 by Allan.Bentham Add project option to set maximum supported CSM cascades to mobile renderer. #jira UEMOB-187 Change 3224943 on 2016/12/07 by Dmitriy.Dyomin Metal iOS will use sRGB textures #jira UEMOB-189 Change 3225098 on 2016/12/07 by Dmitriy.Dyomin fix for compile error from 3224943 Change 3225188 on 2016/12/07 by Chris.Babcock Fix #includes in deferred Android OpenGL #jira UE-39440 #ue4 #android Change 3226402 on 2016/12/07 by Dmitriy.Dyomin Fixed: wrong condition for r8 srgb on mac #jira UE-39471 Change 3226485 on 2016/12/08 by Dmitriy.Dyomin Fixed: Rendering Artifacts and invisible objects in Fortnite regression from nobile custom stencil changes #jira UE-39452, UE-39455 Change 3226637 on 2016/12/08 by Dmitriy.Dyomin Fixed: Odin Ensure Texture passed to ClearDepthStencil is not what is currently set as RenderTarget #jira UE-39482 Change 3226922 on 2016/12/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3227353 on 2016/12/08 by Chris.Babcock Remove CopyVisualizers batch call again Change 3228013 on 2016/12/08 By Chris.Babcock Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) [CL 3228374 by Jack Porter in Main branch]
2016-12-08 22:53:00 -05:00
#if (PLATFORM_HTML5 || PLATFORM_ANDROID || PLATFORM_IOS) && !UE_BUILD_SHIPPING
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
if (!FOpenGL::IsCheckingShaderCompilerHacks())
{
glGetShaderiv(Resource, GL_COMPILE_STATUS, &CompileStatus);
if (CompileStatus == GL_FALSE)
{
char Msg[2048];
glGetShaderInfoLog(Resource, 2048, nullptr, Msg);
UE_LOG(LogRHI, Error, TEXT("Shader compile failed: %s\n Original Source is (len %d) %s"), ANSI_TO_TCHAR(Msg), GlslCodeLength, ANSI_TO_TCHAR(GlslCodeString));
}
}
#endif
#if PLATFORM_IOS // fix for running out of memory in the driver when compiling/linking a lot of shaders on the first frame
if (FOpenGL::IsLimitingShaderCompileCount())
{
static int CompileCount = 0;
CompileCount++;
if (CompileCount == 2500)
{
glFlush();
CompileCount = 0;
}
}
#endif
return CompileStatus;
}
/**
* Compiles an OpenGL shader using the given GLSL microcode.
* @returns the compiled shader upon success.
*/
template <typename ShaderType>
ShaderType* CompileOpenGLShader(const TArray<uint8>& InShaderCode)
{
SCOPE_CYCLE_COUNTER(STAT_OpenGLShaderCompileTime);
VERIFY_GL_SCOPE();
FShaderCodeReader ShaderCode(InShaderCode);
ShaderType* Shader = nullptr;
const GLenum TypeEnum = ShaderType::TypeEnum;
FMemoryReader Ar(InShaderCode, true);
Ar.SetLimitSize(ShaderCode.GetActualShaderCodeSize());
FOpenGLCodeHeader Header = { 0 };
Ar << Header;
// Suppress static code analysis warning about a potential comparison of two constants
CA_SUPPRESS(6326);
if (Header.GlslMarker != 0x474c534c
|| (TypeEnum == GL_VERTEX_SHADER && Header.FrequencyMarker != 0x5653)
|| (TypeEnum == GL_FRAGMENT_SHADER && Header.FrequencyMarker != 0x5053)
|| (TypeEnum == GL_GEOMETRY_SHADER && Header.FrequencyMarker != 0x4753)
|| (TypeEnum == GL_COMPUTE_SHADER && Header.FrequencyMarker != 0x4353 && FOpenGL::SupportsComputeShaders())
|| (TypeEnum == GL_TESS_CONTROL_SHADER && Header.FrequencyMarker != 0x4853 && FOpenGL::SupportsTessellation()) /* hull shader*/
|| (TypeEnum == GL_TESS_EVALUATION_SHADER && Header.FrequencyMarker != 0x4453 && FOpenGL::SupportsTessellation()) /* domain shader*/
)
{
UE_LOG(LogRHI,Fatal,
TEXT("Corrupt shader bytecode. GlslMarker=0x%08x FrequencyMarker=0x%04x"),
Header.GlslMarker,
Header.FrequencyMarker
);
return nullptr;
}
int32 CodeOffset = Ar.Tell();
// The code as given to us.
FAnsiCharArray GlslCodeOriginal;
AppendCString(GlslCodeOriginal, (ANSICHAR*)InShaderCode.GetData() + CodeOffset);
uint32 GlslCodeOriginalCRC = FCrc::MemCrc_DEPRECATED(GlslCodeOriginal.GetData(), GlslCodeOriginal.Num());
// The amended code we actually compile.
FAnsiCharArray GlslCode;
// Find the existing compiled shader in the cache.
FOpenGLCompiledShaderKey Key(TypeEnum, GlslCodeOriginal.Num(), GlslCodeOriginalCRC);
GLuint Resource = GetOpenGLCompiledShaderCache().FindRef(Key);
if (!Resource)
{
#if CHECK_FOR_GL_SHADERS_TO_REPLACE
{
// 1. Check for specific file
FString PotentialShaderFileName = FString::Printf(TEXT("%s-%d-0x%x.txt"), ShaderNameFromShaderType(TypeEnum), GlslCodeOriginal.Num(), GlslCodeOriginalCRC);
FString PotentialShaderFile = FPaths::ProfilingDir();
PotentialShaderFile *= PotentialShaderFileName;
UE_LOG( LogRHI, Log, TEXT("Looking for shader file '%s' for potential replacement."), *PotentialShaderFileName );
int64 FileSize = IFileManager::Get().FileSize(*PotentialShaderFile);
if( FileSize > 0 )
{
FArchive* Ar = IFileManager::Get().CreateFileReader(*PotentialShaderFile);
if( Ar != NULL )
{
UE_LOG(LogRHI, Log, TEXT("Replacing %s shader with length %d and CRC 0x%x with the one from a file."), (TypeEnum == GL_VERTEX_SHADER) ? TEXT("vertex") : ((TypeEnum == GL_FRAGMENT_SHADER) ? TEXT("fragment") : TEXT("geometry")), GlslCodeOriginal.Num(), GlslCodeOriginalCRC);
// read in the file
GlslCodeOriginal.Empty();
GlslCodeOriginal.AddUninitialized(FileSize + 1);
Ar->Serialize(GlslCodeOriginal.GetData(), FileSize);
delete Ar;
GlslCodeOriginal[FileSize] = 0;
}
}
}
#endif
Resource = FOpenGL::CreateShader(TypeEnum);
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
// get a modified version of the shader based on device capabilities to compile (destructive to GlslCodeOriginal copy)
FOpenGLShaderDeviceCapabilities Capabilities;
GetCurrentOpenGLShaderDeviceCapabilities(Capabilities);
GLSLToDeviceCompatibleGLSL(GlslCodeOriginal, Header.ShaderName, TypeEnum, Capabilities, GlslCode);
GLint CompileStatus = GL_TRUE;
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// Save the code and defer compilation if our device supports program binaries and we're not checking for shader compatibility.
if (!FOpenGLProgramBinaryCache::DeferShaderCompilation(Resource, GlslCode))
{
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
CompileStatus = CompileCurrentShader(Resource, GlslCode);
}
if ( CompileStatus == GL_TRUE )
{
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
if (Capabilities.bSupportsSeparateShaderObjects)
{
ANSICHAR Buf[32] = {0};
// Create separate shader program
GLuint SeparateResource = FOpenGL::CreateProgram();
FOpenGL::ProgramParameter( SeparateResource, GL_PROGRAM_SEPARABLE, GL_TRUE );
glAttachShader(SeparateResource, Resource);
glLinkProgram(SeparateResource);
bool const bLinkedOK = VerifyLinkedProgram(SeparateResource);
if (!bLinkedOK)
{
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
const ANSICHAR* GlslCodeString = GlslCode.GetData();
check(VerifyCompiledShader(Resource, GlslCodeString));
}
#if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
void VerifyUniformBufferLayouts(GLuint Program);
VerifyUniformBufferLayouts(SeparateResource);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
Resource = SeparateResource;
}
// Cache it; compile status will be checked later on link (always caching will prevent multiple attempts to compile a failed shader)
GetOpenGLCompiledShaderCache().Add(Key, Resource);
}
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
}
Shader = new ShaderType();
Shader->Resource = Resource;
Shader->Bindings = Header.Bindings;
Shader->UniformBuffersCopyInfo = Header.UniformBuffersCopyInfo;
// If there is no shader cache then we must assign the hash here
if (FOpenGL::SupportsSeparateShaderObjects() && !FShaderCache::GetShaderCache())
{
// Just use the CRC - if it isn't being cached & logged we'll be dependent on the CRC alone anyway
FSHAHash Hash;
FMemory::Memcpy(Hash.Hash, &GlslCodeOriginalCRC, sizeof(uint32));
Shader->SetHash(Hash);
}
#if DEBUG_GL_SHADERS
Shader->GlslCode = GlslCode;
Shader->GlslCodeString = (ANSICHAR*)Shader->GlslCode.GetData();
#endif
return Shader;
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
void OPENGLDRV_API GetCurrentOpenGLShaderDeviceCapabilities(FOpenGLShaderDeviceCapabilities& Capabilities)
{
FMemory::Memzero(Capabilities);
#if PLATFORM_DESKTOP
Capabilities.TargetPlatform = EOpenGLShaderTargetPlatform::OGLSTP_Desktop;
#elif PLATFORM_ANDROID
Capabilities.TargetPlatform = EOpenGLShaderTargetPlatform::OGLSTP_Android;
Capabilities.bUseES30ShadingLanguage = FOpenGL::UseES30ShadingLanguage();
Capabilities.bSupportsStandardDerivativesExtension = FOpenGL::SupportsStandardDerivativesExtension();
Capabilities.bSupportsRenderTargetFormat_PF_FloatRGBA = GSupportsRenderTargetFormat_PF_FloatRGBA;
Capabilities.bSupportsShaderFramebufferFetch = FOpenGL::SupportsShaderFramebufferFetch();
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
Capabilities.bRequiresARMShaderFramebufferFetchDepthStencilUndef = FOpenGL::RequiresARMShaderFramebufferFetchDepthStencilUndef();
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
Capabilities.bRequiresDontEmitPrecisionForTextureSamplers = FOpenGL::RequiresDontEmitPrecisionForTextureSamplers();
Capabilities.bSupportsShaderTextureLod = FOpenGL::SupportsShaderTextureLod();
Capabilities.bSupportsShaderTextureCubeLod = FOpenGL::SupportsShaderTextureCubeLod();
Capabilities.bRequiresTextureCubeLodEXTToTextureCubeLodDefine = FOpenGL::RequiresTextureCubeLodEXTToTextureCubeLodDefine();
Capabilities.bRequiresGLFragCoordVaryingLimitHack = FOpenGL::RequiresGLFragCoordVaryingLimitHack();
Capabilities.MaxVaryingVectors = FOpenGL::GetMaxVaryingVectors();
Capabilities.bRequiresTexture2DPrecisionHack = FOpenGL::RequiresTexture2DPrecisionHack();
#elif PLATFORM_HTML5
Capabilities.TargetPlatform = EOpenGLShaderTargetPlatform::OGLSTP_HTML5;
Capabilities.bUseES30ShadingLanguage = FOpenGL::UseES30ShadingLanguage();
Capabilities.bSupportsShaderTextureLod = FOpenGL::SupportsShaderTextureLod();
#elif PLATFORM_IOS
Capabilities.TargetPlatform = EOpenGLShaderTargetPlatform::OGLSTP_iOS;
#else
Capabilities.TargetPlatform = EOpenGLShaderTargetPlatform::OGLSTP_Unknown;
#endif
Capabilities.MaxRHIShaderPlatform = GMaxRHIShaderPlatform;
Capabilities.bSupportsSeparateShaderObjects = FOpenGL::SupportsSeparateShaderObjects();
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
#if OPENGL_ES2 || OPENGL_ESDEFERRED
Capabilities.bRequiresUEShaderFramebufferFetchDef = FOpenGL::RequiresUEShaderFramebufferFetchDef();
#endif
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
}
void OPENGLDRV_API GLSLToDeviceCompatibleGLSL(FAnsiCharArray& GlslCodeOriginal, const FString& ShaderName, GLenum TypeEnum, const FOpenGLShaderDeviceCapabilities& Capabilities, FAnsiCharArray& GlslCode)
{
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
// Whether shader was compiled for ES 3.1
const bool bES31 = (FCStringAnsi::Strstr(GlslCodeOriginal.GetData(), "#version 310 es") != nullptr);
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3145687) #lockdown Nick.Penwarden #rb Merge ========================== MAJOR FEATURES + CHANGES ========================== Change 3094167 on 2016/08/18 by Jeff.Fisher UEVR-97 Morpheus HMD tracking needs to wait until HMD is fully tracked. -Morpheus CALIBRATING/NOT_TRACKED tracking state hmd orientation update disabled and delegates added to present instructions to the user. This behavior is controlled by morpheus ini setting bDisableHMDOrientationUntilHMDHasBeenTracked, but defaulted to true to avoid subtly bad user experiences. #review-3094106 @chad.taylor #jira UEVR-97 Change 3104799 on 2016/08/29 by Jeff.Fisher UEVR-178 Morpheus HMD Black crescents -Switched reprojection frame time for 60/120 mode from 120hz to 60hz so we much better predict where the hmd will be pointing when the frame we are about to render is actually displayed, and are run off the edge of it less often and less severely. This makes the black crescent artifacts only just visible during very fast head turning. The kWrapModeMirror change, which will be submitted separately, makes the left and right crescents invisible to me. -Renamed the functions for setting the prediction info in the PS4Tracker. -Added render frame parameters to sony reprojection functions, these can help with debugging reprojection. -Added commented out sce call to get the reprojection debug data. Not allowed to submit an executable that calls it, but its nice to at least know where one can put it. May improve this later. -Wrapped PS4Tracker->Synchronize call in a check that the tracker handle is valid, because I managed to get it called when it wasn't (probably during hmd power off testing, but I don't remember now). It should be fine to not do it if the tracker is not functioning. #review-3104780 chad.taylor #jira UEVR-178 Change 3108423 on 2016/08/31 by Jeff.Fisher Morpheus Config Improvements. -UEVR-138 Morpheus HMD reprojection wrap mode config setting -Can now switch between wrap mode Mirror and ClampToBorder. Mirror is the default. -Made bDisableHMDOrientationUntilHMDHasBeenTracked editable in UE4Editor project settings. -Using generic project setting for bStartInVR, removed the morpheus specific one. #jira UEVR-138 #review-3106999 @nick.whiting Change 3111231 on 2016/09/01 by Jeff.Fisher Fixed bStartInVR ini setting. -Initial implementation worked via a generic EnableStereo call, which worked, but happened after the hmd setup dialog, which is not what I wanted. -Also fixed a tracking frame mismatch assert that hit when I powered the hmd off once, causing it to lose tracking. Its ok that it doesn't update in that circumstance. #review-3111211 @ryan.vance Change 3115196 on 2016/09/06 by Keli.Hlodversson #jira UEVR-128 Map move controller Select button to Invalid, as it is always handled by the system Change 3116425 on 2016/09/07 by Chad.Taylor PSVR: stereo layers implementation Change 3116593 on 2016/09/07 by Jeff.Fisher UEVR-126 Morpheus HMD connect dialog cancel reactions -VR only apps can't allow the player to cancel out of the hmd setup dialog, so lets just pop the dialog up again (sony were ok with a licencee doing this) if an ini setting says to do that. -VR/2D apps might want to switch to 2d if the player cancels out of the hmd setup dialog, so there is an ini setting for that. -A delegate only implementation is also provided for apps that want to do something else. This leaves the game rendering in VR mode, and fires the delegate. -Refactored to better separate successful HMD acquisition from stereo rendering. This was necessary to support the delegate only option on startup. If you start in vr mode with your hmd off and cancel the dialog stereo rendering now starts with default values for the hmd hardware stats (as read from my pvt) instead of crashing trying to use uninitialized data. When an hmd is connected its values will be read. -Refactored to ensure reprojection starts immediately when we call StartReprojection. #jira UEVR-126 #review-3116221 Change 3116754 on 2016/09/07 by Keli.Hlodversson bPixelDensityAdaptive is a bool and not a float property Change 3117692 on 2016/09/08 by Jeff.Fisher UEVR-135 Morpheus HMD recent feature error reporting UEVR-173 2DVR flexibility (UTexture) -Error log for sceHmdReprojectionSetOutputMinColor failure. -Made the parameter for 2dVR a UTexture* instead of a UTexture2D*, so it can be a rendertarget, etc. -Added error logs for missing texture, invalid texture, wrong texture format to 2DVR. #jira UEVR-135 #jira UEVR-173 #review-3116955 @keli.hloedversson Change 3117990 on 2016/09/08 by Jeff.Fisher UEVR-127 Morpheus HMD removal reaction -Added VRHeadsetPutOnHead and VRHeadsetRemovedFromHead delegates, and implemented them for Morpheus. #jira UEVR-127 #review-3117968 @keli.hlodversson Change 3120198 on 2016/09/09 by Jeff.Fisher MorpheusReprojector frame complete wait error log -Now log a warning if the sceKernalWaitEqueue returns an error. It not a problem if this happens rarely, but something is very broken if it starts happening continuously. Change 3121754 on 2016/09/12 by Keli.Hlodversson #jira UE-21878 - Also emit VR initialization analytics events in the editor. Change 3122311 on 2016/09/12 by Nick.Whiting Merging fix for Adreno devices rendering black from 4.13.1 Change 3123057 on 2016/09/13 by Keli.Hlodversson #jira UE-30097 Use the current value of r.ScreenPercentage on Occulus Rift if it's explicitly set. * If the SetBy part of the flags for the console var is SetBy_Constructor, then ignore the value. * If it's SetBy_Scalability, then ignore it if it equals 100 * Else, call SetScreenPercentage using the current value The obsolete HMD SCREENPERCENTAGE console command is still available and will override the setting until r.ScreenPercentage is modified the next time. Change 3123200 on 2016/09/13 by Chad.Taylor PS4 Stereo Layer double buffering. Since the overlays are reprojected at 120hz but rendered at 60hz we need to render to a separate buffer than the one being used by reprojection. Change 3125845 on 2016/09/14 by Keli.Hlodversson #jira UE-33996 Add hmd=<name> command line option to allow overriding which HMD module is used. Renamed GetModulePriorityKeyName to simply GetModuleKeyName, as this name is now also used to match against the command line options. Change 3127293 on 2016/09/15 by Jeff.Fisher UEVR-225 Morpheus HMD top and bottom black crescents -The hidden and visible area meshes for morpheus were too restrictive. Nudged them out a bit, no black crescents at the top and bottom of the screen. We are rendering a few more pixels now though. #review-3127145 @ryan.vance #jira UEVR-225 Change 3130635 on 2016/09/19 by Jeff.Fisher UEVR-226 Morpheus HMD mirrored fill wrong on outer edges -The setting was never being used, leaving the wrap mode at 0 aka kWrapModeWrap. -Refactored how the setting is applied so it works, and is less convoluted. #jira UEVR-226 #review-3129403 Change 3131615 on 2016/09/19 by Keli.Hlodversson #jira UE-29341. Update Chaperone bounds when SteamVR tells us they have changed Change 3136527 on 2016/09/22 by Keli.Hlodversson Don't depend on the current state of the VR subsystem when exiting PIE mode to decide whether the main window should be restored. Instead always restore it if it was minimized at the start. Change 3136652 on 2016/09/22 by Keli.Hlodversson Allow shutting down Steam VR subsystem without shutting down the Steam VR plugin completely in response to quitting from the SteamVR overlay. Enabling stereo rendering again will reinitialize SteamVR. This is useful when using PIE in VR mode as it allows entereing it again without restarting the editor. Also fixes crashes by first disabinge stereo rendering a short while before shutting down the VR subsystem. #jira UE-35940 Change 3138901 on 2016/09/23 by Ryan.Vance Merging 3138521 using OdinToDevVR to bring over temporary forward lighting ISR changes for 4.14 Change 3141614 on 2016/09/27 by Keli.Hlodversson Implement GetNumOfTrackingSensors and GetTrackingSensorProperties on SteamVR. #jira UE-32994 Change 3141948 on 2016/09/27 by Jeff.Fisher UEVR-242 Is AddControllerYawInput not allowed when morpheus is enabled? -Indeed it did not work. Looks like morpheus would not accumulate the yaw, so it would be reset every frame. I made the implementation of ApplyHmdRotation very similar to the one used for occulus (also similar to other platforms) to fix this. #jira UEVR-242 #review-3141933 keli.hlodversson Change 3143484 on 2016/09/28 by Nick.Whiting Integrating Oculus 1.8 SDK support, includes support for cylinder and cubemap stereo layers Change 3143517 on 2016/09/28 by Chad.Taylor Merging PS4Tracker fixes from Release-4.13 into Dev-VR Change 3143805 on 2016/09/28 by Keli.Hlodversson #jira UE-36478 Workaround to make world to meters scale apply correctly to Occulus controllers while running in PIE Change 3143943 on 2016/09/28 by Nick.Whiting Merging latest drop from OSVR Change 3144221 on 2016/09/28 by Keli.Hlodversson Implement GetTrackingSensorProperties on PS4 #jira UE-32994 Change 3144352 on 2016/09/28 by Ryan.Vance Initial implementation of mobile multi-view. This is non-functioning and requires a lot more work, but enough of the framework exists to make the 4.14 branch for an experimental release. Change 3144585 on 2016/09/29 by Jeff.Fisher UEVR-14 PSVR Support for 90Hz to 90Hz, and 120Hz to 120Hz -Enum setting added for the three frame sequences. -90Hz mode is trying to run camera updates at 90hz, but they can only run at 60 so every third one fails. This works, but its dubious. -Feature marked as experimental for now because of that 90hz tracking issue, and the lack of testing. -Defaulting to 60/120. #jira UEVR-14 #review-3143486 chad.taylor nick.whiting Change 3145263 on 2016/09/29 by Nick.Whiting Fix for constructor initialization order in StereoLayerComponent, which threw a warning on Clang Change 3145536 on 2016/09/29 by Nick.Whiting Fixes for project files to prevent mystery pop up from CAPI Change 3145663 on 2016/09/29 by Keli.Hlodversson PSVR: Make sure the camera orientation returned from GetTrackingSensorProperties points in the right direction. Change 3145670 on 2016/09/29 by Keli.Hlodversson For some reason the orientation of the Oculus tracking sensor is reported as pointing backwards. This flips it around to face front Change 3145687 on 2016/09/29 by Chad.Taylor VR splash screen support [CL 3146243 by Nick Whiting in Main branch]
2016-09-30 01:16:13 -04:00
// Whether we need to emit mobile multi-view code or not.
Copying //UE4/Release-Staging-4.14 to //UE4/Dev-Main (Source: //UE4/Release-4.14 @ 3182951) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3182951 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix "play together" invitations handling in PS4 OSS. - Wrong condition in GetUserWebApiContext. Web API contexts can be created for local users (i.e. FUniqueNetIdPS4 instances with a valid SceUserServiceUserId). #jira UE-38017 Change 3182892 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix incorrect identity API implementation in PS4 OSS. - System events directly drive the login state of a user. This also removes the blocking call to sceNpGetState(). - GetAuthToken is only called if the engine calls IOnlineIdentity::Login(). #jira UE-38017 Change 3182767 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix PS4 session invitations. - Was calling old Web API with SceNpOnlineId where SceNpAccountId is needed. - Replaced with NpToolkit2's session invitation API. #jira UE-38020 Change 3182766 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix assert in FUniqueNetIdPS4::FindOrCreate. We were assuming an online-only ID could never become a local ID. This isn't the case in the following scenario: - Two users join a session on two separate PS4s. - One user signs into the other user's PS4 with the same account, with a second controller. PSN logs him out of the first PS4. - That user's Net ID has now migrated from being online-only, to local-with-online. This is a case that was not handled. #jira UE-38017 UE-38020 Change 3182765 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [~] Additional logging for PS4 OSS "Play Together". #jira UE-38017 UE-38020 Change 3182633 on 2016/11/01 by Jack.Porter Fix crash sculpting a landscape with grass that uses the landscape's lightmap, when lighting has not been built #jira UE-38042 Change 3182332 on 2016/11/01 by Mieszko.Zielinski Added a sanity check to UNavigationSystem::AddElementToNavOctree to guard agains DirtyElement.NavInterface being null #UE4 #jira UE-37588 Change 3182321 on 2016/11/01 by Dmitry.Rekman Updated READMEs for 4.14 (UE-38059). #jira UE-38059 Change 3182231 on 2016/11/01 by Mitchell.Wilson Adding Is Valid node in Retargeting_WorldInteractionBP to resolve warning. #jira UE-38079 Change 3182164 on 2016/11/01 by Matt.Kuhlenschmidt Fix alll collision being disabled if you dont auto-generate a simple hull when importing an FBX #jira UE-38091 Change 3182017 on 2016/11/01 by Chris.Babcock Disable glVertexAttribIPointer on PowerVR Rogue #jira UE-38074 #ue4 #android Change 3181942 on 2016/11/01 by Mitchell.Wilson Resolving multiple warnings in CIS for Elemental Demo. #jira UE-38075 Change 3181941 on 2016/11/01 by Nick.Shin PhysX Bulid Automation script update #jira UE-37329 'Compile UE4Game HTML5' - 300 Warnings Change 3181939 on 2016/11/01 by Ryan.Vance #jira UE-38072 We need to add a hook that can be called after native present has finished for SteamVR. PostPresentHandoff should be called when using the interleaved compositor immediately after we've submitted our eye buffers and called present for the mirror window. This unblocks the compositor process so it can do it's re-projection work. Otherwise it will block until we call WaitGetPoses which is a ways into the next frame. Change 3181849 on 2016/11/01 by Nick.Shin jukka's (Mozilla) fixes to SSE2 and GL issues for HTML5 jukka's (Mozilla) python scripts to build ThirdParty HTML5 libs the python scripts will need tweaking - they were moved from their original locations from: https://github.com/Mozilla-Games/UnrealEngine/commit/fd48bc0e4a5f0278a1c036d2b81036ab1270ad68 the CMakeLists.txt (and one configure.ac) files are defiinitely used from the (bash) shell build script (to build thirdparty libs for HTML5)... update existing (bash shell script and UE4 c#) build files to use the new "incoming" emsdk #jira UE-37329 -'Compile UE4Game HTML5' - 300 Warnings Change 3181848 on 2016/11/01 by Nick.Shin update compiled ThirdParty HTML5 libs using new emscripten tool chain (CL:#3180924) #jira UE-37329 - //UE4/Main: Step 'Compile UE4Game HTML5' - 300 Warnings Change 3181838 on 2016/11/01 by Nick.Shin new emscripten tool chain configured by jukka from Mozilla see Engine/Extras/ThirdPartyNotUE/emsdk/emscripten/incoming/EPIC_VERSION for details on where did this version come from #jira UE-37329 - //UE4/Main: Step 'Compile UE4Game HTML5' - 300 Warnings Change 3181611 on 2016/11/01 by Allan.Bentham Recreate vulkan swapchain after a pause/resume on android. #jira UE-36454 Change 3181451 on 2016/11/01 by Chris.Wood CrashReportClient no longer attempts to restart Launcher-run Editors via IPC with the Launcher. They are now restarted directly. [UE-37794] - Send and Restart from Crash Reporter Opens Project Browser Launcher can't accept command line args when restarting an application so it can't restart the editor with the right project. Also fixes broken SlateReflector in CRC (switched off in checked in version) #jira UE-37794 Change 3181117 on 2016/11/01 by Dmitriy.Dyomin Fixed: Text Actors not Rendering on Mobile PowerVR based devices were rendring opaque objects twice #jira UE-37949 Change 3181102 on 2016/11/01 by Jack.Porter Fix for editor crash during Landscape sculpting on pressing Ctrl+z (Subdivision enabled in material) #jira UE-36050 Change 3180851 on 2016/10/31 by Daniel.Wright Ray Traced Distance Field shadows must be projected last, since they overlap the depth range as Far CSM. Fixes Kite demo medium-distance shadowing. #jira UE-37793 Change 3180844 on 2016/10/31 by Michael.Trepka Disabled high-DPI in Mac CrashReportClient #jira UE-37697 Change 3180803 on 2016/10/31 by Michael.Trepka Setup Mac Metal layer on the main thread to solve issues with empty game window when showing a separate log window. #jira UE-37998 Change 3180764 on 2016/10/31 by zachary.wilson Checkking in content for Lighting scenarios test, currently incomplete but needed for bug repro #jira UE-29618 Change 3180666 on 2016/10/31 by Dmitry.Rekman Fix Linux client & server hang when decoding voice chat (UE-36108). - break out of voice channel while loop if unable to serialize the voice packet data. - fixed by JoshM #jira UE-36108 Change 3180428 on 2016/10/31 by Mitchell.Wilson Rebuilt lighting in all Content Examples levels and saved to resolve warnings. #jira UE-37880 Change 3180399 on 2016/10/31 by Dmitry.Rekman Linux: revert to old commandline switch -binnedmalloc (UE-38001). #jira UE-38001 Change 3180298 on 2016/10/31 by Steve.Robb Extra information about which class has failed to have its CppStructOps initialized. #jira UE-37921 Change 3180289 on 2016/10/31 by John.Pollard Fix crash in FCurlHttpRequest::DebugCallback + Specify the string length to FString's constructor as the result from StringCast is not null terminated if the string's length is specified (instead of assuming null termination). #jira UE-36658 Change 3180200 on 2016/10/31 by Benjamin.Hyder Updating QA-Materials to include BuiltData #jira UE-29618 Change 3180173 on 2016/10/31 by Nick.Whiting Fixing up static analysis warning about array size in GoogleVRHMD code #jira UE-38007 Change 3180123 on 2016/10/31 by ryan.brucks #jira UE-35977 hooked up missing transform node inside of newly added function so that it works with variable rotations. Change 3180108 on 2016/10/31 by Benjamin.Hyder Updating QA-Effects map to include BuiltData #jira UE-29618 Change 3180104 on 2016/10/31 by Marc.Audy Don't recreate the render state if the component got unregistered in the interim. #jira UE-37968 Change 3180084 on 2016/10/31 by Allan.Bentham Use glVertexAttribIPointer for ES3. Enable SupportsTextureMaxLevel for ES3. ensure GL_HALF_FLOAT is used for vertex half float format on ES3 (instead of GL_HALF_FLOAT_OES) Fix assert when previewing ES3.1 with PC OpenGL. #jira UE-37472 Change 3180082 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [-] Back out PS4 OSS warnings filter in UBT output (original CL 3150360). - We weren't relying on this anyway, since the build machines are filtering based on a perl script (See CL 3151027) #jira UEPLAT-1424 Change 3180044 on 2016/10/31 by Michael.Trepka Don't create additional autorelease pool for Metal context on the game thread. #jira UE-37894 Change 3180023 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [^] Merge (as edit) PlayStation 4 Online Subsystem refactor for Sony SDK 4.008.061 (CL 3178249) from //UE4/Dev-Platform to OrionGame in //UE4/Release-4.14 Original CL description: [~] Upgrade PlayStation 4 Online Subsystem to be compliant with Sony's new APIs in SDK 4.008.061. - Replaced deprecated APIs with new ones. - Replaced NpToolkit with NpToolkit2. - Refactor of FUniqueNetIdPS4 and related code. FUniqueNetIdPS4 is now immutable and immovable. - Added online ID cache system, which calls out to Sony's new ID Mapper Web API. Contains a breaking change in FUniqueNetId - FUniqueNetId::ToString() now returns the SceNpAccountId string of a user, rather than the SceNpOnlineId string. - Custom backends which rely on this string to identify users will need to support SceNpAccountIds, and map them to existing accounts. #jira UEPLAT-1424 Change 3179973 on 2016/10/31 by Sam.Deiter #Jira UEDOC - 3957 #UE4 Docs: Fixing typos in the landscape tutorials for bug UEDOC - 3957 #Code_Review lauren.ridge, jeff.wilson, ian.shadden, wes.bunn, chase.mcallister, robert.gervais Change 3179930 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [^] Merge (as edit) PlayStation 4 Online Subsystem refactor for Sony SDK 4.008.061 (CL 3178249) from //UE4/Dev-Platform to //UE4/Release-4.14 Original CL description: [~] Upgrade PlayStation 4 Online Subsystem to be compliant with Sony's new APIs in SDK 4.008.061. - Replaced deprecated APIs with new ones. - Replaced NpToolkit with NpToolkit2. - Refactor of FUniqueNetIdPS4 and related code. FUniqueNetIdPS4 is now immutable and immovable. - Added online ID cache system, which calls out to Sony's new ID Mapper Web API. Contains a breaking change in FUniqueNetId - FUniqueNetId::ToString() now returns the SceNpAccountId string of a user, rather than the SceNpOnlineId string. - Custom backends which rely on this string to identify users will need to support SceNpAccountIds, and map them to existing accounts. #jira UEPLAT-1424 Change 3179539 on 2016/10/31 by Jack.Porter Fix crash when Toggling Landscape Mode with Hidden Sub-Level containing a Landscape #jira UE-37954 Change 3179309 on 2016/10/29 by Benjamin.Hyder Re-Saving Foliage asset in Tm-DistanceFields #jira UE-29618 Change 3179308 on 2016/10/29 by Benjamin.Hyder updating AutoLOD settings for foliage example in TM-Shadermodels #jira UE-29618 Change 3179135 on 2016/10/28 by Chris.Babcock Only use alternative event flow for Daydream packaged applications #jira UE-37847 #ue4 #android Change 3178995 on 2016/10/28 by JohnHenry.Carawon Adding test content for the World Origin Rebasing feature #jira UE-29618 Change 3178994 on 2016/10/28 by Chris.Babcock Disable ARM64 Google Play Games - need new library to fix crash #jira UE-37972 #ue4 #android Change 3178955 on 2016/10/28 by Marc.Audy Don't worry about clearing from world's end of frame update frame if being GC'd #jira UE-37928 Change 3178921 on 2016/10/28 by Daniel.Wright [Copy] Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3. Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970 #jira UE-37970 Change 3178919 on 2016/10/28 by Daniel.Wright [Copy] Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path. #jira UE-37970 Change 3178905 on 2016/10/28 by Max.Chen Sequencer: Fix fade track instance compile #jira UE-37939 Change 3178808 on 2016/10/28 by Dmitry.Rekman Linux: fix crash on exit (UE-37536). - Base virtual function (PostRun()) was called due to thread being stopped at the moment when the subclass destructor has already run. #jira UE-37536 (Edigrating 3175651 from Dev-Platform to Release-4.14) Change 3178707 on 2016/10/28 by Marc.Audy Fix inverted null check that caused load game from slot to fail if using a BP generated class #jira UE-37774 Change 3178664 on 2016/10/28 by Alexis.Matte Fix the fbx automation tests #jira UE-37960 Change 3178617 on 2016/10/28 by Bart.Hawthorne Fix issue where changing the world origin in a single player game would try to access the FNetworkPredictionData_Client_Character on character movement components #jira UE-37692 #tests ran QA game and tested that assert no longer fired in debug Change 3178615 on 2016/10/28 by Max.Chen Matinee to Level Sequence: Added interface to extend the matinee to level sequence converter Copy from Dev-Sequencer #jira UE-37328 #2864 Change 3178553 on 2016/10/28 by Michael.Trepka Don't wait for the main thread in FMacWindow::Show() #jira UE-37915 Change 3178526 on 2016/10/28 by Alexis.Matte Clean unused material when importing a skeletal mesh. Its possible to have a material reference in a fbx node and not have any face referencing this material. #jira UE-37923 Change 3178451 on 2016/10/28 by Mitchell.Wilson Limit the max angle the cannon tower can be rotated when manually aiming. When max rotation is reached, debug line turns red to be consistent with the arrow tower. #jira UE-36512 Change 3178420 on 2016/10/28 by Lina.Halper Fix build issue #jira: UE-37911 Change 3178390 on 2016/10/28 by mason.seay Enabling follow on certain notifies to help catch issues #jira UE-29618 Change 3178325 on 2016/10/28 by Zak.Middleton #ue4 - (4.14) - Fix crash when player is destroyed and server PlayerController checks to see if it needs to force a network update. Also fix crash when calling ACharacter::SetReplicateMovement when not on the server. Mirror CL 3178247 and CL 3178256 in Dev-Framework. #jira UE-37902 Change 3178312 on 2016/10/28 by Max.Chen Sequencer: Fade only oin the current player context, not on all worlds. #jira UE-37939 Change 3178267 on 2016/10/28 by Lina.Halper Fix issue with anim editor sound play notify doesn't work with follow option #jira: UE-37946 Change 3178146 on 2016/10/28 by Lina.Halper #fix crash with thumbnail update when there is no animation, and so on. #code review: Benn.Gallagher #jira: UE-37911 Change 3178145 on 2016/10/28 by Matthew.Griffin Fixed Clean process during a Hot Reload Prevent engine build products, intermediates and exe/dlls from being deleted during Hot Reload and make sure Hot Reload state is preserved #jira UE-37616 Change 3178143 on 2016/10/28 by Mitchell.Wilson Updating BP_Spinning_Logo to stop spinning when disabled instead of finishing the rotation. #jira UE-36269 Change 3178110 on 2016/10/28 by Mitchell.Wilson Rebuilt lighting and saved levels. #jira UE-36913 Change 3178070 on 2016/10/28 by Mitchell.Wilson Adjusted trigger ragdoll time in shooter character so the character does not appear to float while in death animation. #jira UE-37124 Change 3178034 on 2016/10/28 by Jon.Nabozny Add missing Super::Tick call to ATP_TopDownCharacter::Tick. #jira UE-37914 Change 3178021 on 2016/10/28 by Max.Chen Sequence Recorder: Disable auto possess player for recorded pawns. This fixes a bug where if you record a third person template character, when you open the sequence, the recorded character will possess the viewport. Copy from Dev-Sequencer #jira UE-35342 Change 3177992 on 2016/10/28 by Matt.Kuhlenschmidt Fix outlined text accumulating error due to measuring the outlines for each text run rather than the entire string #jira UE-37935 Change 3177981 on 2016/10/28 by Nick.Darnell UMG - Fixing how the virtual window calculates desired size. It was including scale again, which is fine for SWindow, but isn't what we want on the SVirtualWindow, should probably consider making a new SWindowBase class they can both share in the future. #jira UE-36861 Change 3177888 on 2016/10/28 by Matthew.Griffin Back out revision 4 from //UE4/Release-4.14/Engine/Source/Runtime/Engine/Private/InheritableComponentHandler.cpp Change 3177881 on 2016/10/28 by Matthew.Griffin Added guards to WITH_EDITOR only static initialisation Change 3177871 on 2016/10/28 by Matt.Kuhlenschmidt Fix crash import fbx scenes if objects contain procedural textures (not supported) #jira UE-37917 Change 3177856 on 2016/10/28 by Matthew.Griffin Adding THIRD_PARTY_INCLUDES macros around Google VR includes to fix static analysis warnings Change 3177815 on 2016/10/28 by Graeme.Thornton Non-editor build fix #jira UE-37929 Change 3177812 on 2016/10/28 by Graeme.Thornton Fix for COTF crash with EDL. Manually copied from CL 3174743 in Dev-Core #jira UE-37810 Change 3177737 on 2016/10/28 by Guillaume.Abadie Brings over 3141695 and 3173310 from //Odin/Main: Fixes particle collision in the forward renderer. #jira UE-37927 Change 3177703 on 2016/10/28 by Phillip.Kavan [UE-37852] Ensure that we create a unique template object in a child class's ICH when overriding an inherited SCS default scene root node. change summary: - added UInheritableComponentHandler::SCSDefaultSceneRootOverrideNamePrefix - modified UInheritableComponentHandler::CreateOverridenComponentTemplate() to special-case SCS default scene root node overrides when determining the new template name - modified UInheritableComponentHandler::PostLoad() to special-case SCS default scene root node overrides during template name fixup - modified SSCSEditor::RemoveComponentNode() to skip renaming the component template away from the variable name for the default scene root node, since we don't actually recreate it when it gets re-added #jira UE-37852 Change 3177600 on 2016/10/27 by Chris.Babcock Pass through the intent action from splash screen #jira UE-37925 #ue4 #android Change 3177436 on 2016/10/27 by Mike.Beach Guarding against a top crash that could occur when pasting a select node (unknown how) - now using an unchecked accessor to get a specific pin, and guarding again a null (instead of asserting). #jira UE-37910 Change 3177365 on 2016/10/27 by Daniel.Wright Fixed access of FPrecomputedLightVolumeData after it has been deleted (causes crash on exit with USE_MALLOC_STOMP enabled) #jira UE-37903 Change 3177236 on 2016/10/27 by Mitchell.Wilson Updated UVs on M_FloorTiles1 to resolve precision issues with the material's normal on mobile devices. Fixed reflection captures in the level and rebuilt lighting. #jira UE-36624 Change 3177235 on 2016/10/27 by mason.seay Vehicle Assets #jira UE-29618 Change 3177036 on 2016/10/27 by Mitchell.Wilson Inverted throttle control for controller Right Joystick Up, Down, Y-Axis to be consistent with the info from our template wiki #jira UE-37881 Change 3176996 on 2016/10/27 by mason.seay Missed node link #jira UE-29618 Change 3176993 on 2016/10/27 by mason.seay Test AnimBP for crash #jira UE-29618 Change 3176992 on 2016/10/27 by Mitchell.Wilson Adding [EditoronlyBP] to DefaultEditor.ini of projects that were missing it. #jira UE-37846 Change 3176946 on 2016/10/27 by Alexis.Matte We recompile the material only if there is a material expression node that ask for a shader recompile when the texture is change with no specified property. #jira UE-37705 Change 3176939 on 2016/10/27 by Alexis.Matte Check the pointer before using it #jira UE-37853 Change 3176927 on 2016/10/27 by mason.seay Rebuilt Lighting #jira UE-29618 Change 3176883 on 2016/10/27 by Steve.Robb Fix for crash when an array property changes while instancing subobjects. Fix for StrStr running off the end of a non-null-terminated string and a tidy up with TUniquePtr. Fix for accessing a deleted StaticClass() in FInputBindingEditorModule::ShutdownModule. #fyi matt.kuhlenschmidt, alex.fennell #jira UE-37752 Change 3176811 on 2016/10/27 by Chris.Bunner Rework of previous commit to avoid potential confusion moving forward. #jira UE-37424 Change 3176783 on 2016/10/27 by Chris.Bunner Default scalability settings to Epic, not Cinematic. Duplicated default render resolution scale fix (CL 3170020). #jira UE-37424 Change 3176692 on 2016/10/27 by Mike.Beach Fixing up a mistake where we weren't reading all [EditoronlyBP] settings (which are now deprecated). Was causing certain settings to default to off, and caused an inaccurate deprecation warning. #jira UE-37848 Change 3176635 on 2016/10/27 by mason.seay Setting up skeleton for retargeting testing #jira UE-29618 Change 3176586 on 2016/10/27 by Marcus.Wassmer Fix crash on D3D12 editor when selecting objects #jira UE-37861 Change 3176479 on 2016/10/27 by Robert.Manuszewski Fix for a rare crash when loading into Orion match. Made sure the Skeleton asset is loaded before PostLoad is called on it. #jira UE-37297 #jira UE-37711 Change 3176107 on 2016/10/27 by Phillip.Kavan [UE-37690] AddComponent node template names now use a counter to avoid a potential component data cache mismatch with an existing instance of an old AddComponent node template. change summary: - added UBlueprint::ComponentTemplateNameIndex as a way to to map component class names to an incremental counter (saved). - UK2Node_AddComponent::MakeNewComponentTemplateName() is now public, non-static, and uses an internal index map to generate unique component template names. #jira UE-37690 Change 3176105 on 2016/10/27 by Phillip.Kavan [UE-37686] Fix naming for archetype objects associated with new AddComponent nodes. change summary: - switched UK2Node_AddComponent::MakeNewComponentTemplateName() to be a public API. - modified UBlueprintComponentNodeSpawner::Invoke() to call UK2Node_AddComponent::MakeNewComponentTemplateName() in place of MakeUniqueObjectName(). - modified UBlueprintGeneratedClass::FindArchetype() to better handle old AddComponent node template names. These were based on the UClass display name, and thus it was possible for the non-index form of that FName to collide with SCS variable names after the initial switch to use the non-indexed (base) FName for archetype matching in all cases. As a result I've reverted back to using the given ArchetypeName value for the SCS variable case. #jira UE-37686 Change 3176009 on 2016/10/26 by Dmitriy.Dyomin Fixed: Editor crash on changing sub-level visbility under certain conditions #jira UE-34740 Change 3175807 on 2016/10/26 by Daniel.Wright Fixed the editor thinking a lighting build is still active after you discard the results from one #jira UE-37834 Change 3175777 on 2016/10/26 by Jon.Nabozny #jira UT-6263 Fix crash when running ServerTravel on a client Dupe of CL #3175731 on UT, checked in on behalf of ben.zeigler Change 3175695 on 2016/10/26 by Ryan.Gerleve Don't clear level collections in UWorld::CleanupWorld unless bCleanupResources is true. #jira UE-37336 Change 3175628 on 2016/10/26 by Chad.Garyet Added -Build vstream from 4-14 to allow checkins from physx altered build script and json to reflect new changes #JIRA UE-37085 Change 3175612 on 2016/10/26 by Martin.Wilson Fix crash when running an in-editor cook on the fly server with unsaved virtual bone changes #jira UE-37785 Change 3175552 on 2016/10/26 by Brian.Karis Twinblast bust changes #jira UE-0 Change 3175543 on 2016/10/26 by Marc.Audy Allow audio thread on PS4 to use 7th core as opposed to being pinned to it #jira OR-30447 Change 3175538 on 2016/10/26 by Matt.Kuhlenschmidt Fixed a crash when clicking Apply when using the Brush Clip tool #jira UE-37838 Change 3175502 on 2016/10/26 by Mitchell.Wilson Enabled modulated shadows on lights in rolling template levels. #jira UE-37047 Change 3175485 on 2016/10/26 by mason.seay Test Map for virtual bones #jira UE-29618 Change 3175469 on 2016/10/26 by mason.seay Test assets for Virtual Bones testing #jira UE-29618 Change 3175428 on 2016/10/26 by Marc.Audy Possibly fix crash in Autosave due to dereferencing a world pointer which is freed memory #jira UE-37590 Change 3175414 on 2016/10/26 by Michael.Trepka Fixed mouse position calculations for secondary monitors on Mac #jira UE-37822 Change 3175382 on 2016/10/26 by Yannick.Lange VR Editor: - Fix: Landscape UI Elements are not visible #jira UE-36843 - Fix: First-time switch to Landscape tab in VREditor causes UI Errors #jira UE-37410 - Fix: Enabling Foilage Mode in VR Editor breaks the pointer #jira UE-37214 - Fix: Landscape sculpting when attempting to move menu panels in VREditor #jira UE-37581 #jira UE-36843 #jira UE-37410 #jira UE-37214 #jira UE-37581 Change 3175349 on 2016/10/26 by Chad.Garyet Changing physx build agents to compile workspaces instead of full ones #JIRA UE-37085 Change 3175267 on 2016/10/26 by Martin.Wilson Fix retarget crash #jira UE-37781 Change 3175205 on 2016/10/26 by Rolando.Caloca UE4.14 - Remove erroneus assert #jira UE-37584 Change 3175188 on 2016/10/26 by Chris.Babcock Fix out of spec GLSL operations (contributed by JeffRous) #jira UE-37800 #PR #2886 #ue4 #android Change 3175156 on 2016/10/26 by Mitchell.Wilson Adding missing iOS app icons to SunTemple project #jira UE-36991 Change 3175095 on 2016/10/26 by Daniel.Wright Fixed stationary skylight reflections using an inverted mask on materials without high quality reflections with Forward Shading #jira UE-37783 Change 3175075 on 2016/10/26 by Daniel.Wright [Copy] Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear) #jira UE-36497 Change 3175050 on 2016/10/26 by Jamie.Dale FTextRenderComponentMIDCache now marks MIDs as stale when the font parameters available in the parent material changes #jira UE-37819 Change 3175039 on 2016/10/26 by Daniel.Wright Fixed Duplication mode #jira UE-37231 Change 3174996 on 2016/10/26 by Mitchell.Wilson Removing [EditoronlyBP] changes made to DefaultEditor.ini. EDL is now disabled by default in ShooterGame. #jira UE-37648 Change 3174987 on 2016/10/26 by Jon.Nabozny Fix crash when moving InstancedStaticMeshComponent in editor when it had no mesh set, but had instances. #jira UE-37594 Change 3174803 on 2016/10/26 by Ori.Cohen Fix world origin shifting causing a crash inside physx. #JIRA UE-37745 Change 3174776 on 2016/10/26 by Allan.Bentham Work around broken depth reads on Galaxy S4. #jira UE-35481 Change 3174723 on 2016/10/26 by Robert.Manuszewski Changing the criteria for UBL to ignore the event driven loader flag to IsEngineInstalled() just like at runtime. #jira UE-37617 Change 3174650 on 2016/10/26 by Matthew.Griffin Ensured that Online Subsystem Oculus plugin is precompiled successfully for Android Change 3174644 on 2016/10/26 by Matthew.Griffin Fixing GoogleVR compile issues Change 3174352 on 2016/10/25 by Daniel.Wright Rename map build data along with the world - fixes lighting lost on map rename / save as. Duplicate map build data along with the world - fixes lighting lost on map duplicate in the content browser, or save as when the source already exists. Save map build data packages in SaveWorld - fixes lighting being lost on save as. #jira UE-37231 Change 3174335 on 2016/10/25 by Chris.Babcock Corrected Proguard issue with Codeworks for Android 1R5 installers #jira UE-37680 #ue4 #android Change 3174318 on 2016/10/25 by Marcus.Wassmer Duplicate 3174187 #jira UE-37020 Change 3174263 on 2016/10/25 by patrickr.donovan Test content updates and additions. Lighting Channel map added to TM-VRLoader. #jira UE-29618 Change 3174120 on 2016/10/25 by Daniel.Wright UObject::PostDuplicate with DuplicateMode * Allows differentiating between being duplicated as part of a world duplication vs duplication within a level * This is needed when generating a guid that needs to be unique within a level, but constant across instances of that level, like a light component #jira UE-37231 Change 3174113 on 2016/10/25 by Daniel.Wright Fixed log spam #jira UE-37522 Change 3174010 on 2016/10/25 by Jamie.Dale Fixed several crashes in the Session Frontend when viewing profiles - SFiltersAndPresets wasn't being cleared when the profile data was changed back to a live instance. - SFiltersAndPresets could crash if it was updated when no profile was selected. - SDataGraph could cause a crash if you clicked on it when there was no data (passed a range of -1, 0). - A session update message would clobber any loaded profile data, resetting to the current instance. #jira UE-37597 Change 3173982 on 2016/10/25 by mason.seay Deleting unneeded asset #jira UE-29618 Change 3173912 on 2016/10/25 by Ori.Cohen Fix divide by 0 crash when torque curve is 0 #JIRA UE-37737 Change 3173866 on 2016/10/25 by Ben.Marsh Remove setting forcing UnrealCEFSubProcess to compile using Visual Studio 2013. #jira UE-37678 Change 3173824 on 2016/10/25 by Ben.Marsh Fix trying to recompile UBT in Rocket builds when cleaning a build target. #jira UE-37616 Change 3173812 on 2016/10/25 by Nick.Darnell XBoxOne - The Vertex and Index buffers are now allocated with the right nextwriteoffset to prevent stomping old data on future writes. #jira UE-37757 Change 3173808 on 2016/10/25 by Ben.Marsh Fix batch files detecting MSBuild install locations for Visual Studio "15" preview 5. #jira UE-37627 Change 3173711 on 2016/10/25 by Ori.Cohen Fix linux compiler issues for physx #JIRA UE-37085, UE-37114, UE-37116 Change 3173704 on 2016/10/25 by James.Cobbett Import test assets for Alembic Conversion test #jira UE-29618 Change 3173694 on 2016/10/25 by Matt.Kuhlenschmidt Fixed Zip project not working in binary builds #jira UE-37655 Change 3173692 on 2016/10/25 by James.Cobbett Test content for Alembic Conversion options #jira UE-29618 Change 3173666 on 2016/10/25 by Matt.Kuhlenschmidt Fixed array refreshing in the details panel not functioning properly for sub-object properties #jira UE-37652 Change 3173619 on 2016/10/25 by Robert.Manuszewski Making the cooker ignore EDL ini setting in binary engine build. #jira UE-37617 Change 3173616 on 2016/10/25 by Nick.Whiting Merging update to Google VR 1.01 SDK, which fixes multiple initialization errors #jira UE-37440, UE-37236 Change 3173606 on 2016/10/25 by Jamie.Dale Removed invalid assert We're already passed the collection to modify, so the assert isn't needed. #jira UE-37761 Change 3173604 on 2016/10/25 by Keli.Hlodversson Work around an issue where the SteamVR plugin will fail to initialize if SteamVR was not already running before launching. #jira UE-37623 Change 3173502 on 2016/10/25 by Matt.Kuhlenschmidt Fixed more cases of undoing causing selections to become out of sync #jira UE-37300 Change 3173475 on 2016/10/25 by Ori.Cohen Critical 4.14 physx fixes #JIRA UE-37085, UE-37114, UE-37116 Change 3173445 on 2016/10/25 by Robert.Manuszewski Disabling the Event Driven Loader in ShooterGame. Making sure the EDL can't be enabled in binary engine distributions. #jira UE-37394 Change 3173401 on 2016/10/25 by Matt.Kuhlenschmidt Guard against crashes when textures or materials are explicitly marked as pending kill and then passed to slate for rendering #jira UE-36261 Change 3173245 on 2016/10/25 by Allan.Bentham Remove incorrect assert. #jira UE-37699, UE-37707 Change 3173232 on 2016/10/25 by Jurre.deBaare Post Processing Settings do not update in Persona when the values are changed in Preview Scene Settings #fix make sure we also pick up vector4 fields #jira UE-37656 Change 3173183 on 2016/10/25 by Matthew.Griffin Added Shipping configs to BootstrapPackagedGame (Duplicating CL#3150210 from Main) Change 3173065 on 2016/10/25 by Dmitriy.Dyomin Fixed: Disabling 'Use Landscape Lightmap' option Skewing Procedural Foliage Instances #jira UE-37736 Change 3172929 on 2016/10/24 by Ryan.Vance #jira UE-37742 Adding SceneViewExtension hooks that are called right after init views completes. It might be advantageous to do the work we're currently doing in PreRenderViewFamily_RenderThread and PreRenderView_RenderThread after init views is called with the way SteamVR's running start is implemented. Change 3172915 on 2016/10/24 by Rolando.Caloca UE4.14 - Fix compile issues on CCT #jira UE-37722 Change 3172762 on 2016/10/24 by Brian.Karis #jira UE-37369 Change 3172742 on 2016/10/24 by Daniel.Lamb Fixed issue with file-> cook error when you haven't built the exe which you are trying to cook for. #jira UE-36796 #test Cook shootergame Change 3172690 on 2016/10/24 by Maciej.Mroz DynamicClass gives now, as componet-archetype, objects with non-exact name. Manually merged cl#3171563 #jira UE-37480 Change 3172663 on 2016/10/24 by Daniel.Lamb Stopped cooker from handling modification requests when they are PIE requests. #test PIE shootergame #jira UE-21572 Change 3172629 on 2016/10/24 by Mitchell.Wilson Reconnected some material functions to resolve warnings which caused characters to render with default materials, and resolving 'Top Material' warnings. Reimported SM_GodRay_Plane to resolve PhysX warning Rebuilt lighting for the level. #jira UE-37728 Change 3172523 on 2016/10/24 by Nick.Shin update physx cmakefiles and automation build scripts for release-414 stream (as per request) #jira UEFW-106 Add HTML5 support to PhysX CMake & automation scripts Change 3172515 on 2016/10/24 by Nick.Shin remove old emsdk (1.35.0) #jira UEPLAT-1324 Update HTML5 PhysX to CMake Change 3172511 on 2016/10/24 by Mark.Satterthwaite Don't set Metal resource option fields on texture descriptors when running on an OS that doesn't support them. #jira UE-37481 Change 3172461 on 2016/10/24 by Cody.Albert Added check for pointer validity to prevent crash in ShooterGame #jira UE-37433 Change 3172329 on 2016/10/24 by Peter.Sauerbrei fix for remote notification method misspelling #jira ue-37720 Change 3172322 on 2016/10/24 by Marc.Audy Fix unreferenced variable the brute force to unblock QA #jira UE-37718 Change 3172191 on 2016/10/24 by Mitchell.Wilson Clearing preivew meshes on some materials to resolve warnings. #jira UE-37713 Change 3172186 on 2016/10/24 by Matt.Kuhlenschmidt Fix non-editor compile error #jira UE-37695 Change 3172159 on 2016/10/24 by Dmitry.Rekman Update GitDependencies.exe (UE-37530). - Binary needs to be updated to support LINUX_MULTIARCH_ROOT variable. #jira UE-37530 Change 3172132 on 2016/10/24 by Keith.Judge Xbox One - Fix corrupted screenshots. Needed a GPU/CPU sync point, which legacy D3D11.x used to do for us, but now we have to do manually. Copied from Dev-Platform CL 3156872 #jira UE-37038 Change 3172131 on 2016/10/24 by Keith.Judge Xbox One - Disable engine analytics on XB1 shipping games, as per XRs. Verified http requests from devkit with Fiddler. Copied from CL 3153176 in Dev-Platform. #jira UE-36364 Change 3172106 on 2016/10/24 by Mitchell.Wilson Updated reference to a material in VehicleMenu.umap to resolve warning #jira UE-29748 Change 3172036 on 2016/10/24 by Steve.Robb TEnumAsByte can be switchably deprecated for enum classes, and is currently not deprecated (reverting a change in behavior). #jira UE-37706 Change 3172020 on 2016/10/24 by Marc.Audy Child Actor should be created at registration, not creation. Otherwise attachment hierarchies can not be set up and thus, world positions incorrect #jira UE-37615 Change 3171966 on 2016/10/24 by Dmitry.Rekman Linux: fix Setup.sh on Ubuntu 16.10 (UE-37621) #jira UE-37621 (Edigrating 3171266 from Dev-Platform to Release-4.14) Change 3171964 on 2016/10/24 by Dmitry.Rekman Linux: fix always rebuilding FixDeps (UE-37625). #jira UE-37625 (Edigrating 3153471 from Dev-Platform to Release-4.14) Change 3171957 on 2016/10/24 by Matt.Kuhlenschmidt Guard against property editor crash happening when focused is lost on an object which has been GC'd due to PIE running #jira UE-37636 Change 3171943 on 2016/10/24 by Matt.Kuhlenschmidt Added mesh simplifcation plugin picker to the project settings under Editor - Mesh Simplification The menu to pick simplification plugins also contains a link to find other plugins in the launcher marketplace. The launcher navigates to "/ue/marketplace/content-cat/assets/codeplugins" for now #jira UE-37695 Change 3171928 on 2016/10/24 by Max.Chen Sequencer: Revert CL#3162724. Fix time dilation in level sequence player because it's causing a regression. Will revisit the fix for UE-37277. #jira UE-37589 Change 3171924 on 2016/10/24 by James.Cobbett Test content 'preroll.abc'. Has empty frames at the start of animation. For alembic importer testing. #jira UE-29618 Change 3171867 on 2016/10/24 by Lina.Halper - Back out revision 2 from //UE4/Release-4.14/Engine/Source/Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp - Empties override materials before setting preview mesh in animation editor #jira: UE-37610 #code review: Thomas.Sarkanen Change 3171789 on 2016/10/24 by Allan.Bentham Resolve depth on appropriate mobile devices when the view contains materials that read from the depth. #jira UE-35023 Change 3171776 on 2016/10/24 by Robert.Manuszewski Increasing the initial memory allocation size for FLargeMemoryWriter to reduce the number of allocations when saving or cooking #jira UE-37599 Change 3171728 on 2016/10/24 by Dmitriy.Dyomin Fix origin rebasing to work with precomputed lighting data stored in separate package #jira UE-37693 Change 3171634 on 2016/10/24 by Dmitriy.Dyomin Added commenets to 3171621 #jira UE-36449 Change 3171621 on 2016/10/23 by Dmitriy.Dyomin Fixed: Editor crash when compiling the character blueprint after a PIE session with World Composition enabled Actually disabled use of world composition with multiplayer PIE using separate processes #jira UE-36449 Change 3171424 on 2016/10/22 by Jack.Porter Remove unused exec command causing logspam #jira UE-37661 Change 3171259 on 2016/10/21 by Ryan.Vance Mobile multi-view update #jira UE-37603 Removed dependence on shader name for determining if we need to enable multi-view, now relies on the presence of gl_ViewID_OVR Worked around unsigned/signed integer driver issues. Some shader compilers were choking on the unsigned postfix Attempted to clean up some of the code duplication in MobileBasePassRendering.cpp Made a few design concessions which allows the feature to run on Mali devices in the wild right now: Allow the feature to be enabled with ES2 rather than just ES3.1. Mali drivers have a bug preventing shader io blocks and multi-view from working together Passing the view id from the vertex shader. Mali devices don't allow referencing gl_ViewID_OVR in a pixel shader Change 3171165 on 2016/10/21 by Peter.Sauerbrei revert out the memory changes for platform file cache for mobile #jira UE-36835 Change 3171112 on 2016/10/21 by Matt.Barnes Updating TM-Material_BP_Nodes to facilitate test UEQATC-2969. #jira UEQATC-2969 Change 3171111 on 2016/10/21 by Mike.Beach Mirroring CL 3171084 form Dev-BP Guarding against a unrepro'able top-10 crash in SGraphPin. Making sure we're not operating on a null/pending-kill/transient pin. #jira UE-37642 Change 3170980 on 2016/10/21 by patrickr.donovan Motion controller test content update - further updates to combat thumbstick noise. #jira UE-29618 Change 3170965 on 2016/10/21 by Mitchell.Wilson Moved panner in M_Frame3_BG material to Custom UV0 to resolve issue with material rendering white on tvOS #jira UE-37105 Change 3170905 on 2016/10/21 by Marc.Audy Fix AActor::Serialize crash if a null in the owned components array #jira UE-37641 Change 3170838 on 2016/10/21 by Ben.Woodhouse Integrate crash fix from main CL3162008 Fix for crash in GPU profiler. This was caused by the RHIThread getting too far behind the renderthread. This change adds a fence wait on the renderthread in RHIEndDrawingViewport to ensure that the renderthread is never more than a frame ahead. #jira UE-37216 Change 3170815 on 2016/10/21 by Jamie.Dale Fixed a potential race-condition in FTextRenderComponentMIDCache, and updated it to detect "stale" MIDs FMIDData was shared between the game and render threads, but used non-thread-safe shared pointers. This also marks MIDs as "stale" if the number of MIDs no longer matches the number of pages in the font (which may happen if the font is edited). These "stale" MIDs are kept as a weak pointer in a separate array so that we can still keep the MID object alive as long as something is still using it (as it may still be used by a FTextRenderSceneProxy for a short while). This array of weak pointers is purged of unreferenced instances during the normal cache purge cycle. #jira UE-37519 Change 3170784 on 2016/10/21 by Mitchell.Wilson Changing a material in TM-Reflections level #jira UE-29618 Change 3170668 on 2016/10/21 by Mitchell.Wilson Updated defaulteditor.ini to resolve cook failure for UBlueprint. #jira UE-37648 Change 3170595 on 2016/10/21 by Chris.Wood Added "Vanilla" Editor detection and reporting it to analytics, MTBF and Crash Reporter. [UE-37132] - Detect "Vanilla" Editor and report it to MTBF analytics and Crash Reporter #jira UE-37132 Change 3170395 on 2016/10/21 by Robert.Manuszewski UBT will now respect -remoteini command line param when looking for ini files for build settings. Fixes a crash when launching BP-only project from the Editor with EDL enabled. #jira UE-37617 Change 3170367 on 2016/10/21 by Allan.Bentham Prevent overflow of bright pixels during DoF calc. #jira UE-31755 Change 3170363 on 2016/10/21 by Robert.Manuszewski Fixing crashes when cancelling async loading #jira UE-37634 Change 3170362 on 2016/10/21 by Robert.Manuszewski Fixing MallocBinned2 crashes on 32-bit platforms. #jira UE-37326 Change 3170280 on 2016/10/21 by Jack.Porter Fix for landscape not rendering in Player Collision view mode after toggling G. #jira UE-37576 Change 3170202 on 2016/10/21 by Dmitriy.Dyomin Fixed: CustomDepth is incorrect when used in Custom PostProcess after Tonemapping #jira UE-37628 Change 3170160 on 2016/10/20 by Aaron.McLeran #jira UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features Implementing CL 3169422 in 4.14 Change 3170029 on 2016/10/20 by Aaron.McLeran #jira UE-37004 #jira UE-37005 Fixing stat soundwaves Implementing 3154264 from Dev-Framework Change 3170024 on 2016/10/20 by Aaron.McLeran #jira UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions Implementing the CL from Dev-Framework Change 3169869 on 2016/10/20 by Arne.Schober duplicated: CL 3169845 #jira UE-35937 Change 3169810 on 2016/10/20 by Steve.Cano Moving change from CL 3169642 to 4.14 - fix a library issue that was causing Kindle Fire 1st edition to crash when trying to run QA game, may be causing issues on other devices as well #ue4 #android #jira UE-22440 Change 3169635 on 2016/10/20 by Mike.Beach Mirroring CL 3169443 from Dev-BP Deprecating the [EditoronlyBP] config settings (which are super old, and support legacy functionality, allowing users to export editor-only UBlueprint objects on cook). This is in support of the new event-driven loader (EDL), which is incompatible with these exports. We will be removing support for these settings promptly in 4.15 (hence the choice to deprecate them for 4.14). #jira UE-37605 Change 3169618 on 2016/10/20 by Mitchell.Wilson rebuilt lighting for all levels in Content Examples #jira UE-37570 Change 3169447 on 2016/10/20 by Peter.Sauerbrei fix for double quotes causing arguments to not be sent correctly to rsync #jira UE-37018 Change 3169362 on 2016/10/20 by tim.gautier Updated TM-UMG Level Blueprint - mouse-clicks outside of UMG assets no longer take focus from the set Display Widget #jira abc-123 Change 3169244 on 2016/10/20 by Chris.Babcock Update to new CodeWorks for Android 1R5 #jira UE-37554 #ue4 #android Change 3169240 on 2016/10/20 by Jon.Nabozny #rn Fixup GameModeClassAliases in Engine.ini files. These must be prefixed with either /Game/ or /Script/ otherwise the asset may fail to resolve and an empty name will be used instead (and cause weird behavior). #jira UE-37488 Change 3169155 on 2016/10/20 by Peter.Sauerbrei fix for incorrect characters in bundle id when project has underscores in the name #jira UE-36436 Change 3169127 on 2016/10/20 by Allan.Bentham Fix android vulkan compile error with dev builds #jira abc-123 Change 3169058 on 2016/10/20 by Allan.Bentham Flush command buffer during init to fix vulkan crash when rendering thread is enabled. Fix FDeferredDeletionQueue's resource handle storage on 32 bit platforms. #jira UE-36452 Change 3169049 on 2016/10/20 by Peter.Sauerbrei fix for minimum ios version in base ini file #jira UE-37034 Change 3168910 on 2016/10/20 by Jack.Porter Fix occasional race condition crash in FTcpMessageTransportConnection on editor shutdown #jira UE-36944 Change 3168906 on 2016/10/20 by Dmitriy.Dyomin Fixed: Black rendering on Galaxy S4 PowerVR #jira UE-37567 Change 3168858 on 2016/10/20 by Richard.TalbotWatkin Made BSP rendering more robust so that out-of-range array accesses trigger an 'ensure' rather than a crash (with a view to identifying the cause of this issue). Also fixed non-editor builds. #jira UE-37267 - [CrashReport] UE4Editor_Engine!FModelSceneProxy::GetDynamicMeshElements() [modelrender.cpp:322] Change 3168826 on 2016/10/20 by Richard.TalbotWatkin Duplicated from //UE4/Dev-Editor, CL 3156473 Attempt to make geometry render / rebuild more robust in the hope of catching UE-36265. #jira UE-36265 - [CrashReport] UE4Editor_Engine!FModelSceneProxy::HasSelectedSurfaces() [modelrender.cpp:538] Change 3168335 on 2016/10/19 by Michael.Trepka Restored previous version of FMacWindow::IsPointInWindow function to solve issues with window dragging. #jira UE-37418 Change 3168307 on 2016/10/19 by Rolando.Caloca UE4.14 - Integrate changes from 3051720 and 3057522 [RENDERING] [!] Revert fix in GPU skin cache (original CL 2722034) - Waiting on shader compilation with the GPU skin update will destroy/recreate render state, causing a crash in the GPU skin cache. #jira UE-37545 Change 3168201 on 2016/10/19 by Peter.Sauerbrei fix for urls with queries not working correctly #jira UE-35090 Change 3168200 on 2016/10/19 by Mitchell.Wilson Re-saved multiple cloth assets to resolve building adjacency information warnings. Replaced deprecated SetText and GrabComponent blueprint nodes with new SetText and GrabComponentAtLocation. Re-saved multiple assets to resolve empty engine version warnings. #jira UE-37537 Change 3168174 on 2016/10/19 by Alan.Noon #jira UE-37534 deleted unnecessary files from Photorealistic Character project Change 3168160 on 2016/10/19 by Arne.Schober duplicated: fixes for velocity render pass CL 3166370 CL 3166799 #jira UE-37362 Change 3168136 on 2016/10/19 by Alan.Noon #jira UE-37534 Initial add of Photorealistic Character Sample project Change 3168127 on 2016/10/19 by Peter.Sauerbrei fix for IOS_7 not being found #jira UE-37034 Change 3167886 on 2016/10/19 by patrickr.donovan #jira UE-37242 TLDR; Test content updates. Bug entered due to finicky hardware returning noise values that weren't accounted for in test contet. Fortified test content against this edge case, no code change necessary. Change 3167882 on 2016/10/19 by samuel.proctor Updating asset for Profiler Heatmap testing #jira UE-29618 Change 3167868 on 2016/10/19 by Dmitry.Rekman Linux: disable XGE on Windows (UE-37446). - XGE does not seem to handle new clang 3.9.0 toolchain well, with very reproducible crashes. Also fix build breakage with clang 3.8.1. - always_inline was still applied to debug builds and as such was ignored. #jira UE-37446 (Edigrating CL 3166330, 3166456 from Dev-Platform to Release-4.14) Change 3167832 on 2016/10/19 by Mitchell.Wilson Reconnected 'TopMaterial' in multiple materials to resolve warnings. Rebuilt lighting and saved levels. #jira UE-37529 UE-37535 Change 3167688 on 2016/10/19 by Mitchell.Wilson Removing preview mesh from multiple materials to resolve warnings. Rebuilt lighting and saved all levels. #jira UE-29678 UE-37526 Change 3167616 on 2016/10/19 by Marc.Audy Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656. #jira UE-37517 Change 3167585 on 2016/10/19 by Jamie.Dale Re-enabled all-cultures upload to OneSky so we prime translations correctly #jira UE-37518 Change 3167579 on 2016/10/19 by Jamie.Dale Fixed text render component regression with custom MIDs #jira UE-37305 Change 3167501 on 2016/10/19 by Matt.Kuhlenschmidt Fixed realtime rendering in editor viewport being disabled when simulating in editor #jira UE-37466 Change 3167498 on 2016/10/19 by Mitchell.Wilson Re-saving multiple blueprints with nodeguid warnings. Cleared preview mesh for materials with string asset reference warnings. Rebuilt lighting and added _BuildData to resolve lighting rebuild warnings. #jira UE-30840 Change 3167492 on 2016/10/19 by Matt.Kuhlenschmidt Fix for disappearing menus in lastest windows 10 build #jira UE-36752 Change 3167311 on 2016/10/19 by Mieszko.Zielinski Fixed EQS template cache issues with multiple query run modes #UE4 #jira UE-37496 Change 3167206 on 2016/10/19 by Matthew.Griffin Moved Github promotion earlier in build script and added 'After' dependencies so that we can guarantee the order of the nightly build/prevent unimportant jobs from running before binary build is completed Change 3167205 on 2016/10/19 by Matthew.Griffin Changed CommandUtils.UnzipFiles to use system unzip tool when running on mono, as there has been issues with Ionic not being able to decompress those created by the zip tool Change 3167010 on 2016/10/19 by Dmitriy.Dyomin Fix for LevelStreaming getting stuck, and World->PersistentLevel null assert Contributed by Funcom: https://udn.unrealengine.com/questions/312900/fix-for-levelstreaming-getting-stuck-and-world-per.html #jira UE-36397 [CL 3189774 by Matthew Griffin in Main branch]
2016-11-08 02:45:19 -05:00
const bool bEmitMobileMultiView = (FCStringAnsi::Strstr(GlslCodeOriginal.GetData(), "gl_ViewID_OVR") != nullptr);
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_Android || Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_HTML5)
{
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
if (IsES2Platform(Capabilities.MaxRHIShaderPlatform) && !bES31)
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
{
// #version NNN has to be the first line in the file, so it has to be added before anything else.
if (Capabilities.bUseES30ShadingLanguage)
{
AppendCString(GlslCode, "#version 300 es\n");
}
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
else
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
{
AppendCString(GlslCode, "#version 100\n");
}
ReplaceCString(GlslCodeOriginal, "#version 100", "");
}
}
Copying //UE4/Fortnite-Staging to //UE4/Dev-Main (Source: //UE4/Fortnite-Staging @ 3026859) #rb none #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3016173 on 2016/06/16 by Lukasz.Furman fixed path updates in nested move tasks #jira FORT-25742 Change 3015722 on 2016/06/15 by Bob.Tellez #UE4 Avoiding a crash in FOnlinePartySystemMcp::PublishPartyInfoToPresence #JIRA OR-14102 Change 3015626 on 2016/06/15 by Bob.Tellez #UE4 Experimental fix for hitches involving spinlocks in windows. #JIRA FORT-25253 Change 3015473 on 2016/06/15 by Bob.Tellez #UE4 Compiling CrashReportClient in VS2013 instead of 2015 until we can figure out the appropriate way to install the redist on end-user machines. #JIRA FORT-25748 Change 3014721 on 2016/06/15 by Bob.Tellez #UE4 Returning false in cases where we want to skip replication of GameplayAbilities structures in NetDeltaSerialize. This fixes a bug where actors trying to become net dormant were not allowed because they were continuously reporting that they had data to replicate. #JIRA FORT-25689 Change 3014323 on 2016/06/15 by Rob.Cannaday When kicked from lobby beacon, restore the persistent party after leaving the previous persistent party #jira FORT-25407 #tests front end parties, being kicked from outpost lobby Change 3013712 on 2016/06/14 by Bob.Tellez #UE4 Fix DrawNetDriverDebug crash during map transitions Change 3013418 on 2016/06/14 by Mark.Satterthwaite Don't release Metal buffers directly into the buffer pool, instead defer this until the command-buffer is known to have finished. This prevents the CPU from trying to modify the buffer while the GPU is still reading it if the GPU has fallen so far behind the CPU and therefore eliminates one possible cause of invalid access on the GPU. #jira FORT-24510 Change 3013394 on 2016/06/14 by Mark.Satterthwaite Report Metal command-buffer failures in MetalQuery in the same way as MetalCommandList and make them fatal as well. This ensures that the game doesn't try to continue if the commands failed as that is unsafe. #jira FORT-24808 Change 3012977 on 2016/06/14 by Fred.Kimberley Add a blueprint exposed function to evaluate an attribute from a given base value. Change 3012755 on 2016/06/14 by Bob.Tellez #UE4 ExclusiveInternalFlags is now respected when passing in a null ObjectPackage in StaticFindObjectFastInternalThreadSafe #JIRA FORT-113 Change 3011948 on 2016/06/13 by Mark.Satterthwaite Workaround a Fortnite crash on launch for Mac OpenGL - one or more shaders are using the bit-cast operators (asuint(), asfloat()) that aren't available with GLSL version 150. In order to use them the GLSL version must be 330 which means switching the version tag at runtime. There will be Mac GPUs on 10.10.5 which don't correctly implement these instructions so this really isn't a fix - that would be to change shaders to not use SM5-level instructions. Change 3011659 on 2016/06/13 by Bob.Tellez #UE4 Better handling of checked state in SGameplayTagWidget::IsTagChecked. Checking direct child tags was not sufficient and also not needed since HasTag allows you to follow parent tags when checking for an explicit tag. Change 3011647 on 2016/06/13 by Rob.Cannaday Fix for multiple account login not kicking previous logins Client was not parsing response from backend. Client was expecting content-type to be "application/json" (using FString::Equals). Backend was returning "application/json;charset=UTF-8". Changed usage from FString::Equals to FString::StartsWith #jira FORT-25452 #tests multiple account login, frontend only Change 3011436 on 2016/06/13 by Nick.Cooper #UE4 - Added bRelativeToInitialFOV option to UCameraAnim, defaulting to true. If turned off, camera anims will use the camera's current FOV as the initial FOV for the animation #jira FORT-23606 Change 3010411 on 2016/06/12 by Bob.Tellez #UE4 Fix for a possible case where a reference to an async loading package that would contain a level gets replicated before the level it contains is fully serialized, causing network loading code client side to attempt to load the package even though it is not allowed to load maps. #jira FORT-113, FORT-22222 Change 3009885 on 2016/06/10 by Billy.Bramer #jira FORT-25361 [FORT-25361] Health and shield values are incorrect when slotting survivors with bonuses - Fix some resultant bugs from swapping attributes to be struct-based: - Fix issue wherein the initial creation of the client-side aggregator could be initialized with the computed final value from the server, resulting in incorrect client-side math - Fix issue where subsequent changes to the aggregator's base value on the client would be lost Change 3009514 on 2016/06/10 by Bob.Tellez #UE4 Remove final usage of the task graph in WmfMediaPlayer to dodge shutdown crashes. Change 3009197 on 2016/06/10 by Michael.Trepka Disabled reverb on Mac again. It's too expensive and doesn't fix FORT-22090 anyway Change 3008392 on 2016/06/09 by Ben.Zeigler #jira FORT-25244 Change it so application error codes like 400/404 do not cause the mcp to think it is disconnected from the backend. Only 408, 501, 502, and 504 now result in ServiceUnavailable. Change 3008106 on 2016/06/09 by Lukasz.Furman fixed cutting corners near navmesh obstacles in detour crowd's string pulling #jira FORT-24981 Change 3008039 on 2016/06/09 by Bob.Tellez #UE4 Fixed conversion of TAssetPtr to UObject* properties for the case where the referenced object is not already loaded. Change 3007864 on 2016/06/09 by Fred.Kimberley Updates to supporting attributes as structs. Adding functionality that makes them easier to use and override in projects. Change 3007682 on 2016/06/09 by Michael.Trepka Re-enabled reverb on Mac Change 3006971 on 2016/06/08 by Saul.Abreu #fortnite #jira FORT-25169 Added node costs types, cost amounts, and remaining balance for each cost type to the NodePurchase analytics event. Change 3006933 on 2016/06/08 by Chris.Gagnon Fixed up all the Power levle widget use cases. #Jira FORT-23472, FORT-24132, FORT-24144, FORT-24952, FORT-24924 Change 3006633 on 2016/06/08 by Dmitry.Rekman Linux: propagate ensure message to the CR (FORT-23030). - Without this, ensure() has a generic "SIGTRAP" error message, which is misleading for QA. #tests Tried "debug ensure" a few times, observed crash report (on the website) with the proper message #jira FORT-23030 Change 3006036 on 2016/06/08 by Rob.Cannaday Remove warning about missing "recentplayers" field. The absence of the field is gracefully handled in the client and is only absent if the list is absent on the server. #jira FORT-18687 Change 3005216 on 2016/06/07 by Bob.Tellez #UE4 Avoiding layout invalidation if you use SetEnabled to set an identical enabled state. This is the same as how SetVisibility works. Change 3004857 on 2016/06/07 by Rob.Cannaday Fix for incorrect reason displayed for inability to join party #jira FORT-13517 Change 3004811 on 2016/06/07 by Michael.Trepka Increased the number of input buses for CoreAudio 3D Mixer to support 64 audio channels. Also, added a warning to FAudioDevice::StartSources so it doesn't silently ignore sound source initialization failures. Change 3004553 on 2016/06/07 by Lukasz.Furman fixed AnySpawners activating before navmesh unlock & rebuild #jira FORT-25067 Change 3004083 on 2016/06/07 by Bob.Tellez #UE4 Fixing GenerateApplicationPath for monolithic games. Change 3003457 on 2016/06/06 by Bob.Tellez #UE4 Add a little info to a warning about failing to load a file for streaming. Change 3003256 on 2016/06/06 by Bob.Tellez #UE4 Fixed a bug where not having a crash report would cause CrashReportClient not not properly exit on Mac Change 3003146 on 2016/06/06 by jonathan.lindquist switching from a ceil and lerp technique to an if statement to provide better transform results. Change 3002048 on 2016/06/06 by Daniel.Broder Support for setting Scalar and Vector Materials by Index rather than by name on MIDs. This feature allows much better performance in cases where large numbers of parameters are being set per frame and where the indices can be cached by the calling code in an initialization step. #RB Stephan.Delmer #CodeReview Bob.Tellez #UE4 #ReleaseNote Change 3001315 on 2016/06/05 by Daniel.Broder Fixed crash that could occur when the FPhysScene* was null (the world has no PhysicsScene) in USkeletalMeshComponent::TermArticulated(). That could happen when loading a world without fully instantiating it, such as when right-clicking a world in the context browser rather than opening the world directly. #RB Stephan.Delmer Ori, I wasn't sure if the whole line (and the line below it using PScene) should be moved within the if (PhysScene) block or not, but this change seems to fix it. If they can safely be moved, that would be presumably more efficeint though (since we'd only compare vs. nullptr once). #CodeReview Ori.Cohen #UE4 #Fortnite #BugFix Change 3001001 on 2016/06/04 by Fred.Kimberley Added meta data about attributes and a post serialize function so we can recover attributes that have changed their type. Adding Fortnite specific attribute type specialization. This type enforces minimum and maximum values for attributes. Change 3000613 on 2016/06/03 by Sam.Spiro #fort online 24747 Take change from SamZ to get connection change delegates firing correctly Add a delegate to the frontend player controller to logout if the connection goes bad (when all retries have failed) #RB Ben.Zeigler Change 3000482 on 2016/06/03 by Rob.Cannaday Fix problem where newly added friends don't recognize party invitations #jira FORT-19415 From CL 2953432: Ignore presence updates for local user with different resources #jira OR-19929 #tests front end party invites Change 2998044 on 2016/06/02 by Lukasz.Furman fixed path box intersection test used to verify if hotspot is still required for updated path #jira FORT-24422 Change 2997948 on 2016/06/02 by Eric.Newman Moved ProdCom to bottom of file w/ deprecation comment, and clarified deprecation criteria. Will probably need to be removed in //UE4 first and check for any fallout from EC jobs failing Change 2997660 on 2016/06/02 by Chris.Wood Changed Linux server crash handler to force CRC log paths to match main engine log. [UE-30259] - Some server crashes are missing from crashreporter database Should allow us to have CRC logs uploaded to S3 along with main logs easily. Change 2996702 on 2016/06/01 by Bob.Tellez #UE4 You can now use Edit Asset on Level assets in the reference viewer. Change 2996683 on 2016/06/01 by Tim.Tillotson #fortnite Fix analytics comments, changed a few NULL to nullptr, and removed stale code. #JIRA FORT-23833 Change 2996548 on 2016/06/01 by Bob.Tellez #Fortnite Fixing up or deleting remaining references to homebase buildings. HBOnboarding_BuildHeroBuilding is the last reference now and it will be removed soon. Change 2996322 on 2016/06/01 by Bob.Tellez #UE4 Fix for specifying more than one ini override on the command line Change 2996306 on 2016/06/01 by Bob.Tellez #UE4 Delete unneeded and broken script to unlock files in xcode. Does not work since XCode 6.3. Change 2995634 on 2016/06/01 by Jonathan.Lindquist imrpoving the wind magnitude and noise texture Change 2995249 on 2016/05/31 by Bob.Tellez #UE4 Importing "INVALID" in FUniqueNetIdRepl no longer triggers the warning about using ImportText during cook. Change 2992135 on 2016/05/26 by Bob.Tellez #UE4 extern for GuardedMain in LaunchLinux to fix nonunity Change 2991912 on 2016/05/26 by jonathan.lindquist moved a texture sample into a new grouping Change 2991738 on 2016/05/26 by Bob.Tellez #UE4 Level SaveAs now duplicates the world before saving it. This fixes a problem where level assets had the same guids for objects saved in them, which causes LazyObjectPtr issues when they are both in memory at the same time since they can not be uniquely identified. Change 2991449 on 2016/05/26 by Lukasz.Furman AI Ftests will now delay spawning until navmesh is ready #fortnite Change 2990705 on 2016/05/25 by Chris.Gagnon New stats panel, upon stat changes there is a delta pop up. New Squads Tab. Navigation from nodes to squad slots working. Added GetAnimationCurrentTime() to UMG Animation API. #RB Fred.Kimberley, Saul.Abreu Change 2990286 on 2016/05/25 by Bob.Tellez #UE4 Fix logging error regarding max tag container replication size Change 2990285 on 2016/05/25 by Bob.Tellez #UE4 Fix for crash when using "ShowDebug Game" client side Change 2989977 on 2016/05/25 by Lukasz.Furman auto generating navigation bounds from building grid data, UnitNavMeshBounds volume is no longer required #fortnite Change 2989174 on 2016/05/24 by Bob.Tellez #UE4 Added GC reason to the log message declaring that we are doing a GC during the cook commandlet. Change 2988571 on 2016/05/24 by Jonathan.Lindquist submitting a fix for grass-like hierarchy layouts Change 2985428 on 2016/05/20 by Bob.Tellez Experimenting with making UGS CIS not rebuild UBT when incremental building. Change 2985319 on 2016/05/20 by Bob.Tellez #UE4 Removing NumActorChannelsReadyDormant stat as it is somewhat expensive to calculate. Change 2985258 on 2016/05/20 by Billy.Bramer - Add GetFloatAttributeBase and GetFloatAttributeBaseFromAbilitySystemComponent to AbilitySystemBlueprintLibrary, allows querying for a base value of an attribute Change 2985157 on 2016/05/20 by Bob.Tellez Experimenting with non-unity CIS Change 2984664 on 2016/05/19 by Bob.Tellez #UE4 Pasting multiple cells into the property matrix no longer depends on your selected tiles, only your target cell. This is to match the behavior in Excel. Pasting a single cell into multiple cells remains unchanged. Change 2984663 on 2016/05/19 by Bob.Tellez #UE4 Fixed a crash in the property matrix involving going into edit mode on rows that include widgets that are not editable. Change 2984613 on 2016/05/19 by Bob.Tellez #UE4 You can now text import gameplay tags by directly using the tag string (i.e. Evolution.Hero.Soldier). This allows pasting these strings directly into the property matrix or other property-based editors. Change 2984508 on 2016/05/19 by Billy.Bramer - Add constructors for the new struct based attribute Change 2983883 on 2016/05/19 by Lukasz.Furman disabled movement mode in EQS testing pawn to prevent it from falling at PIE start #ue4 Change 2983770 on 2016/05/19 by Bob.Tellez #UE4 Fixed a bug where "OutputToScreen" BP messages would get stuck disabled after a screenshot (using a number of different codepaths). All screenshots now preserve the state of the "suppress messages" bool. #JIRA FORT-24303 Change 2982306 on 2016/05/18 by Bob.Tellez Also experimenting with not updating version files in UGS CIS. Change 2982154 on 2016/05/18 by Lukasz.Furman changed navwalking geometry conforming to use building prop special case #jira FORT-24215 Change 2982019 on 2016/05/18 by Bob.Tellez Trying out incremental CIS builds Change 2981192 on 2016/05/17 by Bob.Tellez #UE4 No longer staging movie files for dedicated server builds. Change 2981023 on 2016/05/17 by Lukasz.Furman added new mode for NavWalking geometry conforming: prefer height closer to current one this should allow standing on top of props or walking off them in lower LOD, instead of moving at ground level - needed for survivors on low cars Change 2980578 on 2016/05/17 by Lukasz.Furman added option for disabling path replan in crowd manager, turned it off in fortnite this must be handled through path update events and corridor assignment or else hotspot detection will break #jira FORT-24116 Change 2980364 on 2016/05/17 by Lukasz.Furman unified bounds tests for applying navmesh modifiers, always expanding bounds one cell height on Z axis to cover for voxelization roundings #jira FORT-24045 Change 2980360 on 2016/05/17 by Lukasz.Furman more detailed logs for using custom navlinks #jira FORT-23990 Change 2979880 on 2016/05/16 by Bob.Tellez #UE4 Raising scalability threshold for high end machines to adjust for modern hardware. Change 2979522 on 2016/05/16 by Saul.Abreu #fortnite Added IsValid BP-exposed method for FGameplayAttribute (which is already a BP-exposed struct type), as there is no existing method of validating a gameplay attribute from blueprints. Useful for UI that represents an attribute. Change 2977690 on 2016/05/13 by Daniel.Broder Made most FBox functions FORCEINLINE to improve DebugGame performance. #Fortnite: This change (just on IsInsideOrOn()) improved DebugGame performance for one part of Wind performance in Fortnite by ~18%. #CodeReview Bob.Tellez #UE4 #ReleaseNotes Change 2977517 on 2016/05/13 by Daniel.Broder Added ForceInline to TIndexedContainerIterator<...>::operator!=(...). This change improved DebugGame performance of a for loop using ranged-based syntax by ~27%! #CodeReview Bob.Tellez #Fortnite Wind perf improvement in DebugGame builds. #UE4 #ReleaseNote Change 2974910 on 2016/05/11 by Bob.Tellez #UE4 More graceful handling of export class names in string asset references. Change 2974095 on 2016/05/11 by Bob.Tellez #UE4 Fixed a bug where the RenderTargetOutputFormat for velocity rendering when using r.BasePassOutputsVelocity=True was using the wrong output index. Change 2973663 on 2016/05/11 by John.Abercrombie [implemented by Ben.Marsh] UBT: Add a config setting to allow overriding the output directory for PCH files. To use, edit Engine\Saved\UnrealBuildTool\BuildConfiguration.xml and add: <BuildConfiguration> <PCHOutputDirectory>D:\TestOutputDir</PCHOutputDirectory> </BuildConfiguration> Change 2972603 on 2016/05/10 by Saad.Nader #Fort Added the catalyst to the requirements of an evolvable item. It will only disable the evolution button if there is a catalyst. Change 2971741 on 2016/05/09 by Bob.Tellez #UE4 Adding more context to an error message about serializing FUniqueNetIdRepl during cook. Change 2969838 on 2016/05/06 by Bob.Tellez #Fortnite Added FN PS4 to build scripts Change 2969542 on 2016/05/06 by Bob.Tellez #UE4 Fixed a crash that involved renaming SCS nodes during compile on load. #JIRA FORT-23754 Change 2969520 on 2016/05/06 by Billy.Bramer - Fix missing virtual destructor now that the initter struct has virtual members Change 2969467 on 2016/05/06 by Billy.Bramer - Change FAttributeSetInitter to only contain pure virtual functions in preparation for making it easier to provide a custom implementation per game - Change the existing example FAttributeSetInitter to be called FAttributeSetInitterDiscreteLevels, make it derive from FAttributeSetInitter (DiscreteLevels is now allocated by default for now) - Add support for the new struct-based attribute type to FAttributeSetInitterDiscreteLevels - Fix typos in the initter - Convert usages of FString in AbilitySystemGlobals to FStringAssetReference, where appropriate - Allow attribute init data to come from several curve tables instead of just one - Remove reimport bindings from attribute metadata and global curve table, as neither was in use Change 2969279 on 2016/05/06 by John.Abercrombie Behavior tree auxilary nodes, parallel tasks, active tasks, and aborting tasks shouldn't be ticked while the behavior tree is paused Change 2966311 on 2016/05/04 by Rob.Cannaday Fix PS4 Orion players being able to whisper chat with non-Orion players #jira OR-20626 #tests chat with launcher, fortnite (From //Orion/Dev-General CL 2963555) Change 2966255 on 2016/05/04 by Bob.Tellez #UE4 Added an ensure to track down the cause of FORT-23604 and to gracefully recover from what would have been a crash. #JIRA FORT-23604 Change 2966083 on 2016/05/04 by Bob.Tellez #UE4 Adjusted material quality level for "Medium" settings to medium quality. High quality is still used in High and Epic scalability levels. Change 2965669 on 2016/05/04 by Nicholas.Davies Change the restricted platform ID to PSN to prevent Fortnite > PS4 paragon whisper chat #OPP-5268 Integrate PS4 Chat block Social and OSS code to Fortnite, UT, and Launcher #RB Antony.Carter Change 2965316 on 2016/05/03 by Ben.Zeigler #jira FORT-23600 Fix issue where stalled mcp queries never finished. This causes the query to properly fail Manual merge of CL #2907874: When MCP cancels a request due to its required auth failing, the http retry system would never kick off the complete delegates. This was due to the system only adding a request to its list once ProcessRequest was called, which does not happen in the above case. The fix is to add the request to the list when it is cancelled if we did not find it. Change 2965164 on 2016/05/03 by Bob.Tellez #UE4 Fix for Crash in WmfMedia for when the player is destroyed while loading media. Thanks MaxP! Change 2963754 on 2016/05/02 by Billy.Bramer - Switch ability system from binding to OnPostWorldCreation to PreLoadMap for its cleanup functions, as OnPostWorldCreation is called repeatedly with sublevels and can cause data loss - This is a bit of a stopgap, as where and when this happens should probably be configured per game (example: a long session game like an MMO would want to trigger these on something other than a map transition possibly) Change 2962922 on 2016/05/02 by Lukasz.Furman fixed gameplay debugger in "simulate in editor" mode Change 2959860 on 2016/04/28 by David.Nikdel #OGF #McpProfile - Add Profile Write Lock support to client API NOTE: Still need to finish backend support so haven't been able to test yet but this is enough for API hookup NOTE2: You may see a log message about "write lock unexpectedly released" when you do your first command after locking. This is expected because the backend isn't sending down the write lock timeout yet. #CodeReview: Ben.Zeigler Change 2959810 on 2016/04/28 by Jonathan.Lindquist A few more saftey measures to warn the user of incorrect settings and faulty meshes. (In response a licensee's question) Change 2959336 on 2016/04/28 by Bob.Tellez #UE4 Some improvements to asset save time: Added an early-out in PackageBackup to avoid inspecting files in cases where we don't care about the resutls. Also now using GetObjectsWithOuter when passing in a package list to GetObjectsInPackages (which probably should be renamed to GetAssetsInPackage) Change 2958942 on 2016/04/28 by Jonathan.Lindquist Wrote a new portion of pivot painter 2 that unifies edge normals across multiple static meshes Change 2958644 on 2016/04/27 by Jonathan.Lindquist lowering default recursive steps Change 2956612 on 2016/04/26 by Jonathan.Lindquist A few new saftey measures Change 2956197 on 2016/04/26 by Fred.Kimberley Fix a bug where a delegate won't be fired if the base value of an attribute has been changed and the attribute is the new type and doesn't have an aggregator. Fix a bug in gameplay effect tag matching where the deprecated tag is being checked but not the current one. Change 2955386 on 2016/04/25 by Jonathan.Lindquist Fixed a ui bug related to the first time path geo generator is run Pivot painter 2 has a new feature. It duplicates each model in a hierarchy, combines them and then welds their verts. Change 2955230 on 2016/04/25 by Billy.Bramer - Add a debug gameplay tag to string blueprint function, should only be used for debugging purposes Change 2954899 on 2016/04/25 by Fred.Kimberley Added a new backing data type for gameplay attributes. The new type holds both the current and base values. Currently, this new type can coexist with numeric types for gameplay attributes. Change 2953511 on 2016/04/22 by Bob.Tellez #UE4 Bumping up texture streaming pool allowance for min spec and redistributing mid an high to match. Also reduced mip bias at min spec. Change 2953496 on 2016/04/22 by Chris.Gagnon When the console closes it now properly restores the viewports input state (both focus and capture). Change 2952930 on 2016/04/22 by Lukasz.Furman fixed behavior tree getting stuck on instantly finished gameplay tasks #jira FORT-23041 Change 2951765 on 2016/04/21 by John.Abercrombie Removed unused code when initializing attribute sets Change 2951617 on 2016/04/21 by Jonathan.Lindquist new elements to the grass shader to include wind influence also adding a test model and the latest version of canopy creator Change 2950861 on 2016/04/21 by Jonathan.Lindquist Submitting a new material for grass so that it may react to the wind New wind test maps Functions to support global wind a new "fuzzy" mat functions Adding wind to the rift portals Change 2950725 on 2016/04/20 by Bob.Tellez Fixups for non NewEC in GetLastSucceededCL Change 2950695 on 2016/04/20 by Bob.Tellez Adding a small helper function to get the last succeeded CL of a given node. Change 2950616 on 2016/04/20 by Maury.Mountain hook up the pivot (+ (0,-1,0)) section of material function that was causing offset motion from pivots Change 2950207 on 2016/04/20 by Bob.Tellez #UE4 NoTimeouts is now respected even in the initial connection timeout. This fixes a bug where a large stall when starting pie causes you to transition to the entry map. Change 2950162 on 2016/04/20 by Lukasz.Furman fixed processing of repath requests, added infinite loop protection #jira FORT-23090 Change 2949974 on 2016/04/20 by Lukasz.Furman another batch of fixes for hotspot tasks getting out of sync: abort move is now ignored if instigated by new task at goal, clearing hotspot data on dying while gameplay tasks are still accessible, ignoring move resume when controller is being destroyed Change 2949923 on 2016/04/20 by Rob.Cannaday FOnlineIdentityMcp: Cancel ClientAuthRequests and ExternalAuthRequests on shutdown #tests PIE start game / shutdown Change 2949210 on 2016/04/19 by Bob.Tellez #UE4 Removing all local players from the game instance when it is shut down. This ensures that local players are properly torn down and events related to the lifespan of the player or controller are fired when exiting the game normally. #JIRA FORT-23024 Change 2947381 on 2016/04/18 by Rob.Cannaday Change XMPP presence, pubsub, messages, multi user chat, and chat's ref counting to be thread safe #jira FORT-22861 #tests front end partying Change 2945301 on 2016/04/15 by Michael.Trepka Reset SyncStatus in FAvfMediaVideoTrack::SeekToTime to fix issues with video not updating after rewind Change 2944422 on 2016/04/14 by Michael.Trepka Fixed Mono compile errors in UAT Change 2944375 on 2016/04/14 by Fred.Kimberley Changed how we handle missing gameplay tags so we now ensure once per missing tag instead of only ensuring on the first missing gameplay tag. Change 2944040 on 2016/04/14 by Michael.Trepka Fixed a problem with CoreAudio AudioUnitGraph update caused by adding and deleting the same node in a single tick Change 2943864 on 2016/04/14 by Lukasz.Furman fixed initialization order of gameplay debugger replicators on client #jira FORT-22885 Change 2943228 on 2016/04/13 by Bob.Tellez #UE4 Moved the addition of the IsDataOnly tag out of the if (ParentClass) block. Tags should not be dynamically added like this or else they can not be discovered by the editor which relies on asking the CDO for the tags relevant to an asset type. Change 2942303 on 2016/04/13 by Daniel.Broder Added support to be able to set a CanvasRenderTarget2D NOT to clear to green whenever it's updated (so you can just draw pixels that have changed instead of always having to redraw everything. #RB Bob.Tellez #UE4 Change 2941919 on 2016/04/13 by Jonathan.Lindquist Adding a new maxscript that allows artists to procedurally generate trees. Change 2941816 on 2016/04/13 by Saul.Abreu Demoted errors regarding widget-bound properties when first compling a new created widget blueprint - otherwise an ensure occurs. Change 2941752 on 2016/04/12 by jonathan.lindquist adding a new function to optimize trees and fix a few issues Change 2941519 on 2016/04/12 by Jonathan.Lindquist submitting a new warning regarding file unit types Change 2940980 on 2016/04/12 by John.Abercrombie Turned Graphs off by default in the Visual Logger Change 2940134 on 2016/04/11 by Billy.Bramer - Add support for new overrideable function OnPostDataImport to FTableRowBase; Can be override to perform custom parsing, fix-up, etc. per struct type whenever a data table is imported or reimported - Change row struct combo box on the data table importer to be sorted alphabetically Change 2938828 on 2016/04/08 by David.Hunt #FN || Economy Rebuild Updating several code references to items and item paths that no longer exist, with Bob's help. This fixes FORT-22784 (hopefully for real) and several other build and item errors. It also indicates that the various redirector issues I have been experiencing were likely red herrings - they were C++ defaults that were showing up on items that had nothing set, as opposed to redirects that failed. #CodeReview Bob.Tellez, Ben.Zeigler, William.Ewen, Carlos.Cuello Change 2938675 on 2016/04/08 by Lukasz.Furman fixed gameplay debugger displaying paths of killed pawns #fortnite Change 2938426 on 2016/04/08 by Rob.Cannaday Implement new command line party invitation format into Fortnite #jira FORT-22685 #tests launch with command line party invite Integrate CLs 2908339 and 2917498 from Orion Change 2938367 on 2016/04/08 by Billy.Bramer - Mark the reimport data table factory with UNREALED_API for external use - Change CSVImportFactory to respect the class of existing data being reimported upon Change 2937319 on 2016/04/07 by Lukasz.Furman improved gameplay task info in gameplay debugger tool Change 2937178 on 2016/04/07 by Lukasz.Furman fixed aborting undermine tasks when player becomes reachable #jira FORT-22240, FORT-22077 Change 2937166 on 2016/04/07 by Saul.Abreu Fixed redundant typename in TPair that was causing clang compilation errors. Change 2937093 on 2016/04/07 by Saul.Abreu #fortnite Made ElementSetType protected again in the Map family. Change 2937044 on 2016/04/07 by Saul.Abreu Tweaked Set/Map family of data structures to expose the typedefs for their key, value, and pair types. Change 2936940 on 2016/04/07 by Bob.Tellez #UE4 Fixed a bug that prevented the log summary from being printed after a blueprint compile. Change 2936696 on 2016/04/07 by Bob.Tellez #UE4 Blueprint names are once again part of Blueprint compile log messages. Change 2936572 on 2016/04/07 by Lukasz.Furman added more debug logs for tracking rare NaN error in player movement #jira FORT-19426 Change 2934892 on 2016/04/06 by Lukasz.Furman fixed updating hotspot information after all tasks instigated by it are finished #jira FORT-22515 Change 2933664 on 2016/04/05 by Michael.Trepka Fixed a rare crash in USoundNodeLooping::NotifyWaveInstanceFinished Change 2933554 on 2016/04/05 by Lukasz.Furman fixed taker's portal move (priorities of gameplay tasks spawned by path following) #jira FORT-22482 Change 2933343 on 2016/04/05 by John.Abercrombie Changed FGameplayAbilityActorInfo's AnimInstance property to a SkeletalMeshComponent in case AnimInstances are ever changed on a SkeletalMeshComponent - AnimInstance can be used through an accessor Change 2933300 on 2016/04/05 by Lukasz.Furman fixed number of spawned AI in FTests using PreSpawnDelay #fortnite Change 2933171 on 2016/04/05 by Lukasz.Furman added PreSpawnDelay param to function test spawn sets #fortnite Change 2931072 on 2016/04/01 by Lukasz.Furman changed pawn actions to gameplay tasks #jira FORT-21314 Change 2930987 on 2016/04/01 by Billy.Bramer - Add method to data table to get all rows as a type - Add metadata tag for data table rows to report columns as DataTableImportOptional, at which point they will not be warned against if missing during import (this allows games to do custom post-import fix-up or synthesis of data w/o expecting it to be imported) - Use new method for getting all tags to fix FORT-20563 "Gameplay tag table import checks by numerical row name for no reason" Change 2929651 on 2016/03/31 by Nick.Cooper #Fortnite - Fixed Actor AttachmentReplication not being cleared on detachment, which would cause issues with the actor's location for clients joining in progress #jira FORT-21330 #RB ben.zeigler Change 2929360 on 2016/03/31 by Daniel.Broder Fixed bug where CanvasRenderTarget2D assets would crash on load in editor due to trying to update the asset during post-load. Thanks to Bob for what I needed to check to early-out and avoid the crash. #RB Bob.Tellez #UE4 Change 2928845 on 2016/03/31 by Nicholas.Davies Add fix for chat text not clearing #jira FORT-22049 Textbox does not clear when text is sent through chat Change 2928574 on 2016/03/30 by Ben.Zeigler Fix issue with redirectors not working properly for blueprint function libraries. When a blueprint got regenerated it patched the old export, but failed to clear the "load failed" flag, so it would fail to find it when later pointed to by a redirect Change 2928572 on 2016/03/30 by Ben.Zeigler #Jira FORT-20763 Fix issue with "Server re-loading object" warning going off for deleted actors. It now only logs, and only for things that are going to successfully load Change 2928436 on 2016/03/30 by Bob.Tellez #UE4 Added Canvas Render Target factory and asset type actions so you can create them in the content browser and search for them after they are created. Change 2928372 on 2016/03/30 by Bob.Tellez #UE4 Added verbose message about animation assets that need to be resaved due to resetting the skeleton. Change 2926805 on 2016/03/29 by Bob.Tellez #UE4 Made SetOverallScalabilityLevel virtual so game-specific features can be updated based on a single-value level. Change 2926752 on 2016/03/29 by Bob.Tellez #UE4 Using DesiredScreenHeight is now optional. Often games use ResolutionQuality as purely a way to run better on slower machines so it should be controlled entirely by scalability. Change 2926189 on 2016/03/29 by Rob.Cannaday Change storing HTTP requests as raw pointers to weak pointers with validity being checked via Pinning it #jira FORT-18947 #jira OR-17695 #tests golden path Change 2924921 on 2016/03/28 by Lukasz.Furman removed log message showing as navmesh generation error when it skips over degenerated poly #fortnite Change 2924843 on 2016/03/28 by Lukasz.Furman added more debug logs for navmesh's failed triangulate() #jira FORT-22186 Change 2924719 on 2016/03/28 by Lukasz.Furman fixed offmesh link connection issue causing path portal edges to have duplicated data and breaking hotspot detection traces #jira FORT-22132 Change 2921698 on 2016/03/24 by Lukasz.Furman fixed EQS instancing queries by debug name instead of using unique one, fixed debug name on asset duplication #fortnite Change 2920395 on 2016/03/23 by Bob.Tellez #UE4 Added a call to FBaseServiceMcp::Shutdown() in FOnlineServiceAvailabilityMcp::Shutdown. The parent class doesnt do anything today, but this may fix a bug in the future. Change 2920343 on 2016/03/23 by Ben.Zeigler In ConvertScalarUPropertyToJsonValue, move the execution of the custom callback up above the specific property types. This is needed to allow us to override the TextProperty export, and allows overriding in general. It can have a performance implication if the custom callback is very slow #RB josh.markiewicz Change 2920310 on 2016/03/23 by Bob.Tellez #UE4 FOnlineServiceAvailabilityMcp::Init was not invoking the Superclass' Init Change 2920254 on 2016/03/23 by Aaron.McLeran FORT-22090 Re-disabling reverb. Will add an ini-based disabling ability but this CL quickly re-disables to resolve volume issue on FN and (hopefully) bypass crash mentioned in FORT-22037 Change 2920249 on 2016/03/23 by Rob.Cannaday Fix for crash in FOnlinePartySystemMcp::InternalCleanUpPartyMember Don't trigger "member left" type events if we are leaving the party #jira FORT-20422 #jira FORT-21726 Change 2920178 on 2016/03/23 by Bob.Tellez #UE4 Calling the platform-specific implementation of StackWalkAndDump when invoking StackWalkAndDumpEx. This fixes a bug in Windows where the first ensure does not produce a callstack. Change 2919858 on 2016/03/23 by Bob.Tellez #UE4 Fix for ensure about accessing a CVar in UParticleModuleLight on a non-game thread using GetValueOnGameThread. I changed this to GetValueOnAnyThread. Change 2919775 on 2016/03/23 by Bob.Tellez #UE4 Restoring enforced uniqueness in FUObjectAnnotationSparseSearchable and put all manipulations of InverseAnnotationMap in critical sections. This will make RemoveAnnotation fast again. Change 2919233 on 2016/03/22 by Bob.Tellez #UE4 Removing a warning that is pretty chatty in our cooked logs. Change 2919125 on 2016/03/22 by Bob.Tellez #UE4 Added ParticleLightQuality scalability setting since lower-end machines have trouble with particle lights. They are disabled on low and medium spec machines. HQ lights are only allowed on high-end machines. Change 2918831 on 2016/03/22 by Bob.Tellez #UE4 Fixed a bug where WinInet response headers were not properly being trimmed. #JIRA FORT-22054 Change 2917722 on 2016/03/21 by Ben.Zeigler Remove FortniteServer module and move those classes to FortniteGame. The engine doesn't support classes that only exist on servers but not clients, so this fixes a lot of error spam bugs, and should improve compile times Resave assets that directly referenced FortniteServer Change 2917588 on 2016/03/21 by Bob.Tellez #UE4 Fixed shadow variable that I introduced Change 2914169 on 2016/03/17 by Ben.Zeigler Disable extra logging that was added to track down Auth issues, they look to be resolved Change 2912626 on 2016/03/16 by Bob.Tellez #UE4 Success messages should not be warnings. Change 2911171 on 2016/03/15 by Bob.Tellez #UE4 Minor fix to correctly display GetBulkDataSize in the warning in FUntypedBulkData::WaitForAsyncLoading Change 2911170 on 2016/03/15 by Billy.Bramer #jira [FORT-6139] Trap models persist after destroying supporting structure in Outpost - Root issue was caused by error within network dormancy and queued bunches: If a dormant actor's open bunch ended up queued and a close bunch came in before the bunch was processed, the actor would never be properly destroyed client side as a result of not re-establishing the channel's actor pointer - Fix issue by changing close bunches to not be fully processed until their appropriate place in the queue. While this could cause superfluous execution (i.e. actor recreated just to be immediately destroyed), it should respect gameplay programming intent in regards to RPCs Change 2911009 on 2016/03/15 by Bob.Tellez #UE4 Fixed a bug in UHierarchicalInstancedStaticMeshComponent where RemoveInstances would not rebuild the ClusterTree, causing SortedInstances to contain incorect indices in GetInstancesOverlappingBox. This is the behavior of the singular RemoveInstance so this is what should also be done in the plural RemoveInstances. #JIRA FORT-21605 Change 2910295 on 2016/03/15 by Bob.Tellez #UE4 World thumbnails no longer cull primitives. This is because the camera is very far away and if terrain pieces are culled, the level is not visible. Change 2909324 on 2016/03/14 by Bob.Tellez #UE4 Since empty headers values cause GenerateHeaderBuffer to emit ERROR_HTTP_HEADER_NOT_FOUND, they are now omitted from the header buffer in WinInet. Change 2905920 on 2016/03/11 by Lukasz.Furman fixed crowd simulation getting stuck with invalid velocity (moonwalking husks) #fortnite Change 2905612 on 2016/03/11 by Bob.Tellez #UE4 Made the minimum quadtree size configurable in ProceduralFoliageSpawner. You need to reduce the minimum size a little if you are spawning very many small foliage meshes. [CL 3027184 by Bob Tellez in Main branch]
2016-06-24 16:58:12 -04:00
else if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_Desktop && PLATFORM_MAC)
{
AppendCString(GlslCode, "#version 330\n");
ReplaceCString(GlslCodeOriginal, "#version 150", "");
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3228013) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3156770 on 2016/10/10 by Allan.Bentham Fix VULKAN_ENABLE_API_DUMP build on android. Change 3157838 on 2016/10/11 by Allan.Bentham Fix Vulkan API tracing on android. Change 3170713 on 2016/10/21 by Steve.Cano Adding the "Optional Mobile Features BP Library" plugin to explose Blueprint functions for Sound Volume, Battery level, system temperature (only available on android), and Headphones being plugged in #jira UE-30896 #android #ios #ue4 Change 3171064 on 2016/10/21 by Steve.Cano Plugins to provide a common interface and Android implemenation for providing access to GPS / Location data from Blueprints #ue4 #android #jira UE-35917 Change 3171065 on 2016/10/21 by Steve.Cano IOS implementation of LocationServices plugin to provide access to location data in Blueprints #ue4 #ios #jira UE-35917 Change 3181802 on 2016/11/01 by Steve.Cano Fix an issue introduced in CL 3170713 - Adding new config section to RequiredSections list so that we can generate projects successfully. #jira UE-30896 #ios Change 3181807 on 2016/11/01 by Steve.Cano Make sure to clear out references to our eglSurface when we destroy it, else we will try to set our context with an invalid surface. #jira UE-35004 #android #ue4 Change 3184827 on 2016/11/03 by Allan.Bentham Do not HDR32 encode for views without view family. TranslucentAlphaOnly blend mode now works with encoding. #jira UE-37951 Change 3186684 on 2016/11/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3188693 on 2016/11/07 by Chris.Babcock Corrections to memory stats for Android #jira WEX-3760 #ue4 #android Change 3191538 on 2016/11/09 by Allan.Bentham Mobile tonemapper can use CVarTonemapperOverride Change 3192575 on 2016/11/09 by Chris.Babcock Support placing UE4Game files in ExternalFilesDir for automatic cleanup on uninstall for distribution packages #jira UEPLAT-1422 #ue4 #android Change 3196231 on 2016/11/13 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3196538 on 2016/11/14 by Jack.Porter Fix issue where lighting would not build for the first editor session of projects defaulting to MobileHDR=false as HardwareTargetingModule didn't set cvars #jira UE-38507 Change 3198068 on 2016/11/15 by Dmitriy.Dyomin Fixed android console command sender to work with ADB version 1.0.36 #jira UE-35171 Change 3200230 on 2016/11/16 by Jack.Porter Remove mosaic resolution limitation on ES3 devices #jira WEX-3119 Change 3201251 on 2016/11/16 by Chris.Babcock Fix Android compile error Change 3203542 on 2016/11/18 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3205598 on 2016/11/21 by Dmitriy.Dyomin Fixed: Missing selection outline in editor ES2 preview #jira UE-6458 Change 3205622 on 2016/11/21 by Dmitriy.Dyomin Fix ES2 build error from CL# 3205598 Change 3207232 on 2016/11/22 by Dmitriy.Dyomin ES2 GLSL generated shader simplifications Change 3208608 on 2016/11/23 by Dmitriy.Dyomin Fixed: Landscape Grasstype warning causes log spam when landscape is streamed in or out #jira UE-38694 Change 3209135 on 2016/11/23 by Alicia.Cano Packaging for iOS fails due to several invalid object type errors #jira UE-38431 #ios Change 3209822 on 2016/11/24 by Jack.Porter IWYU changes for LocationServicesBPLibrary Change 3209824 on 2016/11/24 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3210264 on 2016/11/25 by Jack.Porter Fix unicode compile issue on Korean windows Change 3210268 on 2016/11/25 by Jack.Porter IWYU and unicode fixes to Dev-Mobile Change 3211800 on 2016/11/28 by Allan.Bentham Create and set PrimitiveSceneProxy->PrimitiveSceneInfo before SetTransform render thread command is enqueued. Avoids race condition with FPrimitiveSceneInfo's constructor which can occur on out-of-order CPUs. Change 3212621 on 2016/11/28 by Jack.Porter More IWYU fixes. Change 3213080 on 2016/11/29 by Allan.Bentham enable UseSingleSampleShadowFromStationaryLights on mobile. PR #2990: Fixes single sample shadows for mobile. (Contributed by kallehamalainen) Change 3213164 on 2016/11/29 by Jack.Porter Win32 IWYU fix Change 3213932 on 2016/11/29 by Chris.Babcock Fix handling of ETC2 filtering by Google Play Store (if only ETC2, require ES3.0+ but don't use texture filtering in manifest) #jira UE-39120 #ue4 #android Change 3214563 on 2016/11/29 by Dmitriy.Dyomin Disable dynamic buffer discarding on Adreno330 (was casuing 10ms stalls on slate buffers update) Change 3214571 on 2016/11/29 by Dmitriy.Dyomin Custom stencil on Mobile #jira UEMOB-183 Change 3214641 on 2016/11/30 by Dmitriy.Dyomin Disable distance culling when rendering image for world composition #jira UE-37754 Change 3214656 on 2016/11/30 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3218479 on 2016/12/01 by Jack.Porter Fix for Vulkan build error when using AutoSDK Change 3218596 on 2016/12/02 by Dmitriy.Dyomin Fixed: Android split screen multiplayer does not function or render correctly #jira UE-35204 Change 3218874 on 2016/12/02 by Allan.Bentham Fix CSM shadow bug when ES3.1 + mobileHDR == false. Fix inverted culling when rendering shadow depths with mobilehdr == false #jira UE-39111 Change 3220911 on 2016/12/04 by Jack.Porter Fixed landscape duplicated GUID detection and crash when one of the landscapes is in a hidden streaming level Change 3220935 on 2016/12/04 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3222831 on 2016/12/05 by Dmitriy.Dyomin Added support for MGD and Andreno profilers #jira UEMOB-184 Change 3222843 on 2016/12/05 by Jack.Porter Fixed bug caused by CL 3196538 causing r.MobileHDR to toggle and crash when opening render settings #jira UE-38507 Change 3222934 on 2016/12/06 by Jack.Porter Android graphics debugger text changes Change 3223042 on 2016/12/06 by Dmitriy.Dyomin Fixed: missing GPU particles in LDR mode on device #jira UE-39363 Change 3223043 on 2016/12/06 by Jack.Porter Fixed logspam warnings from TcpMessaging launching on Android #jira UE-37895 Change 3223046 on 2016/12/06 by Allan.Bentham Move ES3.1 preview mode out of experimental. Add per device quality level preview to ES3.1 preview sub menu when project settings allow. #jira UEMOB-178 Change 3223113 on 2016/12/06 by Allan.Bentham changed MOBILE_EMULATION define for METAL_PROFILE on mac. fixes issues with editor primitive rendering with ES3.1 feature level preview. added -featureleveles2/31 commandline support to metalrhi. Change 3223117 on 2016/12/06 by Allan.Bentham Initialise FPrimitiveSceneInfo::CachedReflectionCaptureProxies Change 3223131 on 2016/12/06 by Allan.Bentham Fix translucency rendering when mobilehdr == false. (Disable mod shadows when mobilehdr == false.) #jira UE-38343 Change 3223162 on 2016/12/06 by Jack.Porter Disallow Absolute World Position with "excluding shader offset" on ES2 #jra UE-25555 Change 3223204 on 2016/12/06 by Jack.Porter Fix for unable to save levels when landscape components with tessellation moved to another level #jira UE-39372 Change 3223677 on 2016/12/06 by Chris.Babcock Fix tabs Change 3224139 on 2016/12/06 by Chris.Babcock Support modification of build.xml and add post import additions to GameActivity #jira UE-31372 #PR #2440 #ue4 #android Change 3224152 on 2016/12/06 by Chris.Babcock Add support for MadCatz C.T.R.L.R Android controller models #ue4 #android Change 3224162 on 2016/12/06 by Chris.Babcock Driver bug fix and using separate context for MediaPlayer14 (contributed by BrianHarris) #jira UE-35825 #PR #2787 #ue4 #android Change 3224581 on 2016/12/07 by Dmitriy.Dyomin Fixed black screen regression on iOS OpenGL Also now reporting shader compiler errors in iOS Change 3224589 on 2016/12/07 by Allan.Bentham Increase mobile renderer's maximum CSM cascade limit to 4 and introduce max shadow cascade cvar for mobile which defaults to 2 retaining existing behaviour. #jira UEMOB-187 Change 3224774 on 2016/12/07 by Jack.Porter Added flags for mobile shader permutation reduction Renamed mobile lighting policies to better describe them Set flags to remove policies not used by SunTemple - saves 22MB package size on Android #jira: UEMOB-179 Change 3224782 on 2016/12/07 by Allan.Bentham Add project option to set maximum supported CSM cascades to mobile renderer. #jira UEMOB-187 Change 3224943 on 2016/12/07 by Dmitriy.Dyomin Metal iOS will use sRGB textures #jira UEMOB-189 Change 3225098 on 2016/12/07 by Dmitriy.Dyomin fix for compile error from 3224943 Change 3225188 on 2016/12/07 by Chris.Babcock Fix #includes in deferred Android OpenGL #jira UE-39440 #ue4 #android Change 3226402 on 2016/12/07 by Dmitriy.Dyomin Fixed: wrong condition for r8 srgb on mac #jira UE-39471 Change 3226485 on 2016/12/08 by Dmitriy.Dyomin Fixed: Rendering Artifacts and invisible objects in Fortnite regression from nobile custom stencil changes #jira UE-39452, UE-39455 Change 3226637 on 2016/12/08 by Dmitriy.Dyomin Fixed: Odin Ensure Texture passed to ClearDepthStencil is not what is currently set as RenderTarget #jira UE-39482 Change 3226922 on 2016/12/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3227353 on 2016/12/08 by Chris.Babcock Remove CopyVisualizers batch call again Change 3228013 on 2016/12/08 By Chris.Babcock Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) [CL 3228374 by Jack Porter in Main branch]
2016-12-08 22:53:00 -05:00
else if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_iOS)
{
AppendCString(GlslCode, "#version 100\n");
ReplaceCString(GlslCodeOriginal, "#version 100", "");
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3145687) #lockdown Nick.Penwarden #rb Merge ========================== MAJOR FEATURES + CHANGES ========================== Change 3094167 on 2016/08/18 by Jeff.Fisher UEVR-97 Morpheus HMD tracking needs to wait until HMD is fully tracked. -Morpheus CALIBRATING/NOT_TRACKED tracking state hmd orientation update disabled and delegates added to present instructions to the user. This behavior is controlled by morpheus ini setting bDisableHMDOrientationUntilHMDHasBeenTracked, but defaulted to true to avoid subtly bad user experiences. #review-3094106 @chad.taylor #jira UEVR-97 Change 3104799 on 2016/08/29 by Jeff.Fisher UEVR-178 Morpheus HMD Black crescents -Switched reprojection frame time for 60/120 mode from 120hz to 60hz so we much better predict where the hmd will be pointing when the frame we are about to render is actually displayed, and are run off the edge of it less often and less severely. This makes the black crescent artifacts only just visible during very fast head turning. The kWrapModeMirror change, which will be submitted separately, makes the left and right crescents invisible to me. -Renamed the functions for setting the prediction info in the PS4Tracker. -Added render frame parameters to sony reprojection functions, these can help with debugging reprojection. -Added commented out sce call to get the reprojection debug data. Not allowed to submit an executable that calls it, but its nice to at least know where one can put it. May improve this later. -Wrapped PS4Tracker->Synchronize call in a check that the tracker handle is valid, because I managed to get it called when it wasn't (probably during hmd power off testing, but I don't remember now). It should be fine to not do it if the tracker is not functioning. #review-3104780 chad.taylor #jira UEVR-178 Change 3108423 on 2016/08/31 by Jeff.Fisher Morpheus Config Improvements. -UEVR-138 Morpheus HMD reprojection wrap mode config setting -Can now switch between wrap mode Mirror and ClampToBorder. Mirror is the default. -Made bDisableHMDOrientationUntilHMDHasBeenTracked editable in UE4Editor project settings. -Using generic project setting for bStartInVR, removed the morpheus specific one. #jira UEVR-138 #review-3106999 @nick.whiting Change 3111231 on 2016/09/01 by Jeff.Fisher Fixed bStartInVR ini setting. -Initial implementation worked via a generic EnableStereo call, which worked, but happened after the hmd setup dialog, which is not what I wanted. -Also fixed a tracking frame mismatch assert that hit when I powered the hmd off once, causing it to lose tracking. Its ok that it doesn't update in that circumstance. #review-3111211 @ryan.vance Change 3115196 on 2016/09/06 by Keli.Hlodversson #jira UEVR-128 Map move controller Select button to Invalid, as it is always handled by the system Change 3116425 on 2016/09/07 by Chad.Taylor PSVR: stereo layers implementation Change 3116593 on 2016/09/07 by Jeff.Fisher UEVR-126 Morpheus HMD connect dialog cancel reactions -VR only apps can't allow the player to cancel out of the hmd setup dialog, so lets just pop the dialog up again (sony were ok with a licencee doing this) if an ini setting says to do that. -VR/2D apps might want to switch to 2d if the player cancels out of the hmd setup dialog, so there is an ini setting for that. -A delegate only implementation is also provided for apps that want to do something else. This leaves the game rendering in VR mode, and fires the delegate. -Refactored to better separate successful HMD acquisition from stereo rendering. This was necessary to support the delegate only option on startup. If you start in vr mode with your hmd off and cancel the dialog stereo rendering now starts with default values for the hmd hardware stats (as read from my pvt) instead of crashing trying to use uninitialized data. When an hmd is connected its values will be read. -Refactored to ensure reprojection starts immediately when we call StartReprojection. #jira UEVR-126 #review-3116221 Change 3116754 on 2016/09/07 by Keli.Hlodversson bPixelDensityAdaptive is a bool and not a float property Change 3117692 on 2016/09/08 by Jeff.Fisher UEVR-135 Morpheus HMD recent feature error reporting UEVR-173 2DVR flexibility (UTexture) -Error log for sceHmdReprojectionSetOutputMinColor failure. -Made the parameter for 2dVR a UTexture* instead of a UTexture2D*, so it can be a rendertarget, etc. -Added error logs for missing texture, invalid texture, wrong texture format to 2DVR. #jira UEVR-135 #jira UEVR-173 #review-3116955 @keli.hloedversson Change 3117990 on 2016/09/08 by Jeff.Fisher UEVR-127 Morpheus HMD removal reaction -Added VRHeadsetPutOnHead and VRHeadsetRemovedFromHead delegates, and implemented them for Morpheus. #jira UEVR-127 #review-3117968 @keli.hlodversson Change 3120198 on 2016/09/09 by Jeff.Fisher MorpheusReprojector frame complete wait error log -Now log a warning if the sceKernalWaitEqueue returns an error. It not a problem if this happens rarely, but something is very broken if it starts happening continuously. Change 3121754 on 2016/09/12 by Keli.Hlodversson #jira UE-21878 - Also emit VR initialization analytics events in the editor. Change 3122311 on 2016/09/12 by Nick.Whiting Merging fix for Adreno devices rendering black from 4.13.1 Change 3123057 on 2016/09/13 by Keli.Hlodversson #jira UE-30097 Use the current value of r.ScreenPercentage on Occulus Rift if it's explicitly set. * If the SetBy part of the flags for the console var is SetBy_Constructor, then ignore the value. * If it's SetBy_Scalability, then ignore it if it equals 100 * Else, call SetScreenPercentage using the current value The obsolete HMD SCREENPERCENTAGE console command is still available and will override the setting until r.ScreenPercentage is modified the next time. Change 3123200 on 2016/09/13 by Chad.Taylor PS4 Stereo Layer double buffering. Since the overlays are reprojected at 120hz but rendered at 60hz we need to render to a separate buffer than the one being used by reprojection. Change 3125845 on 2016/09/14 by Keli.Hlodversson #jira UE-33996 Add hmd=<name> command line option to allow overriding which HMD module is used. Renamed GetModulePriorityKeyName to simply GetModuleKeyName, as this name is now also used to match against the command line options. Change 3127293 on 2016/09/15 by Jeff.Fisher UEVR-225 Morpheus HMD top and bottom black crescents -The hidden and visible area meshes for morpheus were too restrictive. Nudged them out a bit, no black crescents at the top and bottom of the screen. We are rendering a few more pixels now though. #review-3127145 @ryan.vance #jira UEVR-225 Change 3130635 on 2016/09/19 by Jeff.Fisher UEVR-226 Morpheus HMD mirrored fill wrong on outer edges -The setting was never being used, leaving the wrap mode at 0 aka kWrapModeWrap. -Refactored how the setting is applied so it works, and is less convoluted. #jira UEVR-226 #review-3129403 Change 3131615 on 2016/09/19 by Keli.Hlodversson #jira UE-29341. Update Chaperone bounds when SteamVR tells us they have changed Change 3136527 on 2016/09/22 by Keli.Hlodversson Don't depend on the current state of the VR subsystem when exiting PIE mode to decide whether the main window should be restored. Instead always restore it if it was minimized at the start. Change 3136652 on 2016/09/22 by Keli.Hlodversson Allow shutting down Steam VR subsystem without shutting down the Steam VR plugin completely in response to quitting from the SteamVR overlay. Enabling stereo rendering again will reinitialize SteamVR. This is useful when using PIE in VR mode as it allows entereing it again without restarting the editor. Also fixes crashes by first disabinge stereo rendering a short while before shutting down the VR subsystem. #jira UE-35940 Change 3138901 on 2016/09/23 by Ryan.Vance Merging 3138521 using OdinToDevVR to bring over temporary forward lighting ISR changes for 4.14 Change 3141614 on 2016/09/27 by Keli.Hlodversson Implement GetNumOfTrackingSensors and GetTrackingSensorProperties on SteamVR. #jira UE-32994 Change 3141948 on 2016/09/27 by Jeff.Fisher UEVR-242 Is AddControllerYawInput not allowed when morpheus is enabled? -Indeed it did not work. Looks like morpheus would not accumulate the yaw, so it would be reset every frame. I made the implementation of ApplyHmdRotation very similar to the one used for occulus (also similar to other platforms) to fix this. #jira UEVR-242 #review-3141933 keli.hlodversson Change 3143484 on 2016/09/28 by Nick.Whiting Integrating Oculus 1.8 SDK support, includes support for cylinder and cubemap stereo layers Change 3143517 on 2016/09/28 by Chad.Taylor Merging PS4Tracker fixes from Release-4.13 into Dev-VR Change 3143805 on 2016/09/28 by Keli.Hlodversson #jira UE-36478 Workaround to make world to meters scale apply correctly to Occulus controllers while running in PIE Change 3143943 on 2016/09/28 by Nick.Whiting Merging latest drop from OSVR Change 3144221 on 2016/09/28 by Keli.Hlodversson Implement GetTrackingSensorProperties on PS4 #jira UE-32994 Change 3144352 on 2016/09/28 by Ryan.Vance Initial implementation of mobile multi-view. This is non-functioning and requires a lot more work, but enough of the framework exists to make the 4.14 branch for an experimental release. Change 3144585 on 2016/09/29 by Jeff.Fisher UEVR-14 PSVR Support for 90Hz to 90Hz, and 120Hz to 120Hz -Enum setting added for the three frame sequences. -90Hz mode is trying to run camera updates at 90hz, but they can only run at 60 so every third one fails. This works, but its dubious. -Feature marked as experimental for now because of that 90hz tracking issue, and the lack of testing. -Defaulting to 60/120. #jira UEVR-14 #review-3143486 chad.taylor nick.whiting Change 3145263 on 2016/09/29 by Nick.Whiting Fix for constructor initialization order in StereoLayerComponent, which threw a warning on Clang Change 3145536 on 2016/09/29 by Nick.Whiting Fixes for project files to prevent mystery pop up from CAPI Change 3145663 on 2016/09/29 by Keli.Hlodversson PSVR: Make sure the camera orientation returned from GetTrackingSensorProperties points in the right direction. Change 3145670 on 2016/09/29 by Keli.Hlodversson For some reason the orientation of the Oculus tracking sensor is reported as pointing backwards. This flips it around to face front Change 3145687 on 2016/09/29 by Chad.Taylor VR splash screen support [CL 3146243 by Nick Whiting in Main branch]
2016-09-30 01:16:13 -04:00
if (bEmitMobileMultiView)
{
MoveHashLines(GlslCode, GlslCodeOriginal);
if (GSupportsMobileMultiView)
{
AppendCString(GlslCode, "\n\n");
AppendCString(GlslCode, "#extension GL_OVR_multiview2 : enable\n");
AppendCString(GlslCode, "\n\n");
}
else
{
// Strip out multi-view for devices that don't support it.
Copying //UE4/Release-Staging-4.14 to //UE4/Dev-Main (Source: //UE4/Release-4.14 @ 3182951) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3182951 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix "play together" invitations handling in PS4 OSS. - Wrong condition in GetUserWebApiContext. Web API contexts can be created for local users (i.e. FUniqueNetIdPS4 instances with a valid SceUserServiceUserId). #jira UE-38017 Change 3182892 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix incorrect identity API implementation in PS4 OSS. - System events directly drive the login state of a user. This also removes the blocking call to sceNpGetState(). - GetAuthToken is only called if the engine calls IOnlineIdentity::Login(). #jira UE-38017 Change 3182767 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix PS4 session invitations. - Was calling old Web API with SceNpOnlineId where SceNpAccountId is needed. - Replaced with NpToolkit2's session invitation API. #jira UE-38020 Change 3182766 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [!] Fix assert in FUniqueNetIdPS4::FindOrCreate. We were assuming an online-only ID could never become a local ID. This isn't the case in the following scenario: - Two users join a session on two separate PS4s. - One user signs into the other user's PS4 with the same account, with a second controller. PSN logs him out of the first PS4. - That user's Net ID has now migrated from being online-only, to local-with-online. This is a case that was not handled. #jira UE-38017 UE-38020 Change 3182765 on 2016/11/02 by Luke.Thatcher [RELEASE] [PS4] [~] Additional logging for PS4 OSS "Play Together". #jira UE-38017 UE-38020 Change 3182633 on 2016/11/01 by Jack.Porter Fix crash sculpting a landscape with grass that uses the landscape's lightmap, when lighting has not been built #jira UE-38042 Change 3182332 on 2016/11/01 by Mieszko.Zielinski Added a sanity check to UNavigationSystem::AddElementToNavOctree to guard agains DirtyElement.NavInterface being null #UE4 #jira UE-37588 Change 3182321 on 2016/11/01 by Dmitry.Rekman Updated READMEs for 4.14 (UE-38059). #jira UE-38059 Change 3182231 on 2016/11/01 by Mitchell.Wilson Adding Is Valid node in Retargeting_WorldInteractionBP to resolve warning. #jira UE-38079 Change 3182164 on 2016/11/01 by Matt.Kuhlenschmidt Fix alll collision being disabled if you dont auto-generate a simple hull when importing an FBX #jira UE-38091 Change 3182017 on 2016/11/01 by Chris.Babcock Disable glVertexAttribIPointer on PowerVR Rogue #jira UE-38074 #ue4 #android Change 3181942 on 2016/11/01 by Mitchell.Wilson Resolving multiple warnings in CIS for Elemental Demo. #jira UE-38075 Change 3181941 on 2016/11/01 by Nick.Shin PhysX Bulid Automation script update #jira UE-37329 'Compile UE4Game HTML5' - 300 Warnings Change 3181939 on 2016/11/01 by Ryan.Vance #jira UE-38072 We need to add a hook that can be called after native present has finished for SteamVR. PostPresentHandoff should be called when using the interleaved compositor immediately after we've submitted our eye buffers and called present for the mirror window. This unblocks the compositor process so it can do it's re-projection work. Otherwise it will block until we call WaitGetPoses which is a ways into the next frame. Change 3181849 on 2016/11/01 by Nick.Shin jukka's (Mozilla) fixes to SSE2 and GL issues for HTML5 jukka's (Mozilla) python scripts to build ThirdParty HTML5 libs the python scripts will need tweaking - they were moved from their original locations from: https://github.com/Mozilla-Games/UnrealEngine/commit/fd48bc0e4a5f0278a1c036d2b81036ab1270ad68 the CMakeLists.txt (and one configure.ac) files are defiinitely used from the (bash) shell build script (to build thirdparty libs for HTML5)... update existing (bash shell script and UE4 c#) build files to use the new "incoming" emsdk #jira UE-37329 -'Compile UE4Game HTML5' - 300 Warnings Change 3181848 on 2016/11/01 by Nick.Shin update compiled ThirdParty HTML5 libs using new emscripten tool chain (CL:#3180924) #jira UE-37329 - //UE4/Main: Step 'Compile UE4Game HTML5' - 300 Warnings Change 3181838 on 2016/11/01 by Nick.Shin new emscripten tool chain configured by jukka from Mozilla see Engine/Extras/ThirdPartyNotUE/emsdk/emscripten/incoming/EPIC_VERSION for details on where did this version come from #jira UE-37329 - //UE4/Main: Step 'Compile UE4Game HTML5' - 300 Warnings Change 3181611 on 2016/11/01 by Allan.Bentham Recreate vulkan swapchain after a pause/resume on android. #jira UE-36454 Change 3181451 on 2016/11/01 by Chris.Wood CrashReportClient no longer attempts to restart Launcher-run Editors via IPC with the Launcher. They are now restarted directly. [UE-37794] - Send and Restart from Crash Reporter Opens Project Browser Launcher can't accept command line args when restarting an application so it can't restart the editor with the right project. Also fixes broken SlateReflector in CRC (switched off in checked in version) #jira UE-37794 Change 3181117 on 2016/11/01 by Dmitriy.Dyomin Fixed: Text Actors not Rendering on Mobile PowerVR based devices were rendring opaque objects twice #jira UE-37949 Change 3181102 on 2016/11/01 by Jack.Porter Fix for editor crash during Landscape sculpting on pressing Ctrl+z (Subdivision enabled in material) #jira UE-36050 Change 3180851 on 2016/10/31 by Daniel.Wright Ray Traced Distance Field shadows must be projected last, since they overlap the depth range as Far CSM. Fixes Kite demo medium-distance shadowing. #jira UE-37793 Change 3180844 on 2016/10/31 by Michael.Trepka Disabled high-DPI in Mac CrashReportClient #jira UE-37697 Change 3180803 on 2016/10/31 by Michael.Trepka Setup Mac Metal layer on the main thread to solve issues with empty game window when showing a separate log window. #jira UE-37998 Change 3180764 on 2016/10/31 by zachary.wilson Checkking in content for Lighting scenarios test, currently incomplete but needed for bug repro #jira UE-29618 Change 3180666 on 2016/10/31 by Dmitry.Rekman Fix Linux client & server hang when decoding voice chat (UE-36108). - break out of voice channel while loop if unable to serialize the voice packet data. - fixed by JoshM #jira UE-36108 Change 3180428 on 2016/10/31 by Mitchell.Wilson Rebuilt lighting in all Content Examples levels and saved to resolve warnings. #jira UE-37880 Change 3180399 on 2016/10/31 by Dmitry.Rekman Linux: revert to old commandline switch -binnedmalloc (UE-38001). #jira UE-38001 Change 3180298 on 2016/10/31 by Steve.Robb Extra information about which class has failed to have its CppStructOps initialized. #jira UE-37921 Change 3180289 on 2016/10/31 by John.Pollard Fix crash in FCurlHttpRequest::DebugCallback + Specify the string length to FString's constructor as the result from StringCast is not null terminated if the string's length is specified (instead of assuming null termination). #jira UE-36658 Change 3180200 on 2016/10/31 by Benjamin.Hyder Updating QA-Materials to include BuiltData #jira UE-29618 Change 3180173 on 2016/10/31 by Nick.Whiting Fixing up static analysis warning about array size in GoogleVRHMD code #jira UE-38007 Change 3180123 on 2016/10/31 by ryan.brucks #jira UE-35977 hooked up missing transform node inside of newly added function so that it works with variable rotations. Change 3180108 on 2016/10/31 by Benjamin.Hyder Updating QA-Effects map to include BuiltData #jira UE-29618 Change 3180104 on 2016/10/31 by Marc.Audy Don't recreate the render state if the component got unregistered in the interim. #jira UE-37968 Change 3180084 on 2016/10/31 by Allan.Bentham Use glVertexAttribIPointer for ES3. Enable SupportsTextureMaxLevel for ES3. ensure GL_HALF_FLOAT is used for vertex half float format on ES3 (instead of GL_HALF_FLOAT_OES) Fix assert when previewing ES3.1 with PC OpenGL. #jira UE-37472 Change 3180082 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [-] Back out PS4 OSS warnings filter in UBT output (original CL 3150360). - We weren't relying on this anyway, since the build machines are filtering based on a perl script (See CL 3151027) #jira UEPLAT-1424 Change 3180044 on 2016/10/31 by Michael.Trepka Don't create additional autorelease pool for Metal context on the game thread. #jira UE-37894 Change 3180023 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [^] Merge (as edit) PlayStation 4 Online Subsystem refactor for Sony SDK 4.008.061 (CL 3178249) from //UE4/Dev-Platform to OrionGame in //UE4/Release-4.14 Original CL description: [~] Upgrade PlayStation 4 Online Subsystem to be compliant with Sony's new APIs in SDK 4.008.061. - Replaced deprecated APIs with new ones. - Replaced NpToolkit with NpToolkit2. - Refactor of FUniqueNetIdPS4 and related code. FUniqueNetIdPS4 is now immutable and immovable. - Added online ID cache system, which calls out to Sony's new ID Mapper Web API. Contains a breaking change in FUniqueNetId - FUniqueNetId::ToString() now returns the SceNpAccountId string of a user, rather than the SceNpOnlineId string. - Custom backends which rely on this string to identify users will need to support SceNpAccountIds, and map them to existing accounts. #jira UEPLAT-1424 Change 3179973 on 2016/10/31 by Sam.Deiter #Jira UEDOC - 3957 #UE4 Docs: Fixing typos in the landscape tutorials for bug UEDOC - 3957 #Code_Review lauren.ridge, jeff.wilson, ian.shadden, wes.bunn, chase.mcallister, robert.gervais Change 3179930 on 2016/10/31 by Luke.Thatcher [RELEASE] [PS4] [^] Merge (as edit) PlayStation 4 Online Subsystem refactor for Sony SDK 4.008.061 (CL 3178249) from //UE4/Dev-Platform to //UE4/Release-4.14 Original CL description: [~] Upgrade PlayStation 4 Online Subsystem to be compliant with Sony's new APIs in SDK 4.008.061. - Replaced deprecated APIs with new ones. - Replaced NpToolkit with NpToolkit2. - Refactor of FUniqueNetIdPS4 and related code. FUniqueNetIdPS4 is now immutable and immovable. - Added online ID cache system, which calls out to Sony's new ID Mapper Web API. Contains a breaking change in FUniqueNetId - FUniqueNetId::ToString() now returns the SceNpAccountId string of a user, rather than the SceNpOnlineId string. - Custom backends which rely on this string to identify users will need to support SceNpAccountIds, and map them to existing accounts. #jira UEPLAT-1424 Change 3179539 on 2016/10/31 by Jack.Porter Fix crash when Toggling Landscape Mode with Hidden Sub-Level containing a Landscape #jira UE-37954 Change 3179309 on 2016/10/29 by Benjamin.Hyder Re-Saving Foliage asset in Tm-DistanceFields #jira UE-29618 Change 3179308 on 2016/10/29 by Benjamin.Hyder updating AutoLOD settings for foliage example in TM-Shadermodels #jira UE-29618 Change 3179135 on 2016/10/28 by Chris.Babcock Only use alternative event flow for Daydream packaged applications #jira UE-37847 #ue4 #android Change 3178995 on 2016/10/28 by JohnHenry.Carawon Adding test content for the World Origin Rebasing feature #jira UE-29618 Change 3178994 on 2016/10/28 by Chris.Babcock Disable ARM64 Google Play Games - need new library to fix crash #jira UE-37972 #ue4 #android Change 3178955 on 2016/10/28 by Marc.Audy Don't worry about clearing from world's end of frame update frame if being GC'd #jira UE-37928 Change 3178921 on 2016/10/28 by Daniel.Wright [Copy] Scene captures and planar reflections force a scene color alpha channel to be used when they are capturing (does not affect the scene color format for the main views). Fixes planar reflections with r.SceneColorFormat=3. Setup scissor for scene depth resolves, helps with passes using screenpercentage to reduce resolution. Planar reflection depth resolves .8ms -> .2ms on 970 #jira UE-37970 Change 3178919 on 2016/10/28 by Daniel.Wright [Copy] Fixed planar reflections in forward shading. The change to disable checkerboard SSS caused scene color alpha to be non-zero for opaque / masked pixels in forward, but there's no SSS pass run later to correct it, since this is the forward rendering path. #jira UE-37970 Change 3178905 on 2016/10/28 by Max.Chen Sequencer: Fix fade track instance compile #jira UE-37939 Change 3178808 on 2016/10/28 by Dmitry.Rekman Linux: fix crash on exit (UE-37536). - Base virtual function (PostRun()) was called due to thread being stopped at the moment when the subclass destructor has already run. #jira UE-37536 (Edigrating 3175651 from Dev-Platform to Release-4.14) Change 3178707 on 2016/10/28 by Marc.Audy Fix inverted null check that caused load game from slot to fail if using a BP generated class #jira UE-37774 Change 3178664 on 2016/10/28 by Alexis.Matte Fix the fbx automation tests #jira UE-37960 Change 3178617 on 2016/10/28 by Bart.Hawthorne Fix issue where changing the world origin in a single player game would try to access the FNetworkPredictionData_Client_Character on character movement components #jira UE-37692 #tests ran QA game and tested that assert no longer fired in debug Change 3178615 on 2016/10/28 by Max.Chen Matinee to Level Sequence: Added interface to extend the matinee to level sequence converter Copy from Dev-Sequencer #jira UE-37328 #2864 Change 3178553 on 2016/10/28 by Michael.Trepka Don't wait for the main thread in FMacWindow::Show() #jira UE-37915 Change 3178526 on 2016/10/28 by Alexis.Matte Clean unused material when importing a skeletal mesh. Its possible to have a material reference in a fbx node and not have any face referencing this material. #jira UE-37923 Change 3178451 on 2016/10/28 by Mitchell.Wilson Limit the max angle the cannon tower can be rotated when manually aiming. When max rotation is reached, debug line turns red to be consistent with the arrow tower. #jira UE-36512 Change 3178420 on 2016/10/28 by Lina.Halper Fix build issue #jira: UE-37911 Change 3178390 on 2016/10/28 by mason.seay Enabling follow on certain notifies to help catch issues #jira UE-29618 Change 3178325 on 2016/10/28 by Zak.Middleton #ue4 - (4.14) - Fix crash when player is destroyed and server PlayerController checks to see if it needs to force a network update. Also fix crash when calling ACharacter::SetReplicateMovement when not on the server. Mirror CL 3178247 and CL 3178256 in Dev-Framework. #jira UE-37902 Change 3178312 on 2016/10/28 by Max.Chen Sequencer: Fade only oin the current player context, not on all worlds. #jira UE-37939 Change 3178267 on 2016/10/28 by Lina.Halper Fix issue with anim editor sound play notify doesn't work with follow option #jira: UE-37946 Change 3178146 on 2016/10/28 by Lina.Halper #fix crash with thumbnail update when there is no animation, and so on. #code review: Benn.Gallagher #jira: UE-37911 Change 3178145 on 2016/10/28 by Matthew.Griffin Fixed Clean process during a Hot Reload Prevent engine build products, intermediates and exe/dlls from being deleted during Hot Reload and make sure Hot Reload state is preserved #jira UE-37616 Change 3178143 on 2016/10/28 by Mitchell.Wilson Updating BP_Spinning_Logo to stop spinning when disabled instead of finishing the rotation. #jira UE-36269 Change 3178110 on 2016/10/28 by Mitchell.Wilson Rebuilt lighting and saved levels. #jira UE-36913 Change 3178070 on 2016/10/28 by Mitchell.Wilson Adjusted trigger ragdoll time in shooter character so the character does not appear to float while in death animation. #jira UE-37124 Change 3178034 on 2016/10/28 by Jon.Nabozny Add missing Super::Tick call to ATP_TopDownCharacter::Tick. #jira UE-37914 Change 3178021 on 2016/10/28 by Max.Chen Sequence Recorder: Disable auto possess player for recorded pawns. This fixes a bug where if you record a third person template character, when you open the sequence, the recorded character will possess the viewport. Copy from Dev-Sequencer #jira UE-35342 Change 3177992 on 2016/10/28 by Matt.Kuhlenschmidt Fix outlined text accumulating error due to measuring the outlines for each text run rather than the entire string #jira UE-37935 Change 3177981 on 2016/10/28 by Nick.Darnell UMG - Fixing how the virtual window calculates desired size. It was including scale again, which is fine for SWindow, but isn't what we want on the SVirtualWindow, should probably consider making a new SWindowBase class they can both share in the future. #jira UE-36861 Change 3177888 on 2016/10/28 by Matthew.Griffin Back out revision 4 from //UE4/Release-4.14/Engine/Source/Runtime/Engine/Private/InheritableComponentHandler.cpp Change 3177881 on 2016/10/28 by Matthew.Griffin Added guards to WITH_EDITOR only static initialisation Change 3177871 on 2016/10/28 by Matt.Kuhlenschmidt Fix crash import fbx scenes if objects contain procedural textures (not supported) #jira UE-37917 Change 3177856 on 2016/10/28 by Matthew.Griffin Adding THIRD_PARTY_INCLUDES macros around Google VR includes to fix static analysis warnings Change 3177815 on 2016/10/28 by Graeme.Thornton Non-editor build fix #jira UE-37929 Change 3177812 on 2016/10/28 by Graeme.Thornton Fix for COTF crash with EDL. Manually copied from CL 3174743 in Dev-Core #jira UE-37810 Change 3177737 on 2016/10/28 by Guillaume.Abadie Brings over 3141695 and 3173310 from //Odin/Main: Fixes particle collision in the forward renderer. #jira UE-37927 Change 3177703 on 2016/10/28 by Phillip.Kavan [UE-37852] Ensure that we create a unique template object in a child class's ICH when overriding an inherited SCS default scene root node. change summary: - added UInheritableComponentHandler::SCSDefaultSceneRootOverrideNamePrefix - modified UInheritableComponentHandler::CreateOverridenComponentTemplate() to special-case SCS default scene root node overrides when determining the new template name - modified UInheritableComponentHandler::PostLoad() to special-case SCS default scene root node overrides during template name fixup - modified SSCSEditor::RemoveComponentNode() to skip renaming the component template away from the variable name for the default scene root node, since we don't actually recreate it when it gets re-added #jira UE-37852 Change 3177600 on 2016/10/27 by Chris.Babcock Pass through the intent action from splash screen #jira UE-37925 #ue4 #android Change 3177436 on 2016/10/27 by Mike.Beach Guarding against a top crash that could occur when pasting a select node (unknown how) - now using an unchecked accessor to get a specific pin, and guarding again a null (instead of asserting). #jira UE-37910 Change 3177365 on 2016/10/27 by Daniel.Wright Fixed access of FPrecomputedLightVolumeData after it has been deleted (causes crash on exit with USE_MALLOC_STOMP enabled) #jira UE-37903 Change 3177236 on 2016/10/27 by Mitchell.Wilson Updated UVs on M_FloorTiles1 to resolve precision issues with the material's normal on mobile devices. Fixed reflection captures in the level and rebuilt lighting. #jira UE-36624 Change 3177235 on 2016/10/27 by mason.seay Vehicle Assets #jira UE-29618 Change 3177036 on 2016/10/27 by Mitchell.Wilson Inverted throttle control for controller Right Joystick Up, Down, Y-Axis to be consistent with the info from our template wiki #jira UE-37881 Change 3176996 on 2016/10/27 by mason.seay Missed node link #jira UE-29618 Change 3176993 on 2016/10/27 by mason.seay Test AnimBP for crash #jira UE-29618 Change 3176992 on 2016/10/27 by Mitchell.Wilson Adding [EditoronlyBP] to DefaultEditor.ini of projects that were missing it. #jira UE-37846 Change 3176946 on 2016/10/27 by Alexis.Matte We recompile the material only if there is a material expression node that ask for a shader recompile when the texture is change with no specified property. #jira UE-37705 Change 3176939 on 2016/10/27 by Alexis.Matte Check the pointer before using it #jira UE-37853 Change 3176927 on 2016/10/27 by mason.seay Rebuilt Lighting #jira UE-29618 Change 3176883 on 2016/10/27 by Steve.Robb Fix for crash when an array property changes while instancing subobjects. Fix for StrStr running off the end of a non-null-terminated string and a tidy up with TUniquePtr. Fix for accessing a deleted StaticClass() in FInputBindingEditorModule::ShutdownModule. #fyi matt.kuhlenschmidt, alex.fennell #jira UE-37752 Change 3176811 on 2016/10/27 by Chris.Bunner Rework of previous commit to avoid potential confusion moving forward. #jira UE-37424 Change 3176783 on 2016/10/27 by Chris.Bunner Default scalability settings to Epic, not Cinematic. Duplicated default render resolution scale fix (CL 3170020). #jira UE-37424 Change 3176692 on 2016/10/27 by Mike.Beach Fixing up a mistake where we weren't reading all [EditoronlyBP] settings (which are now deprecated). Was causing certain settings to default to off, and caused an inaccurate deprecation warning. #jira UE-37848 Change 3176635 on 2016/10/27 by mason.seay Setting up skeleton for retargeting testing #jira UE-29618 Change 3176586 on 2016/10/27 by Marcus.Wassmer Fix crash on D3D12 editor when selecting objects #jira UE-37861 Change 3176479 on 2016/10/27 by Robert.Manuszewski Fix for a rare crash when loading into Orion match. Made sure the Skeleton asset is loaded before PostLoad is called on it. #jira UE-37297 #jira UE-37711 Change 3176107 on 2016/10/27 by Phillip.Kavan [UE-37690] AddComponent node template names now use a counter to avoid a potential component data cache mismatch with an existing instance of an old AddComponent node template. change summary: - added UBlueprint::ComponentTemplateNameIndex as a way to to map component class names to an incremental counter (saved). - UK2Node_AddComponent::MakeNewComponentTemplateName() is now public, non-static, and uses an internal index map to generate unique component template names. #jira UE-37690 Change 3176105 on 2016/10/27 by Phillip.Kavan [UE-37686] Fix naming for archetype objects associated with new AddComponent nodes. change summary: - switched UK2Node_AddComponent::MakeNewComponentTemplateName() to be a public API. - modified UBlueprintComponentNodeSpawner::Invoke() to call UK2Node_AddComponent::MakeNewComponentTemplateName() in place of MakeUniqueObjectName(). - modified UBlueprintGeneratedClass::FindArchetype() to better handle old AddComponent node template names. These were based on the UClass display name, and thus it was possible for the non-index form of that FName to collide with SCS variable names after the initial switch to use the non-indexed (base) FName for archetype matching in all cases. As a result I've reverted back to using the given ArchetypeName value for the SCS variable case. #jira UE-37686 Change 3176009 on 2016/10/26 by Dmitriy.Dyomin Fixed: Editor crash on changing sub-level visbility under certain conditions #jira UE-34740 Change 3175807 on 2016/10/26 by Daniel.Wright Fixed the editor thinking a lighting build is still active after you discard the results from one #jira UE-37834 Change 3175777 on 2016/10/26 by Jon.Nabozny #jira UT-6263 Fix crash when running ServerTravel on a client Dupe of CL #3175731 on UT, checked in on behalf of ben.zeigler Change 3175695 on 2016/10/26 by Ryan.Gerleve Don't clear level collections in UWorld::CleanupWorld unless bCleanupResources is true. #jira UE-37336 Change 3175628 on 2016/10/26 by Chad.Garyet Added -Build vstream from 4-14 to allow checkins from physx altered build script and json to reflect new changes #JIRA UE-37085 Change 3175612 on 2016/10/26 by Martin.Wilson Fix crash when running an in-editor cook on the fly server with unsaved virtual bone changes #jira UE-37785 Change 3175552 on 2016/10/26 by Brian.Karis Twinblast bust changes #jira UE-0 Change 3175543 on 2016/10/26 by Marc.Audy Allow audio thread on PS4 to use 7th core as opposed to being pinned to it #jira OR-30447 Change 3175538 on 2016/10/26 by Matt.Kuhlenschmidt Fixed a crash when clicking Apply when using the Brush Clip tool #jira UE-37838 Change 3175502 on 2016/10/26 by Mitchell.Wilson Enabled modulated shadows on lights in rolling template levels. #jira UE-37047 Change 3175485 on 2016/10/26 by mason.seay Test Map for virtual bones #jira UE-29618 Change 3175469 on 2016/10/26 by mason.seay Test assets for Virtual Bones testing #jira UE-29618 Change 3175428 on 2016/10/26 by Marc.Audy Possibly fix crash in Autosave due to dereferencing a world pointer which is freed memory #jira UE-37590 Change 3175414 on 2016/10/26 by Michael.Trepka Fixed mouse position calculations for secondary monitors on Mac #jira UE-37822 Change 3175382 on 2016/10/26 by Yannick.Lange VR Editor: - Fix: Landscape UI Elements are not visible #jira UE-36843 - Fix: First-time switch to Landscape tab in VREditor causes UI Errors #jira UE-37410 - Fix: Enabling Foilage Mode in VR Editor breaks the pointer #jira UE-37214 - Fix: Landscape sculpting when attempting to move menu panels in VREditor #jira UE-37581 #jira UE-36843 #jira UE-37410 #jira UE-37214 #jira UE-37581 Change 3175349 on 2016/10/26 by Chad.Garyet Changing physx build agents to compile workspaces instead of full ones #JIRA UE-37085 Change 3175267 on 2016/10/26 by Martin.Wilson Fix retarget crash #jira UE-37781 Change 3175205 on 2016/10/26 by Rolando.Caloca UE4.14 - Remove erroneus assert #jira UE-37584 Change 3175188 on 2016/10/26 by Chris.Babcock Fix out of spec GLSL operations (contributed by JeffRous) #jira UE-37800 #PR #2886 #ue4 #android Change 3175156 on 2016/10/26 by Mitchell.Wilson Adding missing iOS app icons to SunTemple project #jira UE-36991 Change 3175095 on 2016/10/26 by Daniel.Wright Fixed stationary skylight reflections using an inverted mask on materials without high quality reflections with Forward Shading #jira UE-37783 Change 3175075 on 2016/10/26 by Daniel.Wright [Copy] Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear) #jira UE-36497 Change 3175050 on 2016/10/26 by Jamie.Dale FTextRenderComponentMIDCache now marks MIDs as stale when the font parameters available in the parent material changes #jira UE-37819 Change 3175039 on 2016/10/26 by Daniel.Wright Fixed Duplication mode #jira UE-37231 Change 3174996 on 2016/10/26 by Mitchell.Wilson Removing [EditoronlyBP] changes made to DefaultEditor.ini. EDL is now disabled by default in ShooterGame. #jira UE-37648 Change 3174987 on 2016/10/26 by Jon.Nabozny Fix crash when moving InstancedStaticMeshComponent in editor when it had no mesh set, but had instances. #jira UE-37594 Change 3174803 on 2016/10/26 by Ori.Cohen Fix world origin shifting causing a crash inside physx. #JIRA UE-37745 Change 3174776 on 2016/10/26 by Allan.Bentham Work around broken depth reads on Galaxy S4. #jira UE-35481 Change 3174723 on 2016/10/26 by Robert.Manuszewski Changing the criteria for UBL to ignore the event driven loader flag to IsEngineInstalled() just like at runtime. #jira UE-37617 Change 3174650 on 2016/10/26 by Matthew.Griffin Ensured that Online Subsystem Oculus plugin is precompiled successfully for Android Change 3174644 on 2016/10/26 by Matthew.Griffin Fixing GoogleVR compile issues Change 3174352 on 2016/10/25 by Daniel.Wright Rename map build data along with the world - fixes lighting lost on map rename / save as. Duplicate map build data along with the world - fixes lighting lost on map duplicate in the content browser, or save as when the source already exists. Save map build data packages in SaveWorld - fixes lighting being lost on save as. #jira UE-37231 Change 3174335 on 2016/10/25 by Chris.Babcock Corrected Proguard issue with Codeworks for Android 1R5 installers #jira UE-37680 #ue4 #android Change 3174318 on 2016/10/25 by Marcus.Wassmer Duplicate 3174187 #jira UE-37020 Change 3174263 on 2016/10/25 by patrickr.donovan Test content updates and additions. Lighting Channel map added to TM-VRLoader. #jira UE-29618 Change 3174120 on 2016/10/25 by Daniel.Wright UObject::PostDuplicate with DuplicateMode * Allows differentiating between being duplicated as part of a world duplication vs duplication within a level * This is needed when generating a guid that needs to be unique within a level, but constant across instances of that level, like a light component #jira UE-37231 Change 3174113 on 2016/10/25 by Daniel.Wright Fixed log spam #jira UE-37522 Change 3174010 on 2016/10/25 by Jamie.Dale Fixed several crashes in the Session Frontend when viewing profiles - SFiltersAndPresets wasn't being cleared when the profile data was changed back to a live instance. - SFiltersAndPresets could crash if it was updated when no profile was selected. - SDataGraph could cause a crash if you clicked on it when there was no data (passed a range of -1, 0). - A session update message would clobber any loaded profile data, resetting to the current instance. #jira UE-37597 Change 3173982 on 2016/10/25 by mason.seay Deleting unneeded asset #jira UE-29618 Change 3173912 on 2016/10/25 by Ori.Cohen Fix divide by 0 crash when torque curve is 0 #JIRA UE-37737 Change 3173866 on 2016/10/25 by Ben.Marsh Remove setting forcing UnrealCEFSubProcess to compile using Visual Studio 2013. #jira UE-37678 Change 3173824 on 2016/10/25 by Ben.Marsh Fix trying to recompile UBT in Rocket builds when cleaning a build target. #jira UE-37616 Change 3173812 on 2016/10/25 by Nick.Darnell XBoxOne - The Vertex and Index buffers are now allocated with the right nextwriteoffset to prevent stomping old data on future writes. #jira UE-37757 Change 3173808 on 2016/10/25 by Ben.Marsh Fix batch files detecting MSBuild install locations for Visual Studio "15" preview 5. #jira UE-37627 Change 3173711 on 2016/10/25 by Ori.Cohen Fix linux compiler issues for physx #JIRA UE-37085, UE-37114, UE-37116 Change 3173704 on 2016/10/25 by James.Cobbett Import test assets for Alembic Conversion test #jira UE-29618 Change 3173694 on 2016/10/25 by Matt.Kuhlenschmidt Fixed Zip project not working in binary builds #jira UE-37655 Change 3173692 on 2016/10/25 by James.Cobbett Test content for Alembic Conversion options #jira UE-29618 Change 3173666 on 2016/10/25 by Matt.Kuhlenschmidt Fixed array refreshing in the details panel not functioning properly for sub-object properties #jira UE-37652 Change 3173619 on 2016/10/25 by Robert.Manuszewski Making the cooker ignore EDL ini setting in binary engine build. #jira UE-37617 Change 3173616 on 2016/10/25 by Nick.Whiting Merging update to Google VR 1.01 SDK, which fixes multiple initialization errors #jira UE-37440, UE-37236 Change 3173606 on 2016/10/25 by Jamie.Dale Removed invalid assert We're already passed the collection to modify, so the assert isn't needed. #jira UE-37761 Change 3173604 on 2016/10/25 by Keli.Hlodversson Work around an issue where the SteamVR plugin will fail to initialize if SteamVR was not already running before launching. #jira UE-37623 Change 3173502 on 2016/10/25 by Matt.Kuhlenschmidt Fixed more cases of undoing causing selections to become out of sync #jira UE-37300 Change 3173475 on 2016/10/25 by Ori.Cohen Critical 4.14 physx fixes #JIRA UE-37085, UE-37114, UE-37116 Change 3173445 on 2016/10/25 by Robert.Manuszewski Disabling the Event Driven Loader in ShooterGame. Making sure the EDL can't be enabled in binary engine distributions. #jira UE-37394 Change 3173401 on 2016/10/25 by Matt.Kuhlenschmidt Guard against crashes when textures or materials are explicitly marked as pending kill and then passed to slate for rendering #jira UE-36261 Change 3173245 on 2016/10/25 by Allan.Bentham Remove incorrect assert. #jira UE-37699, UE-37707 Change 3173232 on 2016/10/25 by Jurre.deBaare Post Processing Settings do not update in Persona when the values are changed in Preview Scene Settings #fix make sure we also pick up vector4 fields #jira UE-37656 Change 3173183 on 2016/10/25 by Matthew.Griffin Added Shipping configs to BootstrapPackagedGame (Duplicating CL#3150210 from Main) Change 3173065 on 2016/10/25 by Dmitriy.Dyomin Fixed: Disabling 'Use Landscape Lightmap' option Skewing Procedural Foliage Instances #jira UE-37736 Change 3172929 on 2016/10/24 by Ryan.Vance #jira UE-37742 Adding SceneViewExtension hooks that are called right after init views completes. It might be advantageous to do the work we're currently doing in PreRenderViewFamily_RenderThread and PreRenderView_RenderThread after init views is called with the way SteamVR's running start is implemented. Change 3172915 on 2016/10/24 by Rolando.Caloca UE4.14 - Fix compile issues on CCT #jira UE-37722 Change 3172762 on 2016/10/24 by Brian.Karis #jira UE-37369 Change 3172742 on 2016/10/24 by Daniel.Lamb Fixed issue with file-> cook error when you haven't built the exe which you are trying to cook for. #jira UE-36796 #test Cook shootergame Change 3172690 on 2016/10/24 by Maciej.Mroz DynamicClass gives now, as componet-archetype, objects with non-exact name. Manually merged cl#3171563 #jira UE-37480 Change 3172663 on 2016/10/24 by Daniel.Lamb Stopped cooker from handling modification requests when they are PIE requests. #test PIE shootergame #jira UE-21572 Change 3172629 on 2016/10/24 by Mitchell.Wilson Reconnected some material functions to resolve warnings which caused characters to render with default materials, and resolving 'Top Material' warnings. Reimported SM_GodRay_Plane to resolve PhysX warning Rebuilt lighting for the level. #jira UE-37728 Change 3172523 on 2016/10/24 by Nick.Shin update physx cmakefiles and automation build scripts for release-414 stream (as per request) #jira UEFW-106 Add HTML5 support to PhysX CMake & automation scripts Change 3172515 on 2016/10/24 by Nick.Shin remove old emsdk (1.35.0) #jira UEPLAT-1324 Update HTML5 PhysX to CMake Change 3172511 on 2016/10/24 by Mark.Satterthwaite Don't set Metal resource option fields on texture descriptors when running on an OS that doesn't support them. #jira UE-37481 Change 3172461 on 2016/10/24 by Cody.Albert Added check for pointer validity to prevent crash in ShooterGame #jira UE-37433 Change 3172329 on 2016/10/24 by Peter.Sauerbrei fix for remote notification method misspelling #jira ue-37720 Change 3172322 on 2016/10/24 by Marc.Audy Fix unreferenced variable the brute force to unblock QA #jira UE-37718 Change 3172191 on 2016/10/24 by Mitchell.Wilson Clearing preivew meshes on some materials to resolve warnings. #jira UE-37713 Change 3172186 on 2016/10/24 by Matt.Kuhlenschmidt Fix non-editor compile error #jira UE-37695 Change 3172159 on 2016/10/24 by Dmitry.Rekman Update GitDependencies.exe (UE-37530). - Binary needs to be updated to support LINUX_MULTIARCH_ROOT variable. #jira UE-37530 Change 3172132 on 2016/10/24 by Keith.Judge Xbox One - Fix corrupted screenshots. Needed a GPU/CPU sync point, which legacy D3D11.x used to do for us, but now we have to do manually. Copied from Dev-Platform CL 3156872 #jira UE-37038 Change 3172131 on 2016/10/24 by Keith.Judge Xbox One - Disable engine analytics on XB1 shipping games, as per XRs. Verified http requests from devkit with Fiddler. Copied from CL 3153176 in Dev-Platform. #jira UE-36364 Change 3172106 on 2016/10/24 by Mitchell.Wilson Updated reference to a material in VehicleMenu.umap to resolve warning #jira UE-29748 Change 3172036 on 2016/10/24 by Steve.Robb TEnumAsByte can be switchably deprecated for enum classes, and is currently not deprecated (reverting a change in behavior). #jira UE-37706 Change 3172020 on 2016/10/24 by Marc.Audy Child Actor should be created at registration, not creation. Otherwise attachment hierarchies can not be set up and thus, world positions incorrect #jira UE-37615 Change 3171966 on 2016/10/24 by Dmitry.Rekman Linux: fix Setup.sh on Ubuntu 16.10 (UE-37621) #jira UE-37621 (Edigrating 3171266 from Dev-Platform to Release-4.14) Change 3171964 on 2016/10/24 by Dmitry.Rekman Linux: fix always rebuilding FixDeps (UE-37625). #jira UE-37625 (Edigrating 3153471 from Dev-Platform to Release-4.14) Change 3171957 on 2016/10/24 by Matt.Kuhlenschmidt Guard against property editor crash happening when focused is lost on an object which has been GC'd due to PIE running #jira UE-37636 Change 3171943 on 2016/10/24 by Matt.Kuhlenschmidt Added mesh simplifcation plugin picker to the project settings under Editor - Mesh Simplification The menu to pick simplification plugins also contains a link to find other plugins in the launcher marketplace. The launcher navigates to "/ue/marketplace/content-cat/assets/codeplugins" for now #jira UE-37695 Change 3171928 on 2016/10/24 by Max.Chen Sequencer: Revert CL#3162724. Fix time dilation in level sequence player because it's causing a regression. Will revisit the fix for UE-37277. #jira UE-37589 Change 3171924 on 2016/10/24 by James.Cobbett Test content 'preroll.abc'. Has empty frames at the start of animation. For alembic importer testing. #jira UE-29618 Change 3171867 on 2016/10/24 by Lina.Halper - Back out revision 2 from //UE4/Release-4.14/Engine/Source/Runtime/Engine/Private/Components/SkeletalMeshComponent.cpp - Empties override materials before setting preview mesh in animation editor #jira: UE-37610 #code review: Thomas.Sarkanen Change 3171789 on 2016/10/24 by Allan.Bentham Resolve depth on appropriate mobile devices when the view contains materials that read from the depth. #jira UE-35023 Change 3171776 on 2016/10/24 by Robert.Manuszewski Increasing the initial memory allocation size for FLargeMemoryWriter to reduce the number of allocations when saving or cooking #jira UE-37599 Change 3171728 on 2016/10/24 by Dmitriy.Dyomin Fix origin rebasing to work with precomputed lighting data stored in separate package #jira UE-37693 Change 3171634 on 2016/10/24 by Dmitriy.Dyomin Added commenets to 3171621 #jira UE-36449 Change 3171621 on 2016/10/23 by Dmitriy.Dyomin Fixed: Editor crash when compiling the character blueprint after a PIE session with World Composition enabled Actually disabled use of world composition with multiplayer PIE using separate processes #jira UE-36449 Change 3171424 on 2016/10/22 by Jack.Porter Remove unused exec command causing logspam #jira UE-37661 Change 3171259 on 2016/10/21 by Ryan.Vance Mobile multi-view update #jira UE-37603 Removed dependence on shader name for determining if we need to enable multi-view, now relies on the presence of gl_ViewID_OVR Worked around unsigned/signed integer driver issues. Some shader compilers were choking on the unsigned postfix Attempted to clean up some of the code duplication in MobileBasePassRendering.cpp Made a few design concessions which allows the feature to run on Mali devices in the wild right now: Allow the feature to be enabled with ES2 rather than just ES3.1. Mali drivers have a bug preventing shader io blocks and multi-view from working together Passing the view id from the vertex shader. Mali devices don't allow referencing gl_ViewID_OVR in a pixel shader Change 3171165 on 2016/10/21 by Peter.Sauerbrei revert out the memory changes for platform file cache for mobile #jira UE-36835 Change 3171112 on 2016/10/21 by Matt.Barnes Updating TM-Material_BP_Nodes to facilitate test UEQATC-2969. #jira UEQATC-2969 Change 3171111 on 2016/10/21 by Mike.Beach Mirroring CL 3171084 form Dev-BP Guarding against a unrepro'able top-10 crash in SGraphPin. Making sure we're not operating on a null/pending-kill/transient pin. #jira UE-37642 Change 3170980 on 2016/10/21 by patrickr.donovan Motion controller test content update - further updates to combat thumbstick noise. #jira UE-29618 Change 3170965 on 2016/10/21 by Mitchell.Wilson Moved panner in M_Frame3_BG material to Custom UV0 to resolve issue with material rendering white on tvOS #jira UE-37105 Change 3170905 on 2016/10/21 by Marc.Audy Fix AActor::Serialize crash if a null in the owned components array #jira UE-37641 Change 3170838 on 2016/10/21 by Ben.Woodhouse Integrate crash fix from main CL3162008 Fix for crash in GPU profiler. This was caused by the RHIThread getting too far behind the renderthread. This change adds a fence wait on the renderthread in RHIEndDrawingViewport to ensure that the renderthread is never more than a frame ahead. #jira UE-37216 Change 3170815 on 2016/10/21 by Jamie.Dale Fixed a potential race-condition in FTextRenderComponentMIDCache, and updated it to detect "stale" MIDs FMIDData was shared between the game and render threads, but used non-thread-safe shared pointers. This also marks MIDs as "stale" if the number of MIDs no longer matches the number of pages in the font (which may happen if the font is edited). These "stale" MIDs are kept as a weak pointer in a separate array so that we can still keep the MID object alive as long as something is still using it (as it may still be used by a FTextRenderSceneProxy for a short while). This array of weak pointers is purged of unreferenced instances during the normal cache purge cycle. #jira UE-37519 Change 3170784 on 2016/10/21 by Mitchell.Wilson Changing a material in TM-Reflections level #jira UE-29618 Change 3170668 on 2016/10/21 by Mitchell.Wilson Updated defaulteditor.ini to resolve cook failure for UBlueprint. #jira UE-37648 Change 3170595 on 2016/10/21 by Chris.Wood Added "Vanilla" Editor detection and reporting it to analytics, MTBF and Crash Reporter. [UE-37132] - Detect "Vanilla" Editor and report it to MTBF analytics and Crash Reporter #jira UE-37132 Change 3170395 on 2016/10/21 by Robert.Manuszewski UBT will now respect -remoteini command line param when looking for ini files for build settings. Fixes a crash when launching BP-only project from the Editor with EDL enabled. #jira UE-37617 Change 3170367 on 2016/10/21 by Allan.Bentham Prevent overflow of bright pixels during DoF calc. #jira UE-31755 Change 3170363 on 2016/10/21 by Robert.Manuszewski Fixing crashes when cancelling async loading #jira UE-37634 Change 3170362 on 2016/10/21 by Robert.Manuszewski Fixing MallocBinned2 crashes on 32-bit platforms. #jira UE-37326 Change 3170280 on 2016/10/21 by Jack.Porter Fix for landscape not rendering in Player Collision view mode after toggling G. #jira UE-37576 Change 3170202 on 2016/10/21 by Dmitriy.Dyomin Fixed: CustomDepth is incorrect when used in Custom PostProcess after Tonemapping #jira UE-37628 Change 3170160 on 2016/10/20 by Aaron.McLeran #jira UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features Implementing CL 3169422 in 4.14 Change 3170029 on 2016/10/20 by Aaron.McLeran #jira UE-37004 #jira UE-37005 Fixing stat soundwaves Implementing 3154264 from Dev-Framework Change 3170024 on 2016/10/20 by Aaron.McLeran #jira UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions Implementing the CL from Dev-Framework Change 3169869 on 2016/10/20 by Arne.Schober duplicated: CL 3169845 #jira UE-35937 Change 3169810 on 2016/10/20 by Steve.Cano Moving change from CL 3169642 to 4.14 - fix a library issue that was causing Kindle Fire 1st edition to crash when trying to run QA game, may be causing issues on other devices as well #ue4 #android #jira UE-22440 Change 3169635 on 2016/10/20 by Mike.Beach Mirroring CL 3169443 from Dev-BP Deprecating the [EditoronlyBP] config settings (which are super old, and support legacy functionality, allowing users to export editor-only UBlueprint objects on cook). This is in support of the new event-driven loader (EDL), which is incompatible with these exports. We will be removing support for these settings promptly in 4.15 (hence the choice to deprecate them for 4.14). #jira UE-37605 Change 3169618 on 2016/10/20 by Mitchell.Wilson rebuilt lighting for all levels in Content Examples #jira UE-37570 Change 3169447 on 2016/10/20 by Peter.Sauerbrei fix for double quotes causing arguments to not be sent correctly to rsync #jira UE-37018 Change 3169362 on 2016/10/20 by tim.gautier Updated TM-UMG Level Blueprint - mouse-clicks outside of UMG assets no longer take focus from the set Display Widget #jira abc-123 Change 3169244 on 2016/10/20 by Chris.Babcock Update to new CodeWorks for Android 1R5 #jira UE-37554 #ue4 #android Change 3169240 on 2016/10/20 by Jon.Nabozny #rn Fixup GameModeClassAliases in Engine.ini files. These must be prefixed with either /Game/ or /Script/ otherwise the asset may fail to resolve and an empty name will be used instead (and cause weird behavior). #jira UE-37488 Change 3169155 on 2016/10/20 by Peter.Sauerbrei fix for incorrect characters in bundle id when project has underscores in the name #jira UE-36436 Change 3169127 on 2016/10/20 by Allan.Bentham Fix android vulkan compile error with dev builds #jira abc-123 Change 3169058 on 2016/10/20 by Allan.Bentham Flush command buffer during init to fix vulkan crash when rendering thread is enabled. Fix FDeferredDeletionQueue's resource handle storage on 32 bit platforms. #jira UE-36452 Change 3169049 on 2016/10/20 by Peter.Sauerbrei fix for minimum ios version in base ini file #jira UE-37034 Change 3168910 on 2016/10/20 by Jack.Porter Fix occasional race condition crash in FTcpMessageTransportConnection on editor shutdown #jira UE-36944 Change 3168906 on 2016/10/20 by Dmitriy.Dyomin Fixed: Black rendering on Galaxy S4 PowerVR #jira UE-37567 Change 3168858 on 2016/10/20 by Richard.TalbotWatkin Made BSP rendering more robust so that out-of-range array accesses trigger an 'ensure' rather than a crash (with a view to identifying the cause of this issue). Also fixed non-editor builds. #jira UE-37267 - [CrashReport] UE4Editor_Engine!FModelSceneProxy::GetDynamicMeshElements() [modelrender.cpp:322] Change 3168826 on 2016/10/20 by Richard.TalbotWatkin Duplicated from //UE4/Dev-Editor, CL 3156473 Attempt to make geometry render / rebuild more robust in the hope of catching UE-36265. #jira UE-36265 - [CrashReport] UE4Editor_Engine!FModelSceneProxy::HasSelectedSurfaces() [modelrender.cpp:538] Change 3168335 on 2016/10/19 by Michael.Trepka Restored previous version of FMacWindow::IsPointInWindow function to solve issues with window dragging. #jira UE-37418 Change 3168307 on 2016/10/19 by Rolando.Caloca UE4.14 - Integrate changes from 3051720 and 3057522 [RENDERING] [!] Revert fix in GPU skin cache (original CL 2722034) - Waiting on shader compilation with the GPU skin update will destroy/recreate render state, causing a crash in the GPU skin cache. #jira UE-37545 Change 3168201 on 2016/10/19 by Peter.Sauerbrei fix for urls with queries not working correctly #jira UE-35090 Change 3168200 on 2016/10/19 by Mitchell.Wilson Re-saved multiple cloth assets to resolve building adjacency information warnings. Replaced deprecated SetText and GrabComponent blueprint nodes with new SetText and GrabComponentAtLocation. Re-saved multiple assets to resolve empty engine version warnings. #jira UE-37537 Change 3168174 on 2016/10/19 by Alan.Noon #jira UE-37534 deleted unnecessary files from Photorealistic Character project Change 3168160 on 2016/10/19 by Arne.Schober duplicated: fixes for velocity render pass CL 3166370 CL 3166799 #jira UE-37362 Change 3168136 on 2016/10/19 by Alan.Noon #jira UE-37534 Initial add of Photorealistic Character Sample project Change 3168127 on 2016/10/19 by Peter.Sauerbrei fix for IOS_7 not being found #jira UE-37034 Change 3167886 on 2016/10/19 by patrickr.donovan #jira UE-37242 TLDR; Test content updates. Bug entered due to finicky hardware returning noise values that weren't accounted for in test contet. Fortified test content against this edge case, no code change necessary. Change 3167882 on 2016/10/19 by samuel.proctor Updating asset for Profiler Heatmap testing #jira UE-29618 Change 3167868 on 2016/10/19 by Dmitry.Rekman Linux: disable XGE on Windows (UE-37446). - XGE does not seem to handle new clang 3.9.0 toolchain well, with very reproducible crashes. Also fix build breakage with clang 3.8.1. - always_inline was still applied to debug builds and as such was ignored. #jira UE-37446 (Edigrating CL 3166330, 3166456 from Dev-Platform to Release-4.14) Change 3167832 on 2016/10/19 by Mitchell.Wilson Reconnected 'TopMaterial' in multiple materials to resolve warnings. Rebuilt lighting and saved levels. #jira UE-37529 UE-37535 Change 3167688 on 2016/10/19 by Mitchell.Wilson Removing preview mesh from multiple materials to resolve warnings. Rebuilt lighting and saved all levels. #jira UE-29678 UE-37526 Change 3167616 on 2016/10/19 by Marc.Audy Fix reversed logic checking for an Actor after a cast was supposed to have failed, broken in CL 2695656. #jira UE-37517 Change 3167585 on 2016/10/19 by Jamie.Dale Re-enabled all-cultures upload to OneSky so we prime translations correctly #jira UE-37518 Change 3167579 on 2016/10/19 by Jamie.Dale Fixed text render component regression with custom MIDs #jira UE-37305 Change 3167501 on 2016/10/19 by Matt.Kuhlenschmidt Fixed realtime rendering in editor viewport being disabled when simulating in editor #jira UE-37466 Change 3167498 on 2016/10/19 by Mitchell.Wilson Re-saving multiple blueprints with nodeguid warnings. Cleared preview mesh for materials with string asset reference warnings. Rebuilt lighting and added _BuildData to resolve lighting rebuild warnings. #jira UE-30840 Change 3167492 on 2016/10/19 by Matt.Kuhlenschmidt Fix for disappearing menus in lastest windows 10 build #jira UE-36752 Change 3167311 on 2016/10/19 by Mieszko.Zielinski Fixed EQS template cache issues with multiple query run modes #UE4 #jira UE-37496 Change 3167206 on 2016/10/19 by Matthew.Griffin Moved Github promotion earlier in build script and added 'After' dependencies so that we can guarantee the order of the nightly build/prevent unimportant jobs from running before binary build is completed Change 3167205 on 2016/10/19 by Matthew.Griffin Changed CommandUtils.UnzipFiles to use system unzip tool when running on mono, as there has been issues with Ionic not being able to decompress those created by the zip tool Change 3167010 on 2016/10/19 by Dmitriy.Dyomin Fix for LevelStreaming getting stuck, and World->PersistentLevel null assert Contributed by Funcom: https://udn.unrealengine.com/questions/312900/fix-for-levelstreaming-getting-stuck-and-world-per.html #jira UE-36397 [CL 3189774 by Matthew Griffin in Main branch]
2016-11-08 02:45:19 -05:00
AppendCString(GlslCode, "#define gl_ViewID_OVR 0\n");
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3145687) #lockdown Nick.Penwarden #rb Merge ========================== MAJOR FEATURES + CHANGES ========================== Change 3094167 on 2016/08/18 by Jeff.Fisher UEVR-97 Morpheus HMD tracking needs to wait until HMD is fully tracked. -Morpheus CALIBRATING/NOT_TRACKED tracking state hmd orientation update disabled and delegates added to present instructions to the user. This behavior is controlled by morpheus ini setting bDisableHMDOrientationUntilHMDHasBeenTracked, but defaulted to true to avoid subtly bad user experiences. #review-3094106 @chad.taylor #jira UEVR-97 Change 3104799 on 2016/08/29 by Jeff.Fisher UEVR-178 Morpheus HMD Black crescents -Switched reprojection frame time for 60/120 mode from 120hz to 60hz so we much better predict where the hmd will be pointing when the frame we are about to render is actually displayed, and are run off the edge of it less often and less severely. This makes the black crescent artifacts only just visible during very fast head turning. The kWrapModeMirror change, which will be submitted separately, makes the left and right crescents invisible to me. -Renamed the functions for setting the prediction info in the PS4Tracker. -Added render frame parameters to sony reprojection functions, these can help with debugging reprojection. -Added commented out sce call to get the reprojection debug data. Not allowed to submit an executable that calls it, but its nice to at least know where one can put it. May improve this later. -Wrapped PS4Tracker->Synchronize call in a check that the tracker handle is valid, because I managed to get it called when it wasn't (probably during hmd power off testing, but I don't remember now). It should be fine to not do it if the tracker is not functioning. #review-3104780 chad.taylor #jira UEVR-178 Change 3108423 on 2016/08/31 by Jeff.Fisher Morpheus Config Improvements. -UEVR-138 Morpheus HMD reprojection wrap mode config setting -Can now switch between wrap mode Mirror and ClampToBorder. Mirror is the default. -Made bDisableHMDOrientationUntilHMDHasBeenTracked editable in UE4Editor project settings. -Using generic project setting for bStartInVR, removed the morpheus specific one. #jira UEVR-138 #review-3106999 @nick.whiting Change 3111231 on 2016/09/01 by Jeff.Fisher Fixed bStartInVR ini setting. -Initial implementation worked via a generic EnableStereo call, which worked, but happened after the hmd setup dialog, which is not what I wanted. -Also fixed a tracking frame mismatch assert that hit when I powered the hmd off once, causing it to lose tracking. Its ok that it doesn't update in that circumstance. #review-3111211 @ryan.vance Change 3115196 on 2016/09/06 by Keli.Hlodversson #jira UEVR-128 Map move controller Select button to Invalid, as it is always handled by the system Change 3116425 on 2016/09/07 by Chad.Taylor PSVR: stereo layers implementation Change 3116593 on 2016/09/07 by Jeff.Fisher UEVR-126 Morpheus HMD connect dialog cancel reactions -VR only apps can't allow the player to cancel out of the hmd setup dialog, so lets just pop the dialog up again (sony were ok with a licencee doing this) if an ini setting says to do that. -VR/2D apps might want to switch to 2d if the player cancels out of the hmd setup dialog, so there is an ini setting for that. -A delegate only implementation is also provided for apps that want to do something else. This leaves the game rendering in VR mode, and fires the delegate. -Refactored to better separate successful HMD acquisition from stereo rendering. This was necessary to support the delegate only option on startup. If you start in vr mode with your hmd off and cancel the dialog stereo rendering now starts with default values for the hmd hardware stats (as read from my pvt) instead of crashing trying to use uninitialized data. When an hmd is connected its values will be read. -Refactored to ensure reprojection starts immediately when we call StartReprojection. #jira UEVR-126 #review-3116221 Change 3116754 on 2016/09/07 by Keli.Hlodversson bPixelDensityAdaptive is a bool and not a float property Change 3117692 on 2016/09/08 by Jeff.Fisher UEVR-135 Morpheus HMD recent feature error reporting UEVR-173 2DVR flexibility (UTexture) -Error log for sceHmdReprojectionSetOutputMinColor failure. -Made the parameter for 2dVR a UTexture* instead of a UTexture2D*, so it can be a rendertarget, etc. -Added error logs for missing texture, invalid texture, wrong texture format to 2DVR. #jira UEVR-135 #jira UEVR-173 #review-3116955 @keli.hloedversson Change 3117990 on 2016/09/08 by Jeff.Fisher UEVR-127 Morpheus HMD removal reaction -Added VRHeadsetPutOnHead and VRHeadsetRemovedFromHead delegates, and implemented them for Morpheus. #jira UEVR-127 #review-3117968 @keli.hlodversson Change 3120198 on 2016/09/09 by Jeff.Fisher MorpheusReprojector frame complete wait error log -Now log a warning if the sceKernalWaitEqueue returns an error. It not a problem if this happens rarely, but something is very broken if it starts happening continuously. Change 3121754 on 2016/09/12 by Keli.Hlodversson #jira UE-21878 - Also emit VR initialization analytics events in the editor. Change 3122311 on 2016/09/12 by Nick.Whiting Merging fix for Adreno devices rendering black from 4.13.1 Change 3123057 on 2016/09/13 by Keli.Hlodversson #jira UE-30097 Use the current value of r.ScreenPercentage on Occulus Rift if it's explicitly set. * If the SetBy part of the flags for the console var is SetBy_Constructor, then ignore the value. * If it's SetBy_Scalability, then ignore it if it equals 100 * Else, call SetScreenPercentage using the current value The obsolete HMD SCREENPERCENTAGE console command is still available and will override the setting until r.ScreenPercentage is modified the next time. Change 3123200 on 2016/09/13 by Chad.Taylor PS4 Stereo Layer double buffering. Since the overlays are reprojected at 120hz but rendered at 60hz we need to render to a separate buffer than the one being used by reprojection. Change 3125845 on 2016/09/14 by Keli.Hlodversson #jira UE-33996 Add hmd=<name> command line option to allow overriding which HMD module is used. Renamed GetModulePriorityKeyName to simply GetModuleKeyName, as this name is now also used to match against the command line options. Change 3127293 on 2016/09/15 by Jeff.Fisher UEVR-225 Morpheus HMD top and bottom black crescents -The hidden and visible area meshes for morpheus were too restrictive. Nudged them out a bit, no black crescents at the top and bottom of the screen. We are rendering a few more pixels now though. #review-3127145 @ryan.vance #jira UEVR-225 Change 3130635 on 2016/09/19 by Jeff.Fisher UEVR-226 Morpheus HMD mirrored fill wrong on outer edges -The setting was never being used, leaving the wrap mode at 0 aka kWrapModeWrap. -Refactored how the setting is applied so it works, and is less convoluted. #jira UEVR-226 #review-3129403 Change 3131615 on 2016/09/19 by Keli.Hlodversson #jira UE-29341. Update Chaperone bounds when SteamVR tells us they have changed Change 3136527 on 2016/09/22 by Keli.Hlodversson Don't depend on the current state of the VR subsystem when exiting PIE mode to decide whether the main window should be restored. Instead always restore it if it was minimized at the start. Change 3136652 on 2016/09/22 by Keli.Hlodversson Allow shutting down Steam VR subsystem without shutting down the Steam VR plugin completely in response to quitting from the SteamVR overlay. Enabling stereo rendering again will reinitialize SteamVR. This is useful when using PIE in VR mode as it allows entereing it again without restarting the editor. Also fixes crashes by first disabinge stereo rendering a short while before shutting down the VR subsystem. #jira UE-35940 Change 3138901 on 2016/09/23 by Ryan.Vance Merging 3138521 using OdinToDevVR to bring over temporary forward lighting ISR changes for 4.14 Change 3141614 on 2016/09/27 by Keli.Hlodversson Implement GetNumOfTrackingSensors and GetTrackingSensorProperties on SteamVR. #jira UE-32994 Change 3141948 on 2016/09/27 by Jeff.Fisher UEVR-242 Is AddControllerYawInput not allowed when morpheus is enabled? -Indeed it did not work. Looks like morpheus would not accumulate the yaw, so it would be reset every frame. I made the implementation of ApplyHmdRotation very similar to the one used for occulus (also similar to other platforms) to fix this. #jira UEVR-242 #review-3141933 keli.hlodversson Change 3143484 on 2016/09/28 by Nick.Whiting Integrating Oculus 1.8 SDK support, includes support for cylinder and cubemap stereo layers Change 3143517 on 2016/09/28 by Chad.Taylor Merging PS4Tracker fixes from Release-4.13 into Dev-VR Change 3143805 on 2016/09/28 by Keli.Hlodversson #jira UE-36478 Workaround to make world to meters scale apply correctly to Occulus controllers while running in PIE Change 3143943 on 2016/09/28 by Nick.Whiting Merging latest drop from OSVR Change 3144221 on 2016/09/28 by Keli.Hlodversson Implement GetTrackingSensorProperties on PS4 #jira UE-32994 Change 3144352 on 2016/09/28 by Ryan.Vance Initial implementation of mobile multi-view. This is non-functioning and requires a lot more work, but enough of the framework exists to make the 4.14 branch for an experimental release. Change 3144585 on 2016/09/29 by Jeff.Fisher UEVR-14 PSVR Support for 90Hz to 90Hz, and 120Hz to 120Hz -Enum setting added for the three frame sequences. -90Hz mode is trying to run camera updates at 90hz, but they can only run at 60 so every third one fails. This works, but its dubious. -Feature marked as experimental for now because of that 90hz tracking issue, and the lack of testing. -Defaulting to 60/120. #jira UEVR-14 #review-3143486 chad.taylor nick.whiting Change 3145263 on 2016/09/29 by Nick.Whiting Fix for constructor initialization order in StereoLayerComponent, which threw a warning on Clang Change 3145536 on 2016/09/29 by Nick.Whiting Fixes for project files to prevent mystery pop up from CAPI Change 3145663 on 2016/09/29 by Keli.Hlodversson PSVR: Make sure the camera orientation returned from GetTrackingSensorProperties points in the right direction. Change 3145670 on 2016/09/29 by Keli.Hlodversson For some reason the orientation of the Oculus tracking sensor is reported as pointing backwards. This flips it around to face front Change 3145687 on 2016/09/29 by Chad.Taylor VR splash screen support [CL 3146243 by Nick Whiting in Main branch]
2016-09-30 01:16:13 -04:00
}
}
// Only desktop with separable shader platform can use GL_ARB_separate_shader_objects for reduced shader compile/link hitches
// however ES3.1 relies on layout(location=) support
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
bool const bNeedsBindLocation = OpenGLShaderPlatformNeedsBindLocation(Capabilities.MaxRHIShaderPlatform) && !bES31;
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
if (OpenGLShaderPlatformSeparable(Capabilities.MaxRHIShaderPlatform) || !bNeedsBindLocation)
{
// Move version tag & extensions before beginning all other operations
MoveHashLines(GlslCode, GlslCodeOriginal);
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
// OpenGL SM5 shader platforms require location declarations for the layout, but don't necessarily use SSOs
if (Capabilities.bSupportsSeparateShaderObjects || !bNeedsBindLocation)
{
if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_Desktop)
{
AppendCString(GlslCode, "#extension GL_ARB_separate_shader_objects : enable\n");
AppendCString(GlslCode, "#define INTERFACE_LOCATION(Pos) layout(location=Pos) \n");
AppendCString(GlslCode, "#define INTERFACE_BLOCK(Pos, Interp, Modifiers, Semantic, PreType, PostType) layout(location=Pos) Interp Modifiers struct { PreType PostType; }\n");
}
else
{
AppendCString(GlslCode, "#define INTERFACE_LOCATION(Pos) layout(location=Pos) \n");
AppendCString(GlslCode, "#define INTERFACE_BLOCK(Pos, Interp, Modifiers, Semantic, PreType, PostType) layout(location=Pos) Modifiers Semantic { PreType PostType; }\n");
}
}
else
{
AppendCString(GlslCode, "#define INTERFACE_LOCATION(Pos) \n");
AppendCString(GlslCode, "#define INTERFACE_BLOCK(Pos, Interp, Modifiers, Semantic, PreType, PostType) Modifiers Semantic { Interp PreType PostType; }\n");
}
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3145687) #lockdown Nick.Penwarden #rb Merge ========================== MAJOR FEATURES + CHANGES ========================== Change 3094167 on 2016/08/18 by Jeff.Fisher UEVR-97 Morpheus HMD tracking needs to wait until HMD is fully tracked. -Morpheus CALIBRATING/NOT_TRACKED tracking state hmd orientation update disabled and delegates added to present instructions to the user. This behavior is controlled by morpheus ini setting bDisableHMDOrientationUntilHMDHasBeenTracked, but defaulted to true to avoid subtly bad user experiences. #review-3094106 @chad.taylor #jira UEVR-97 Change 3104799 on 2016/08/29 by Jeff.Fisher UEVR-178 Morpheus HMD Black crescents -Switched reprojection frame time for 60/120 mode from 120hz to 60hz so we much better predict where the hmd will be pointing when the frame we are about to render is actually displayed, and are run off the edge of it less often and less severely. This makes the black crescent artifacts only just visible during very fast head turning. The kWrapModeMirror change, which will be submitted separately, makes the left and right crescents invisible to me. -Renamed the functions for setting the prediction info in the PS4Tracker. -Added render frame parameters to sony reprojection functions, these can help with debugging reprojection. -Added commented out sce call to get the reprojection debug data. Not allowed to submit an executable that calls it, but its nice to at least know where one can put it. May improve this later. -Wrapped PS4Tracker->Synchronize call in a check that the tracker handle is valid, because I managed to get it called when it wasn't (probably during hmd power off testing, but I don't remember now). It should be fine to not do it if the tracker is not functioning. #review-3104780 chad.taylor #jira UEVR-178 Change 3108423 on 2016/08/31 by Jeff.Fisher Morpheus Config Improvements. -UEVR-138 Morpheus HMD reprojection wrap mode config setting -Can now switch between wrap mode Mirror and ClampToBorder. Mirror is the default. -Made bDisableHMDOrientationUntilHMDHasBeenTracked editable in UE4Editor project settings. -Using generic project setting for bStartInVR, removed the morpheus specific one. #jira UEVR-138 #review-3106999 @nick.whiting Change 3111231 on 2016/09/01 by Jeff.Fisher Fixed bStartInVR ini setting. -Initial implementation worked via a generic EnableStereo call, which worked, but happened after the hmd setup dialog, which is not what I wanted. -Also fixed a tracking frame mismatch assert that hit when I powered the hmd off once, causing it to lose tracking. Its ok that it doesn't update in that circumstance. #review-3111211 @ryan.vance Change 3115196 on 2016/09/06 by Keli.Hlodversson #jira UEVR-128 Map move controller Select button to Invalid, as it is always handled by the system Change 3116425 on 2016/09/07 by Chad.Taylor PSVR: stereo layers implementation Change 3116593 on 2016/09/07 by Jeff.Fisher UEVR-126 Morpheus HMD connect dialog cancel reactions -VR only apps can't allow the player to cancel out of the hmd setup dialog, so lets just pop the dialog up again (sony were ok with a licencee doing this) if an ini setting says to do that. -VR/2D apps might want to switch to 2d if the player cancels out of the hmd setup dialog, so there is an ini setting for that. -A delegate only implementation is also provided for apps that want to do something else. This leaves the game rendering in VR mode, and fires the delegate. -Refactored to better separate successful HMD acquisition from stereo rendering. This was necessary to support the delegate only option on startup. If you start in vr mode with your hmd off and cancel the dialog stereo rendering now starts with default values for the hmd hardware stats (as read from my pvt) instead of crashing trying to use uninitialized data. When an hmd is connected its values will be read. -Refactored to ensure reprojection starts immediately when we call StartReprojection. #jira UEVR-126 #review-3116221 Change 3116754 on 2016/09/07 by Keli.Hlodversson bPixelDensityAdaptive is a bool and not a float property Change 3117692 on 2016/09/08 by Jeff.Fisher UEVR-135 Morpheus HMD recent feature error reporting UEVR-173 2DVR flexibility (UTexture) -Error log for sceHmdReprojectionSetOutputMinColor failure. -Made the parameter for 2dVR a UTexture* instead of a UTexture2D*, so it can be a rendertarget, etc. -Added error logs for missing texture, invalid texture, wrong texture format to 2DVR. #jira UEVR-135 #jira UEVR-173 #review-3116955 @keli.hloedversson Change 3117990 on 2016/09/08 by Jeff.Fisher UEVR-127 Morpheus HMD removal reaction -Added VRHeadsetPutOnHead and VRHeadsetRemovedFromHead delegates, and implemented them for Morpheus. #jira UEVR-127 #review-3117968 @keli.hlodversson Change 3120198 on 2016/09/09 by Jeff.Fisher MorpheusReprojector frame complete wait error log -Now log a warning if the sceKernalWaitEqueue returns an error. It not a problem if this happens rarely, but something is very broken if it starts happening continuously. Change 3121754 on 2016/09/12 by Keli.Hlodversson #jira UE-21878 - Also emit VR initialization analytics events in the editor. Change 3122311 on 2016/09/12 by Nick.Whiting Merging fix for Adreno devices rendering black from 4.13.1 Change 3123057 on 2016/09/13 by Keli.Hlodversson #jira UE-30097 Use the current value of r.ScreenPercentage on Occulus Rift if it's explicitly set. * If the SetBy part of the flags for the console var is SetBy_Constructor, then ignore the value. * If it's SetBy_Scalability, then ignore it if it equals 100 * Else, call SetScreenPercentage using the current value The obsolete HMD SCREENPERCENTAGE console command is still available and will override the setting until r.ScreenPercentage is modified the next time. Change 3123200 on 2016/09/13 by Chad.Taylor PS4 Stereo Layer double buffering. Since the overlays are reprojected at 120hz but rendered at 60hz we need to render to a separate buffer than the one being used by reprojection. Change 3125845 on 2016/09/14 by Keli.Hlodversson #jira UE-33996 Add hmd=<name> command line option to allow overriding which HMD module is used. Renamed GetModulePriorityKeyName to simply GetModuleKeyName, as this name is now also used to match against the command line options. Change 3127293 on 2016/09/15 by Jeff.Fisher UEVR-225 Morpheus HMD top and bottom black crescents -The hidden and visible area meshes for morpheus were too restrictive. Nudged them out a bit, no black crescents at the top and bottom of the screen. We are rendering a few more pixels now though. #review-3127145 @ryan.vance #jira UEVR-225 Change 3130635 on 2016/09/19 by Jeff.Fisher UEVR-226 Morpheus HMD mirrored fill wrong on outer edges -The setting was never being used, leaving the wrap mode at 0 aka kWrapModeWrap. -Refactored how the setting is applied so it works, and is less convoluted. #jira UEVR-226 #review-3129403 Change 3131615 on 2016/09/19 by Keli.Hlodversson #jira UE-29341. Update Chaperone bounds when SteamVR tells us they have changed Change 3136527 on 2016/09/22 by Keli.Hlodversson Don't depend on the current state of the VR subsystem when exiting PIE mode to decide whether the main window should be restored. Instead always restore it if it was minimized at the start. Change 3136652 on 2016/09/22 by Keli.Hlodversson Allow shutting down Steam VR subsystem without shutting down the Steam VR plugin completely in response to quitting from the SteamVR overlay. Enabling stereo rendering again will reinitialize SteamVR. This is useful when using PIE in VR mode as it allows entereing it again without restarting the editor. Also fixes crashes by first disabinge stereo rendering a short while before shutting down the VR subsystem. #jira UE-35940 Change 3138901 on 2016/09/23 by Ryan.Vance Merging 3138521 using OdinToDevVR to bring over temporary forward lighting ISR changes for 4.14 Change 3141614 on 2016/09/27 by Keli.Hlodversson Implement GetNumOfTrackingSensors and GetTrackingSensorProperties on SteamVR. #jira UE-32994 Change 3141948 on 2016/09/27 by Jeff.Fisher UEVR-242 Is AddControllerYawInput not allowed when morpheus is enabled? -Indeed it did not work. Looks like morpheus would not accumulate the yaw, so it would be reset every frame. I made the implementation of ApplyHmdRotation very similar to the one used for occulus (also similar to other platforms) to fix this. #jira UEVR-242 #review-3141933 keli.hlodversson Change 3143484 on 2016/09/28 by Nick.Whiting Integrating Oculus 1.8 SDK support, includes support for cylinder and cubemap stereo layers Change 3143517 on 2016/09/28 by Chad.Taylor Merging PS4Tracker fixes from Release-4.13 into Dev-VR Change 3143805 on 2016/09/28 by Keli.Hlodversson #jira UE-36478 Workaround to make world to meters scale apply correctly to Occulus controllers while running in PIE Change 3143943 on 2016/09/28 by Nick.Whiting Merging latest drop from OSVR Change 3144221 on 2016/09/28 by Keli.Hlodversson Implement GetTrackingSensorProperties on PS4 #jira UE-32994 Change 3144352 on 2016/09/28 by Ryan.Vance Initial implementation of mobile multi-view. This is non-functioning and requires a lot more work, but enough of the framework exists to make the 4.14 branch for an experimental release. Change 3144585 on 2016/09/29 by Jeff.Fisher UEVR-14 PSVR Support for 90Hz to 90Hz, and 120Hz to 120Hz -Enum setting added for the three frame sequences. -90Hz mode is trying to run camera updates at 90hz, but they can only run at 60 so every third one fails. This works, but its dubious. -Feature marked as experimental for now because of that 90hz tracking issue, and the lack of testing. -Defaulting to 60/120. #jira UEVR-14 #review-3143486 chad.taylor nick.whiting Change 3145263 on 2016/09/29 by Nick.Whiting Fix for constructor initialization order in StereoLayerComponent, which threw a warning on Clang Change 3145536 on 2016/09/29 by Nick.Whiting Fixes for project files to prevent mystery pop up from CAPI Change 3145663 on 2016/09/29 by Keli.Hlodversson PSVR: Make sure the camera orientation returned from GetTrackingSensorProperties points in the right direction. Change 3145670 on 2016/09/29 by Keli.Hlodversson For some reason the orientation of the Oculus tracking sensor is reported as pointing backwards. This flips it around to face front Change 3145687 on 2016/09/29 by Chad.Taylor VR splash screen support [CL 3146243 by Nick Whiting in Main branch]
2016-09-30 01:16:13 -04:00
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
if (ShaderName.IsEmpty() == false)
{
AppendCString(GlslCode, "// ");
AppendCString(GlslCode, TCHAR_TO_ANSI(ShaderName.GetCharArray().GetData()));
AppendCString(GlslCode, "\n");
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3145687) #lockdown Nick.Penwarden #rb Merge ========================== MAJOR FEATURES + CHANGES ========================== Change 3094167 on 2016/08/18 by Jeff.Fisher UEVR-97 Morpheus HMD tracking needs to wait until HMD is fully tracked. -Morpheus CALIBRATING/NOT_TRACKED tracking state hmd orientation update disabled and delegates added to present instructions to the user. This behavior is controlled by morpheus ini setting bDisableHMDOrientationUntilHMDHasBeenTracked, but defaulted to true to avoid subtly bad user experiences. #review-3094106 @chad.taylor #jira UEVR-97 Change 3104799 on 2016/08/29 by Jeff.Fisher UEVR-178 Morpheus HMD Black crescents -Switched reprojection frame time for 60/120 mode from 120hz to 60hz so we much better predict where the hmd will be pointing when the frame we are about to render is actually displayed, and are run off the edge of it less often and less severely. This makes the black crescent artifacts only just visible during very fast head turning. The kWrapModeMirror change, which will be submitted separately, makes the left and right crescents invisible to me. -Renamed the functions for setting the prediction info in the PS4Tracker. -Added render frame parameters to sony reprojection functions, these can help with debugging reprojection. -Added commented out sce call to get the reprojection debug data. Not allowed to submit an executable that calls it, but its nice to at least know where one can put it. May improve this later. -Wrapped PS4Tracker->Synchronize call in a check that the tracker handle is valid, because I managed to get it called when it wasn't (probably during hmd power off testing, but I don't remember now). It should be fine to not do it if the tracker is not functioning. #review-3104780 chad.taylor #jira UEVR-178 Change 3108423 on 2016/08/31 by Jeff.Fisher Morpheus Config Improvements. -UEVR-138 Morpheus HMD reprojection wrap mode config setting -Can now switch between wrap mode Mirror and ClampToBorder. Mirror is the default. -Made bDisableHMDOrientationUntilHMDHasBeenTracked editable in UE4Editor project settings. -Using generic project setting for bStartInVR, removed the morpheus specific one. #jira UEVR-138 #review-3106999 @nick.whiting Change 3111231 on 2016/09/01 by Jeff.Fisher Fixed bStartInVR ini setting. -Initial implementation worked via a generic EnableStereo call, which worked, but happened after the hmd setup dialog, which is not what I wanted. -Also fixed a tracking frame mismatch assert that hit when I powered the hmd off once, causing it to lose tracking. Its ok that it doesn't update in that circumstance. #review-3111211 @ryan.vance Change 3115196 on 2016/09/06 by Keli.Hlodversson #jira UEVR-128 Map move controller Select button to Invalid, as it is always handled by the system Change 3116425 on 2016/09/07 by Chad.Taylor PSVR: stereo layers implementation Change 3116593 on 2016/09/07 by Jeff.Fisher UEVR-126 Morpheus HMD connect dialog cancel reactions -VR only apps can't allow the player to cancel out of the hmd setup dialog, so lets just pop the dialog up again (sony were ok with a licencee doing this) if an ini setting says to do that. -VR/2D apps might want to switch to 2d if the player cancels out of the hmd setup dialog, so there is an ini setting for that. -A delegate only implementation is also provided for apps that want to do something else. This leaves the game rendering in VR mode, and fires the delegate. -Refactored to better separate successful HMD acquisition from stereo rendering. This was necessary to support the delegate only option on startup. If you start in vr mode with your hmd off and cancel the dialog stereo rendering now starts with default values for the hmd hardware stats (as read from my pvt) instead of crashing trying to use uninitialized data. When an hmd is connected its values will be read. -Refactored to ensure reprojection starts immediately when we call StartReprojection. #jira UEVR-126 #review-3116221 Change 3116754 on 2016/09/07 by Keli.Hlodversson bPixelDensityAdaptive is a bool and not a float property Change 3117692 on 2016/09/08 by Jeff.Fisher UEVR-135 Morpheus HMD recent feature error reporting UEVR-173 2DVR flexibility (UTexture) -Error log for sceHmdReprojectionSetOutputMinColor failure. -Made the parameter for 2dVR a UTexture* instead of a UTexture2D*, so it can be a rendertarget, etc. -Added error logs for missing texture, invalid texture, wrong texture format to 2DVR. #jira UEVR-135 #jira UEVR-173 #review-3116955 @keli.hloedversson Change 3117990 on 2016/09/08 by Jeff.Fisher UEVR-127 Morpheus HMD removal reaction -Added VRHeadsetPutOnHead and VRHeadsetRemovedFromHead delegates, and implemented them for Morpheus. #jira UEVR-127 #review-3117968 @keli.hlodversson Change 3120198 on 2016/09/09 by Jeff.Fisher MorpheusReprojector frame complete wait error log -Now log a warning if the sceKernalWaitEqueue returns an error. It not a problem if this happens rarely, but something is very broken if it starts happening continuously. Change 3121754 on 2016/09/12 by Keli.Hlodversson #jira UE-21878 - Also emit VR initialization analytics events in the editor. Change 3122311 on 2016/09/12 by Nick.Whiting Merging fix for Adreno devices rendering black from 4.13.1 Change 3123057 on 2016/09/13 by Keli.Hlodversson #jira UE-30097 Use the current value of r.ScreenPercentage on Occulus Rift if it's explicitly set. * If the SetBy part of the flags for the console var is SetBy_Constructor, then ignore the value. * If it's SetBy_Scalability, then ignore it if it equals 100 * Else, call SetScreenPercentage using the current value The obsolete HMD SCREENPERCENTAGE console command is still available and will override the setting until r.ScreenPercentage is modified the next time. Change 3123200 on 2016/09/13 by Chad.Taylor PS4 Stereo Layer double buffering. Since the overlays are reprojected at 120hz but rendered at 60hz we need to render to a separate buffer than the one being used by reprojection. Change 3125845 on 2016/09/14 by Keli.Hlodversson #jira UE-33996 Add hmd=<name> command line option to allow overriding which HMD module is used. Renamed GetModulePriorityKeyName to simply GetModuleKeyName, as this name is now also used to match against the command line options. Change 3127293 on 2016/09/15 by Jeff.Fisher UEVR-225 Morpheus HMD top and bottom black crescents -The hidden and visible area meshes for morpheus were too restrictive. Nudged them out a bit, no black crescents at the top and bottom of the screen. We are rendering a few more pixels now though. #review-3127145 @ryan.vance #jira UEVR-225 Change 3130635 on 2016/09/19 by Jeff.Fisher UEVR-226 Morpheus HMD mirrored fill wrong on outer edges -The setting was never being used, leaving the wrap mode at 0 aka kWrapModeWrap. -Refactored how the setting is applied so it works, and is less convoluted. #jira UEVR-226 #review-3129403 Change 3131615 on 2016/09/19 by Keli.Hlodversson #jira UE-29341. Update Chaperone bounds when SteamVR tells us they have changed Change 3136527 on 2016/09/22 by Keli.Hlodversson Don't depend on the current state of the VR subsystem when exiting PIE mode to decide whether the main window should be restored. Instead always restore it if it was minimized at the start. Change 3136652 on 2016/09/22 by Keli.Hlodversson Allow shutting down Steam VR subsystem without shutting down the Steam VR plugin completely in response to quitting from the SteamVR overlay. Enabling stereo rendering again will reinitialize SteamVR. This is useful when using PIE in VR mode as it allows entereing it again without restarting the editor. Also fixes crashes by first disabinge stereo rendering a short while before shutting down the VR subsystem. #jira UE-35940 Change 3138901 on 2016/09/23 by Ryan.Vance Merging 3138521 using OdinToDevVR to bring over temporary forward lighting ISR changes for 4.14 Change 3141614 on 2016/09/27 by Keli.Hlodversson Implement GetNumOfTrackingSensors and GetTrackingSensorProperties on SteamVR. #jira UE-32994 Change 3141948 on 2016/09/27 by Jeff.Fisher UEVR-242 Is AddControllerYawInput not allowed when morpheus is enabled? -Indeed it did not work. Looks like morpheus would not accumulate the yaw, so it would be reset every frame. I made the implementation of ApplyHmdRotation very similar to the one used for occulus (also similar to other platforms) to fix this. #jira UEVR-242 #review-3141933 keli.hlodversson Change 3143484 on 2016/09/28 by Nick.Whiting Integrating Oculus 1.8 SDK support, includes support for cylinder and cubemap stereo layers Change 3143517 on 2016/09/28 by Chad.Taylor Merging PS4Tracker fixes from Release-4.13 into Dev-VR Change 3143805 on 2016/09/28 by Keli.Hlodversson #jira UE-36478 Workaround to make world to meters scale apply correctly to Occulus controllers while running in PIE Change 3143943 on 2016/09/28 by Nick.Whiting Merging latest drop from OSVR Change 3144221 on 2016/09/28 by Keli.Hlodversson Implement GetTrackingSensorProperties on PS4 #jira UE-32994 Change 3144352 on 2016/09/28 by Ryan.Vance Initial implementation of mobile multi-view. This is non-functioning and requires a lot more work, but enough of the framework exists to make the 4.14 branch for an experimental release. Change 3144585 on 2016/09/29 by Jeff.Fisher UEVR-14 PSVR Support for 90Hz to 90Hz, and 120Hz to 120Hz -Enum setting added for the three frame sequences. -90Hz mode is trying to run camera updates at 90hz, but they can only run at 60 so every third one fails. This works, but its dubious. -Feature marked as experimental for now because of that 90hz tracking issue, and the lack of testing. -Defaulting to 60/120. #jira UEVR-14 #review-3143486 chad.taylor nick.whiting Change 3145263 on 2016/09/29 by Nick.Whiting Fix for constructor initialization order in StereoLayerComponent, which threw a warning on Clang Change 3145536 on 2016/09/29 by Nick.Whiting Fixes for project files to prevent mystery pop up from CAPI Change 3145663 on 2016/09/29 by Keli.Hlodversson PSVR: Make sure the camera orientation returned from GetTrackingSensorProperties points in the right direction. Change 3145670 on 2016/09/29 by Keli.Hlodversson For some reason the orientation of the Oculus tracking sensor is reported as pointing backwards. This flips it around to face front Change 3145687 on 2016/09/29 by Chad.Taylor VR splash screen support [CL 3146243 by Nick Whiting in Main branch]
2016-09-30 01:16:13 -04:00
if (bEmitMobileMultiView && GSupportsMobileMultiView && TypeEnum == GL_VERTEX_SHADER)
{
AppendCString(GlslCode, "\n\n");
AppendCString(GlslCode, "layout(num_views = 2) in;\n");
AppendCString(GlslCode, "\n\n");
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3383462) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3292174 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Linux toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292193 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - ThirdParty libs compiled with new toolchain with wasm support #jira UEPLAT-1437 Switch [to] web assembly Change 3292215 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and wbegl2 support - emscripten toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3292222 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm support - ENGINE changes (c# & cpp files) #jira UEPLAT-1437 Switch [to] web assembly Change 3292223 on 2017/02/08 by Nick.Shin HTML5 merge ThirdParty lib build scripts from Dev-Platform to Dev-Mobile Change 3292228 on 2017/02/08 by Nick.Shin HTML5 emscripten: webgl support - webgl patches - and a lot of UE4 patches to package HTML5 on LINUX - mostly from mozilla's jukka -- thx jukka! #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3292285 on 2017/02/08 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - Windows toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3293994 on 2017/02/09 by Nick.Shin HTML5 emscripten: wasm and webgl2 support - OSX toolchain #jira UEPLAT-1437 Switch [to] web assembly Change 3294391 on 2017/02/09 by Nick.Shin HTML5 "black box issues" revisited - jukka rewrote the window resize handler -- much cleaner and more straightforward #jira UE-36341 HTML5 - View is incorrectly drawn #jira UE-32311 Templates on Firefox/Chrome on HTML5 are not full screen during Launch On Change 3296421 on 2017/02/10 by Jack.Porter Fix landscape spline segment splitting placing when using streaming levels Change 3296587 on 2017/02/10 by Jack.Porter Additional fix for landscape spline segment splitting when using streaming levels Change 3301241 on 2017/02/14 by Mi.Wang Fixed DeviceProfileEditor bug for incorrect clamp the Texture Mip LOD size. #jira UE-36237 #rb jack.porter Change 3301387 on 2017/02/14 by Nick.Shin HTML5 emscripten: webgl support - webgl patches from mozilla's jukka + hardware instancing + glBlitFramebuffer + GL AlaphaBlendOperation #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3301405 on 2017/02/14 by Nick.Shin HTML5 plugin fix when blueprint projects are promoted to code projects automatically. #jira UE-41710 HTML5 - Package Failure - Failed to Produce item ProjectName-OnlineSubsystemNull.bc Change 3302278 on 2017/02/14 by Omar.Rodriguez UE-36651: Mac Vulkan Android Projects crash on launch. * Glslang library has been built for Mac but flag was not updated * Set GlslangAvailable to true for Mac when building an Android project with vulkan #jira UE-36651 Change 3302773 on 2017/02/14 by Chris.Babcock Add a dropdown with some common console commands on Android (contributed by rafortis) #jira UE-40834 #PR #3143 #ue4 #android Change 3305604 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader- turn on: instance static mesh vertex factory #jira UEPLAT-828 (4.16) Support ES3 / WebGL2 in HTML5 Change 3308154 on 2017/02/16 by Nick.Shin HTML5 GitHub PR #jira UE-42019 GitHub 3258 : Added suport for emscripten --pre-js and --post-js option when building for HTML5 Change 3308510 on 2017/02/16 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3308971 on 2017/02/17 by Jack.Porter Fix for landscape painting when height<0 in the Ortho viewports Change 3309075 on 2017/02/17 by Allan.Bentham Include static subject meshes when masking out modulated shadow casters. #jira UE-41581 Change 3309531 on 2017/02/17 by Chris.Babcock Handle large OBB files in APK #jira UE-41443 #ue4 #android Change 3311320 on 2017/02/19 by Dmitriy.Dyomin Fixed: Particle Cutout Crashes On Mobile Devices That Don't Support Hardware Instancing (Mali-400 GPU) #jira UE-41970 Change 3311347 on 2017/02/20 by Dmitriy.Dyomin Fixed: Engine Crashes When Previewing ES3_1 With Material Using World Position Offset (Need Custom Stencil) #jira UE-41976 Change 3311398 on 2017/02/20 by Dmitriy.Dyomin Fixed: Landscapes do not render on PowerVR device #jira UE-35530 Change 3311428 on 2017/02/20 by Dmitriy.Dyomin Fixed: Exposure Is More Extreme In High-End Mobile Preview Modes #jira UE-42036 Change 3311448 on 2017/02/20 by Dmitriy.Dyomin Fixed: Packaged game Crashes on android after entering "Help" command twice #jira UE-41956 Change 3311587 on 2017/02/20 by Allan.Bentham ES2 GLSL - Silently swap all uint to ints #jira UE-41548 Change 3313930 on 2017/02/21 by Allan.Bentham Print literal uints as ints when generating ES2 code. #jira UE-41548 Change 3317924 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317929 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3317951 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318004 on 2017/02/22 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318669 on 2017/02/23 by Nick.Shin HTML5 emscripten: wasm & webgl2 support - RC1 - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318672 on 2017/02/23 by Nick.Shin HTML5 webgl2 shader fixes #jria UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3318819 on 2017/02/23 by Dmitriy.Dyomin Fixed: Rendering artifacts with bloom on iPhone7 Metal #jira UE-40978 Change 3319702 on 2017/02/23 by Chris.Babcock Disable eglSwapInterval since it can cause issues with some drivers #ue4 #android Change 3320880 on 2017/02/24 by Dmitriy.Dyomin Added r.Mobile.TonemapperFilm cvar which can be used to enable/disable filmic tonemapper on mobile, independently from desktop (disabled by default) #jira UEMOB-195 Change 3321042 on 2017/02/24 by Jack.Porter Fixed incorrect sizeof in Vulkan pipleine cache pointed out here: http://coconutlizard.co.uk/blog/ue4/ue4-its-a-size-jim/ #code_review: rolando.caloca Change 3322383 on 2017/02/24 by Chris.Babcock Fix issue with ad banner on Android 7.0 devices #jira UE-42390 #ue4 #android Change 3322479 on 2017/02/24 by Omar.Rodriguez UEMOB-199 - WEX: Improved virtual keyboard for Android * Calculating the area covered by the virtual keyboard * Calling OnVirtualKeyboardShown and OnVirtualKeyboardHidden events * Passing the Rect of the area covered by the virtual keyboard OnVirtualKeyboardShown event #jira UEMOB-199 Change 3323353 on 2017/02/27 by Allan.Bentham Fix broken mobile scene captures when !mobileHDR and RHINeedsToSwitchVerticalAxis #jira UE-42191 Change 3323431 on 2017/02/27 by Allan.Bentham CIS fix Change 3323687 on 2017/02/27 by Allan.Bentham Disable GRHINeedsUnatlasedCSMDepthsWorkaround for mobile devices. #jira UE-42131 Change 3324652 on 2017/02/28 by Dmitriy.Dyomin Fixed: Canvas elements appear darker on iOS Metal Change 3324885 on 2017/02/28 by Jack.Porter Fixed "Minimum iOS Version" setting display name #jira UE-42270 Change 3324899 on 2017/02/28 by Jack.Porter GitHub 3063 : removed duplicate gc.MaxObjectsInGame setting in IOSEngine.ini #jira UE-40018 #3063 Change 3324932 on 2017/02/28 by Jack.Porter GitHub 3257 : iPhonePackager errors in output log when opening project settings on Windows #jira UE-41984 #3257 #codereview: Peter.Sauerbrei Change 3324956 on 2017/02/28 by Jack.Porter FOpenGLFrontend::GetMaxSamplers incorrect for IOS #jira UE-42038 #3264 Change 3325478 on 2017/02/28 by Allan.Bentham PR # 3188 : Fix far distance bug with cascaded shadows on mobile (Metal) and PC mobile preview (Contributed by ufna) #jira UE-41442 Change 3327300 on 2017/03/01 by Allan.Bentham PR #3175 : Fixes high quality reflection blending seams (Contributed by kallehamalainen) #jira UE-41257 Change 3328917 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini #jira UE-41584 Editor locks up when adding an element for HTML5 devices on Mac #jira UE-41701 Editor freezes when setting browser filepath for inserted element in project settings Change 3329169 on 2017/03/02 by Allan.Bentham increase render thread timeout to 1 minute for suntemple / android. Prevents low end devices timing out during load. #jira UE-40696 Change 3330849 on 2017/03/02 by Nick.Shin HTML5 project settings expose ini settings to edtior HTML5 project settings panel #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3331078 on 2017/03/03 by Dmitriy.Dyomin Fixed: Device output log partial lines integrated from WEX (3250488) Change 3331112 on 2017/03/03 by Dmitriy.Dyomin Reduced state setup for slate draw calls (saves about 4ms RT time on mobile) integrated from WEX (3256584) Change 3331117 on 2017/03/03 by Dmitriy.Dyomin Fixed redundant blend state changes in opengl integrated from WEX (3256586) Change 3331173 on 2017/03/03 by Dmitriy.Dyomin Slate pixel shaders will use half precision where possible on mobile integrated from WEX (3256656) Change 3332865 on 2017/03/06 by Dmitriy.Dyomin Better MobileContentScaleFactor defaults for iOS devices #jira UEMOB-330 Change 3333129 on 2017/03/06 by Peter.Sauerbrei move to Library/Caches instead of documents for saved files re-enable iterative deploy on TVOS #jira UEMOB-284 Change 3334692 on 2017/03/06 by Jack.Porter Allow r.MobileContentScaleFactor to be changed at runtime on Android #jira UEMOB-173 Change 3336255 on 2017/03/07 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3337094 on 2017/03/08 by Nick.Shin HTML5 project settings marking SIMD and multithreading as experimental - these do not play nice with WASM builds currently... #jira UE-42331 Project Settings - HTML5 SDK - HTML Device population should be moved to an .ini Change 3338800 on 2017/03/08 by Chris.Babcock Update AAR handling to deal with versioning, subproject dependencies for resources, and scope #jira UE-42677 #ue4 #android Change 3338813 on 2017/03/08 by Chris.Babcock Pass build configuration to UPL for access during packaging as $S(Configuration) #jira UE-42678 #ue4 #android #ios Change 3339401 on 2017/03/09 by Alicia.Cano Android runtime permissions - Fix for WRITE_EXTERNAL_STORAGE if it is not granted at time of onCreate for non-shipping builds - Fix for Location Services - Fix for if target sdk is not set to 23+ #jira UE-38512 #android #rb: chris.babcock Change 3340736 on 2017/03/09 by Chris.Babcock Implement support for new controllers (Xbox Wireless, SteelSeries Stratus XL, PS4) (contributed by TRS-justing) #jira UE-41965 #PR #3254 #ue4 #android Change 3340744 on 2017/03/09 by Jack.Porter Expose Custom Depth to Foliage #jira UE-6061 Change 3340849 on 2017/03/09 by Dmitriy.Dyomin Fixed: iOS movie become laggy and crashes when played in iPhone 6/6s. #jira UE-42351 Change 3341268 on 2017/03/10 by Alicia.Cano PR #2894: Initial VoiceModuleAndroid support. (Contributed by devbm) #jira UE-37945 #android #rb: chris.babcock, jack.porter Change 3341303 on 2017/03/10 by Allan.Bentham Remove optimisation that prevents full specular occulsion on mobile. PR #3186 : Specular can't be blocked on high-end mobile. #jira UE-41393 Change 3342304 on 2017/03/10 by Alicia.Cano build fix #rb: chris.babcock Change 3343344 on 2017/03/13 by Alicia.Cano build fix #rb: chris.babcock Change 3343591 on 2017/03/13 by Brent.Pease iOS multiplayer fix part 1. Correct byte ordering. #jira UE-34875 Change 3343669 on 2017/03/13 by Chris.Babcock Update carefullyredist script version #jira UE-42832 Change 3344212 on 2017/03/13 by Will.Fissler Various compile fixes for Xcode 8.3. These fixes must also be added to //UE4/Release-4.15. #jira UE-41313 Change 3344396 on 2017/03/13 by Chris.Babcock Fix Java 1.5 obsolete warnings #jira UE-42851 #ue4 #android Change 3345132 on 2017/03/14 by Will.Fissler Added ifdef wrapper to check clang version for presentDrawable. Change 3345336 on 2017/03/14 by Will.Fissler Moved #if (__clang_major__ > 8) || (__clang_major__ == 8 && __clang_minor__ >= 1) check inside of the presentDrawable method. Change 3345460 on 2017/03/14 by Will.Fissler ifdef changes for presentDrawable. The last submission duped the changes, instead of merging. #rb none Change 3346046 on 2017/03/14 by Will.Fissler Fixed MetalCommandBuffer.cpp [again] after last submission duped changes instead of merging. Change 3346367 on 2017/03/14 by Chris.Babcock Fix issue with GoogleVR ARMv7 libraries included for other architectures in link #ue4 #android Change 3347682 on 2017/03/15 by Allan.Bentham Enable HW sRGB correction with retainer widget's render target. Use slate's gamma correction for mobile (where no such support exists) Render retainer box RT content with gamma correction. #jira UE-40967 Change 3348712 on 2017/03/15 by Nick.Shin HTML5 - upload to S3 updated to AWS "signature version 4" authentication #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349254 on 2017/03/16 by Jack.Porter Fix for crash using the mobile previewer when the LQ lightmap shader permutation is disabled. #jira UE-42971 Change 3349739 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 better error message feedback on upload failures #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3349765 on 2017/03/16 by Alicia.Cano Disable mouseover events in Mobile Previewer #jira UE-19903 #mobile #rb: Jack.Porter Change 3350049 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 folder in bucket is optional #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3350153 on 2017/03/16 by Nick.Shin HTML5 - upload to S3 updated S3 public link generator #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3351582 on 2017/03/17 by Will.Fissler Reverting the attempted fix for Xcode 8.3: Result += " -mcpu=cortex-a9"; Currently we cannot build arm64 for iOS with this change. Change 3352085 on 2017/03/17 by Alicia.Cano iOS doesn't honor request to close the virtual keyboard leading to a crash #jira UE-36447 #ios #rb:Peter.Sauerbrei Change 3353313 on 2017/03/19 by Ben.Marsh Always allow large *.js files in Github. Change 3354444 on 2017/03/20 by Nick.Shin HTML5 - upload to S3 to help make it obvious that "upload to S3" checkbox is set/or not -- disable S3 details if checkbox for "uploading to S3" is not set #jira UE-42525 HTML5 Upload to Amazon S3 fails with Incorrect Configuration error Change 3355618 on 2017/03/20 by Nick.Shin HTML5 Save Game System - ripped out HTML5 code [from Engine's SaveGameSystem.h] and placed it in HTML5Platform.cpp - cleaned up HTML5PlatformFile.cpp (make it match as clost to linux's version) - created HTML5's own PlatformFeature & SaveGameSystem files -- and updated HTML5PlatformMisc to make use of the the new HTML5 SaveGame code #jira UE-42081 Remove heinous HTML5 code from engine Change 3355621 on 2017/03/20 by Nick.Shin remove temp debugging code #jira UE-42081 Remove heinous HTML5 code from engine Change 3356937 on 2017/03/21 by Chris.Babcock Add "stat vulkanrhi" to new console dropdown #jira UE-43149 #ue4 #android Change 3357652 on 2017/03/21 by Nick.Shin HTML5 performance speed ups added "use fixed timestep" setting option for HTML5 builds (this has been separated from Engine - General Settings - Framerate) - this is slightly different to smooth framerate and fixed framerate - thus, the timestep option was put in the HTML5 specific panel this option is based on the suggestions by jukka's post: - https://answers.unrealengine.com/questions/409629/smooth-frame-rate-and-use-fixed-frame-rate-should.html however, using this option will make the player "run faster" on (for example) thirdperson blueprint template -- but, it has no effect on other (for example) zen garden... #jira UE-30214 - Implement a warning message for fps settings Change 3360415 on 2017/03/23 by Allan.Bentham Fix crash that occurs when ES3.1 preview is used with r.MobileHDR32bppMode modes. Change 3360418 on 2017/03/23 by Allan.Bentham Disable filmic tonemapper if r.MobileHDR32bppMode is in use. #jira UE-40913 Change 3360557 on 2017/03/23 by Allan.Bentham Better fix for mobile CSM shadow flickering (UE-42131), now works for PC OpenGL based mobile preview. #jira UE-42131 Change 3362258 on 2017/03/23 by Dmitriy.Dyomin Fixed: Canvas texture element gamma issues on iOS Metal Change 3362321 on 2017/03/24 by Dmitriy.Dyomin GitHub 3173 : MaterialAO support for mobile rendering path (contributed by kallehamalainen) #3173 Change 3363550 on 2017/03/24 by Alicia.Cano build fix for devices < Android 5.0 #jira UE-43299 #android #rb: chris.babcock Change 3363687 on 2017/03/24 by Chris.Babcock Fix Android password hiding in input dialog #jira WEX-5159 #ue4 #android Change 3365280 on 2017/03/27 by Dmitriy.Dyomin Fix for GL_EXT_shader_framebuffer_fetch on Zenfone5. Use UE_EXT_shader_framebuffer_fetch define on all devices to enable extension Change 3365291 on 2017/03/27 by Dmitriy.Dyomin Copied form WEX CL# 3308653 Fixed: Enabling shader cache causes crash on NVIDIA Shield #jira UE-41639 Change 3365293 on 2017/03/27 by Dmitriy.Dyomin GitHub 3411 : Fix crash in patching utils mount method (contributed by nverenik) #jira UE-43247 #3411 Change 3365340 on 2017/03/27 by Dmitriy.Dyomin Fixed: Moving sublevel in world composition browser does not appear in Undo History #jira UE-35535 Change 3365564 on 2017/03/27 by Allan.Bentham SkyLightComponent now serializes IrradianceMap SH values. clicking Recapture sky button in mobile preview switches back to SM4/5 to update captures. Skylights that are dirty from load will trigger reflection capture update once shaders are rebuilt. #jira UE-42436 Change 3366282 on 2017/03/27 by Nick.Shin remove dead links these files to not exist anywhere in the make-3.81 subfolders #UDN-354501 #jira none Change 3366306 on 2017/03/27 by Nick.Shin HTML5 - disable multi-threading for wasm #jira UE-43219 - HTML5 disable multi-threading for wasm Change 3366307 on 2017/03/27 by Nick.Shin HTML5 packaging Shipping builds big cleanup / additions to *gz file support for amazon s3 * both, uploading to s3 * and allowing s3 to host the games there #jira UE-43002 HTML5 in Shipping fails downloading symbols files #jria UE-43001 HTML5 Shipping Projects fail looking for compressed files when "Compress files during shipping packaging" is not selected. Change 3367385 on 2017/03/28 by Allan.Bentham Display skylight serialization warning only when cooking for mobile platforms. #jira UE-42436 Change 3368583 on 2017/03/28 by Chris.Babcock Expose JAVA_HOME setting in Android SDK project settings on Mac #jira UE-43418 #ue4 #android Change 3368803 on 2017/03/28 by Chris.Babcock Fix features requested in manifest for "Daydream and Cardboard" mode #jira UE-43314 #ue4 #android Change 3369087 on 2017/03/28 by Jack.Porter Changed tooltip and added supported devices in paretheses for Android Mobile Deferred / ES31+AEP #jira UE-42438 Change 3369372 on 2017/03/29 by Allan.Bentham Fix disappearing meshes when r.mobile.allowdistancefieldshadows is disabled. #jira UE-43366 Change 3369381 on 2017/03/29 by Jack.Porter Show warnings when mobile shader permutations required for rendering are disbaled Made FReadOnlyCVARCache a singleton and added mobile CVars, used for MobileBasePassRendering. #jira UE-43050 Change 3369430 on 2017/03/29 by Allan.Bentham fix CIS build Change 3369740 on 2017/03/29 by Allan.Bentham Added Android option to enable builds with hidden symbol visbility by default. (bBuildWithHiddenSymbolVisibility) Android links with -gc-sections to remove unused code/data Add JNI_METHOD for java accessible native functions, fixed up existing JNI functions to use macro. Add support for map file generation with android. Add 'bBuildWithHiddenSymbolVisibility' to AndroidPlatform.HasDefaultBuildConfig() bBuildWithHiddenSymbolVisibility defaults to false in BaseEngine.ini #jira UEMOB-168 Change 3369975 on 2017/03/29 by Nick.Shin HTML5 - AWS S3 shareable link for shipping builds corrected #jira UE-43379 Amazon S3 Shareable link does not generate correct filepath. Change 3369998 on 2017/03/29 by Nick.Shin HTML5 python build scripts PR: https://github.com/Mozilla-Games/UnrealEngine/commit/1cb836d43c3015c6ca0fdd039072bb6c5c273db3 #jira none Change 3370214 on 2017/03/29 by Nick.Shin HTML5 - default bUseFixedTimeStep to false... #jira UE-43380 - Default HTML5 gamespeed is faster than equivalent platforms Change 3370762 on 2017/03/29 by Chris.Babcock Fixes to new keyboard for Android - Ensure the local scope ScreenRect passed into OnVirtualKeyboardShown in AndroidJNI is captured by value instead of by reference. - Moved ShowVirtualKeyboardInput's bKeyboardShowing early-out checks into the UI thread task. This allows the keyboard to continue showing when changing focus between multiple EditableTextBox widgets. #ue4 #android Change 3371344 on 2017/03/30 by Jack.Porter Fixed issue where Vulkan screenshot R/B channels were reversed on Android #jira UE-43479 Change 3372926 on 2017/03/30 by Peter.Sauerbrei start the process of sunsetting 32-bit and GLES2 on iOS #jira UE-42266 Change 3372970 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - windows toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3372989 on 2017/03/30 by Peter.Sauerbrei fix for Xcode 8.3 build with 32-bit Change 3373007 on 2017/03/30 by Peter.Sauerbrei fix for crash when online subsystem is disabled on IOS Change 3373108 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - emscripten toolchain WARNING: emscripten/incoming/source/include/libc/bit (the file) might need to be deleted first #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373163 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - OSX toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373169 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support license file updated #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rnx Change 3373287 on 2017/03/30 by Nick.Shin HTML5 - 1.36.11 emscripten - remove old SDK #jira none #rnx Change 3373289 on 2017/03/30 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - Linux toolchain #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3373595 on 2017/03/30 by Chris.Babcock Reenable GooglePlay for ARM64 now that it doesn't crash #jira UE-36198 #ue4 #android Change 3373606 on 2017/03/30 by Chris.Babcock Submitting Allan's shelved EXT_shader_framebuffer_fetch fix #ue4 #android Change 3375456 on 2017/03/31 by Chris.Babcock Add missing keycodes for Android keyboard (@ and #) #jira WEX-5777 #ue4 #android Change 3376309 on 2017/04/03 by Allan.Bentham Fix overflow issues with mobile DoF. Change 3377041 on 2017/04/03 by Will.Fissler Adding Testbed content for PlatformShowcase. Change 3377582 on 2017/04/03 by Alicia.Cano adding back in GET_ACCOUNTS permission as it is required for Reset Achievements #jira: UE-43265 #android #rb: Chris.Babcock Change 3377643 on 2017/04/03 by Peter.Sauerbrei fix for memory leak in MallocBinned #jira UE-43008 Change 3378033 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty libs compiled with new toolchain with wasm and webgl2 support #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 #rn Change 3378034 on 2017/04/04 by Nick.Shin HTML5 - 1.37.9 emscripten: wasm & webgl2 support - ThirdParty build scripts #jira UEMOB-263 Switch [to] web assembly #jira UEMOB-201 Support ES3 / WebGL2 in HTML5 Change 3378035 on 2017/04/04 by Nick.Shin HTML5 - Update GameX template to make it work with trunk Emscripten PR https://github.com/Mozilla-Games/UnrealEngine/commit/dc2b26f452948f8ee07178bc3e8742af80d8919a#commitcomment-21454978 #jira none #rn Change 3378044 on 2017/04/04 by Nick.Shin HTML5 harfbuzz - double checking recompiled with NO multithreading wasm currently does not support pthreads *** THIS IS STILL WIP *** checking in to match 3rd party libs compiled configuration #jira UE-28588 - Build HarfBuzz for HTML5 #rnx Change 3378264 on 2017/04/04 by Allan.Bentham Fix crash when using consolas font on android sdk 24 #jira UE-43464 Change 3379097 on 2017/04/04 by Nick.Shin CIS HTML5 build warning fix #jria none #rnx Change 3379333 on 2017/04/04 by Chris.Babcock Prevent inserting extra permissions into manifest multiple times #jira UE-43583 #ue4 #android Change 3380870 on 2017/04/05 by Chris.Babcock Fix merge issue Change 3380898 on 2017/04/05 by Chris.Babcock Fixed again Change 3381443 on 2017/04/05 by Chris.Babcock Fix for GearVR non-unity build #ue4 #android Change 3381941 on 2017/04/05 by Chris.Babcock Fix HTTPChunkInstaller texture format checks and missing #define warning #jira UE-43706 #ue4 #android Change 3382056 on 2017/04/05 by Chris.Babcock Updates to Android AARs needed for Facebook plugin Change 3382097 on 2017/04/05 by Chris.Babcock Disable java console cmd receiver only in shipping builds #jira UE-43710 #ue4 #android Change 3382497 on 2017/04/06 by Allan.Bentham Fix Fortnite Cooked Server crashes when joining game from lobby. #jira UE-43695 Change 3383227 on 2017/04/06 by Will.Fissler Reverted case sensitive change, from yesterday, and implemented a pragma instead. #jira UE-41313 [CL 3383473 by Jack Porter in Main branch]
2017-04-06 16:13:17 -04:00
if (Capabilities.bRequiresUEShaderFramebufferFetchDef && TypeEnum == GL_FRAGMENT_SHADER)
{
// Some devices (Zenfone5) support GL_EXT_shader_framebuffer_fetch but do not define GL_EXT_shader_framebuffer_fetch in GLSL compiler
// We can't define anything with GL_, so we use UE_EXT_shader_framebuffer_fetch to enable frame buffer fetch
AppendCString(GlslCode, "#define UE_EXT_shader_framebuffer_fetch 1\n");
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_Android)
{
// Temporary patch to remove #extension GL_OES_standard_derivaties if not supported
if (Capabilities.bSupportsStandardDerivativesExtension)
{
const ANSICHAR * FoundPointer = FCStringAnsi::Strstr(GlslCodeOriginal.GetData(), "#extension GL_OES_standard_derivatives");
if (FoundPointer != nullptr)
{
// Replace the extension enable with dFdx, dFdy, and fwidth definitions so shader will compile.
// Currently SimpleElementPixelShader.usf is the most likely place this will come from for mobile
// as it is used for distance field text rendering (GammaDistanceFieldMain) so use a constant
// for the texture step rate of 1/512. This will not work for other use cases.
ReplaceCString(GlslCodeOriginal, "#extension GL_OES_standard_derivatives : enable",
"#define dFdx(a) (0.001953125)\n"
"#define dFdy(a) (0.001953125)\n"
"#define fwidth(a) (0.00390625)\n");
}
}
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
if (IsES2Platform(Capabilities.MaxRHIShaderPlatform) && !bES31)
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
{
Copying //UE4/Release-Staging-4.15 to //UE4/Dev-Main (Source: //UE4/Release-4.15 @ 3278667) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3278667 on 2017/01/31 by Chris.Wood Added extra context to crash analytics and crash reports in the Editor. [UE-41306] - Add context to crash analytics and crash reports (with Editor user activity) When a Slate tab becomes active or foregrounded, we take its LayoutIdentity, Label and Content Widget Type and generate a string from all three. This gives context for what the user was doing. The string is set as the UserActivity and passed to MTBF analytics, crash analytics and crash reporter. Also added filter to the UserActivity tracking system that defaults to Game mode to preserve previous behavior. Editor now switches it to Editor mode and starts setting the activity in this mode. #jira UE-41306 Change 3278637 on 2017/01/30 by Dmitriy.Dyomin Fixed: iOS Device displays textures darker than in Editor #jira UE-41298 Change 3278566 on 2017/01/30 by Jack.Porter Fix #WITH_EDITOR in InstancedStaticMesh.cpp #jira UE-41292 Change 3278195 on 2017/01/30 by Alexis.Matte Fix the re-import skeletal mesh regression, where all material disapear. #jira UE-41294 Change 3278173 on 2017/01/30 by Frank.Fella PlatformMediaSource - Don't allow the user to nest platform media sources, and also fail validation on nested platform media sources just in case they are set outside of the cusomization UI. #Jira UE-40779 Change 3278156 on 2017/01/30 by Josh.Adams - Adding the missed #include line for IsWindowsServer() #jira UE-41304 Change 3278088 on 2017/01/30 by Mike.Beach Mirroring CL 3249423 from Dev-BP. Fix to keep placeholder classes from being needlessly created (when the object they represent already exists) - instead, attempt to lookup and find the existing import objects (which used to be set, but could be cleared during async loading by FLinkerManager::DissociateImportsAndForcedExports()). #jira OR-34038 Change 3278036 on 2017/01/30 by Mike.Beach Mirroring CL 3277671 from Dev-BP. Refactoring FBlueprintCompilerCppBackend::SortNodesInUberGraphExecutionGroup() a bit. Catching cases that weren't acounted for - detecting cyclical logic now when we've pulled a node/statement out of order, and other nodes need to fall through to that logic (not relying on a goto). #jira UE-41188, UE-41189, UE-41186, UE-41037 Change 3277974 on 2017/01/30 by Josh.Adams - Hopeful workaround for COM crash in HandleGameExplorerIntegration function #jira UE-41080 Change 3277951 on 2017/01/30 by Ori.Cohen Fix access violation in physx. #JIRA ODIN-5199 Change 3277773 on 2017/01/30 by Jamie.Dale Fixing crash that could occur with null meta-data #jira UE-41271 Change 3277549 on 2017/01/30 by Max.Chen Sequencer: Back out changelist 3276452 because it breaks other uses of the time snapping interval in the settings. #jira UE-41009 Change 3277510 on 2017/01/30 by Jamie.Dale Fixed localization sometimes having incorrect keys in cooked builds Merged CL# 3276233 and CL# 3277273. #jira UE-41271 Change 3277500 on 2017/01/30 by Michael.Trepka Added -Wno-undefined-var-template on Mac to work around an issue with compiling UHT in Xcode 8.3 #jira UE-41225 Change 3277421 on 2017/01/30 by Arciel.Rekman TestPAL: delete unused test (UE-36984) #jira UE-36984 (Edigrating CL 3267568 from Dev-Platform to Release-4.15) Change 3277410 on 2017/01/30 by Jeff.Fisher UE-41152 more non-unity include fixes. -Matthew Griffin showed me how to run this locally, so I was able to locally reproduce the errors and this fixed them (the previous fixes were insufficient rather than incorrect). #jira UE-41152 Change 3277230 on 2017/01/30 by Jack.Porter Fixed issue with static lighting for Foliage and Instanced Static Meshes where shadows on instances in LOD levels other than LOD 0 was incorrect. #jira UE-39884 Change 3277178 on 2017/01/30 by Allan.Bentham enable FORCE_FLOATS with iOS metal shaders when full precision material setting is set. #jira UE-41253 Change 3277134 on 2017/01/30 by Matthew.Griffin Fixed NonUnity compile issues Change 3276503 on 2017/01/28 by Jeff.Fisher UE-41152 more non-unity include fixes. #jira UE-41152 Change 3276452 on 2017/01/28 by Max.Chen Sequencer: Changed the time snapping interval in the toolbar ui so that it no longer additionally updates the sequencer setting. The value used in the sequencer settings is only used to initialize a new level sequence. #jira UE-41009 Change 3276130 on 2017/01/27 by Phillip.Kavan [UE-40894] Fix data loss issues with non-native Blueprint classes that override inherited component default values from a nativized parent Blueprint class hierarchy. - Mirrored from //UE4/Dev-Blueprints (CL# 3276109). #jira UE-40894 Change 3276013 on 2017/01/27 by Lina.Halper - fix issue with additive pose preview applying twice #jira: UE-41216 #code review:Thomas.Sarkanen Change 3275990 on 2017/01/27 by Mitchell.Wilson Disabling 'Used with skeletal mesh' on some materials to resolve errors and warnings. #jira UE-40736 Change 3275885 on 2017/01/27 by Matt.Kuhlenschmidt Fixed missing slate style assets log warning #jira UE-41148 Change 3275805 on 2017/01/27 by Ori.Cohen Fix incorrect warning about moving simulated bodies during tick group. The existing code would warn if you had a kinematic that was SimulationDisabled (i.e. meaning it's not in the sim scene). #JIRA UE-37270 Change 3275797 on 2017/01/27 by Shaun.Kime In some cases, it was possible to create a SRetainerWidget that does not have a valid scene. This would cause the recorded scene index to be mismatched with the actual rendering index when played back in the future. #jira OR-34919 Change 3275681 on 2017/01/27 by Lina.Halper Dupe change of CL 3273803, 3274129, 3274700 #jira: UE-41163 #code review:Daniel.Wright, Martin.Wilson Change 3275624 on 2017/01/27 by Benn.Gallagher Fixed crash when creating destructible meshes from static meshes with null material interface entries #jira UE-38998 Change 3275601 on 2017/01/27 by Matt.Kuhlenschmidt Fix crash when a kdop collision generation fails and there are existing collision meshes selected. We no longer clear out unrelated collision primitives when kdop generation fails. #jira UE-41220 Change 3275545 on 2017/01/27 by Chris.Bunner Added flag for retreiving debug materials from GetUsedMaterials calls on rendering components. #jira UE-40482 Change 3275522 on 2017/01/27 by Max.Chen Sequencer: Call modify before setting row indices #jira UE-40682 Change 3275518 on 2017/01/27 by Max.Chen Sequencer: Switch to static pointer to fix crash when tearing down curve editor. #jira UE-41105 Change 3275475 on 2017/01/27 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing non-unity missing includes. #jira UE-41152 Change 3275387 on 2017/01/27 by Steve.Robb Prevent engine reinstancing on hot reload. Copied from CL# 3265490. #jira UE-40765 Change 3275279 on 2017/01/27 by Josh.Adams - Redoing change 3274305 in 4.15 #jira UE-40451 Change 3275233 on 2017/01/27 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix share play initialization logic. #jira UE-41209 Change 3275227 on 2017/01/27 by Alex.Delesky Duplicating the fix for UE-40791 from Dev-Editor CL 3265714 - The ForceFeedback thumbnail's Play and Stop icons will now render correctly, and will only be visible while an effect is playing or when the cursor hovers over the icon. #jira UE-40791 Change 3275057 on 2017/01/27 by Peter.Sauerbrei fix for crash after changing the metal shader version #jira ue-41183 Change 3275031 on 2017/01/27 by Matthew.Griffin Added architecture hash to path for Linux generated includes, didn't realize that this was part of the path. Change 3275005 on 2017/01/27 by Matthew.Griffin Re-enabled Cache of cooked platform data during DerivedDataCache commandlet Moved caching DDC of non-host platform data behind an option so it's not done for Installed Build by default Removed other platforms from Launcher Samples and changed 'CookPlatforms' to 'DDCPlatforms' so that its purpose is more clear Change 3274828 on 2017/01/27 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing non-unity missing include. #jira UE-41152 Change 3274799 on 2017/01/27 by Arciel.Rekman Fix for installed Linux cross-toolchain (UE-40392). - Pull request #3111 contributed by rubu. #jira UE-40392 Change 3274756 on 2017/01/27 by Max.Chen Sequencer: Update the parent guid with the new possessable guid. This fixes a bug where the parent guid isn't set properly and so folders aren't retained when assign actors and running fix up actor references. #jira UE-41010 Change 3274755 on 2017/01/27 by Max.Chen Sequencer: Call notify movie scene data changed when creating a camera instead of marking the instances as needing a refresh. #jira UE-41019 Change 3274597 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google -Fixing monolithic include warning. #jira UE-41152 Change 3274564 on 2017/01/26 by Mike.Beach Following the example of other nodes with external dependencies (like UK2Node_SwitchEnum), and making sure the struct is preloaded before we use it (the struct needs to have a valid size). #jira UE-41073 Change 3274535 on 2017/01/26 by Mike.Beach Removed ensure that was blocking a wrapper function call to a non-nativized function lib from being generated (while not optimal, the generated code works). #jira UE-41190 Change 3274512 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3255506 Copyright update for google -note most of the changes went in with the previous 3 androidvr-devvr change integrations, these two were not otherwise changed. -just incrementing the year //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273588 Change 3274511 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243495 Adding GoogleVRTransition2D plugin to handle VR->2D->VR transition for daydream app. //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273586 Change 3274510 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243494 Update GoogleVR plugin to v1.2. -Upgrade GVR NDK to 1.10.0 -Add easy to use GoogleVR input component, including controller component for daydream and a gaze based reticle component for cardboard. -Make the GoogleVRSplash rendered with depth. -Add built in arm model support in GoogleVR controller plugin. -Add "Use ExternalFilesDir for UE4Game files" option in AndroidRuntimeSetting to support saving game progress without requesting EXTERNAL_STORAGE permission in Andoird 23+ -Remove the "Package for Daydream" option in AndroidRuntimeSetting. -Fix the crash on iOS9 when GoogleVR plugin is enabled.(udn/325432) //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273585 Change 3274509 on 2017/01/26 by Jeff.Fisher UE-41152 Merge Improved Daydream Support from Google Merging cl 3243493 Adding AndroidPermission plugin to handle runtime permission request and check for android api 23 and above. -The plugin works for both daydream and normal Android application. -For Daydream app, it need to work with GoogleVRTransition2D plugin. //depot/Partners/Google/AndroidVR-DevVR/Engine/... to //UE4/Release-4.15/Engine/... #jira UE-41152 #review-3273583 Change 3274485 on 2017/01/26 by Chris.Babcock Fix handling of numbers in textedit (allow decimals) #jira UE-41198 #ue4 #android Change 3274457 on 2017/01/26 by Mike.Beach Fix to CIS warning (fallout from CL 3274362) #jira UE-41072, UE-41071, UE-41070 Change 3274445 on 2017/01/26 by Arciel.Rekman Proper fix for deploying to Linux (UE-40023). - The logic is: if the base path (local to PC, one we are replacing) *ends* with a separator, add the separator to the dest path (one we're mapping to). Previous fix had a last minute change that inverted it. #jira UE-40023 Change 3274428 on 2017/01/26 by Brian.Karis Fixed bloom flickering on high contrast HDR edges when r.TemporalAACatmullRom was enabled. #jira UE-41138 Change 3274362 on 2017/01/26 by Mike.Beach Restructuring how we apply individual (exclusive) Blueprint nativization flags... 1. Explicitly flagging Blueprints as dependencies for nativization (and communicating that to the user) 2. Now applying nativization flag to authoritative config for all dependencies on save 3. Flagging new dependencies (parent or interface) as needing nativization (when required) 4. Ignore bDontNativizeDataOnlyBP setting when nativization mode is set to explicit #jira UE-41072, UE-41071, UE-41070 Change 3274349 on 2017/01/26 by Yannick.Lange VREditor: Fix Laser not hidden on MotionControllers with docked Menu/UI Panels #jira UE-40070 Change 3274301 on 2017/01/26 by Chris.Bunner Added missing material expression tooltips/keywords for new nodes based on 4.15 preview feeback. #jira UE-41193 Change 3274254 on 2017/01/26 by Ryan.Gerleve Fix for IsInGameThread() checks that could fail in debug builds while recording a replay with tick.DoAsyncEndOfFrameTasks and demo.ClientRecordAsyncEndOfFrame enabled. #jira UE-39911 Change 3274121 on 2017/01/26 by Josh.Adams - Fixed build error with landscape gizmo #jira UE-41177 Change 3274114 on 2017/01/26 by Dan.Oconnor Updating all references before calling post edit - prevents objects from being destroyed or created while updating references #jira UE-40121 Change 3273971 on 2017/01/26 by Chris.Bunner Update material instance permutations when we have already set param/switch overrides, then only change the base properties. #jira UE-39754 Change 3273842 on 2017/01/26 by Daniel.Wright Attempt to remove instructions from code features only present in the forward renderer, so we are showing users their graph cost. Allows shader complexity in forward to sortof match deferred. #jira UE-41167 Change 3273750 on 2017/01/26 by Jeff.Fisher UE-41137 //UE4/Main: Step 'Compile Ocean (Win32/Win64)' - 2 Errors - SteamVRController.cpp -Fixing build break for Ocean. Maybe they are using an older compiler? #jira UE-31137 Change 3273602 on 2017/01/26 by Michael.Trepka Fix for UE-41146 #jira UE-41146 Change 3273506 on 2017/01/26 by Maciej.Mroz #jira ODIN-4991, UE-41035 merged cl3273497 from Dev-Blueprints branch Nativization: EX_AddMulticastDelegate - generated code calls TMulticastScriptDelegate::AddUniqe instead of TMulticastScriptDelegate::Add. Change 3273464 on 2017/01/26 by Mitchell.Wilson Resaving asset to resolve warning. #jira UE-41008 Change 3273413 on 2017/01/26 by Marc.Audy Fix crash when audio device fails to initialize #author Andrew.Grant #jira UE-41143 Change 3273391 on 2017/01/26 by Jack.Porter Fixed ensure encountered when using the Copy/Paste sub-tool in sculpt mode #jira UE-40480 Change 3273343 on 2017/01/26 by Matt.Kuhlenschmidt Resetting the preview on a material now properly clears the thumbnail which could have a stale references that was impossible to fix. Fixed on asset exibiting this problem #jira UE-40300 Change 3273243 on 2017/01/26 by Jamie.Dale Speculative fix for an issue where User Defined Enum display names were being lost on upgrade to 4.15 #jira UE-41130 Change 3273235 on 2017/01/26 by Graeme.Thornton Fix for some memory being left hanging around when loading bulk data asyncronously under certain circumstances #jira UE-37815 Change 3273225 on 2017/01/26 by Ben.Cosh This fixes an issue with actor details component selection causing actor selection to get out of sync across undo operations #Jira UE-40753 - [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602] #Proj Engine Change 3273224 on 2017/01/26 by Josh.Stoddard Increment FDerivedDataPhysXCooker to force recook of PhysX data #jira UE-39791#rb none #lockdown james.golding Change 3273201 on 2017/01/26 by Jack.Porter Fixed problem where UpdateInstanceTransform blueprint function was not updating bounds correctly #jira UE-41126 Change 3273122 on 2017/01/26 by Graeme.Thornton Added some extra log output for situations where a compressed block in an archive doesn't have a valid header #jira UE-38767 Change 3273116 on 2017/01/26 by Benn.Gallagher Fix for crash generating clothing skinning data due to coplanar check triggering a check() on small triangles #jira UE-41112 Change 3273077 on 2017/01/26 by Thomas.Sarkanen Allowed LODs other than LOD0 to have screen sizes greater than 1 #jira UE-41125 - Static mesh LODs other than LOD0 cannot be set to screen sizes greater than 1 Change 3273061 on 2017/01/26 by Matthew.Griffin Disabled code caching data for all platforms until we can figure out why it's filling up DDC cache Change 3272938 on 2017/01/25 by Arciel.Rekman Fix launch on a remote Linux machine (UE-38691). - Device id is now used to get target platform, so should match it exactly. #jira UE-38691 Change 3272816 on 2017/01/25 by Ben.Marsh Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel. Change 3272590 on 2017/01/25 by Daniel.Wright Workaround for "error X3067: 'GetObjectWorldPosition': ambiguous function call" which happens when FMaterialPixelParameters and FMaterialVertexParameters have the same number of floats with the HLSL compiler. Function overload resolution appears to identify types based on how many floats / ints / etc they contain. #jira UE-41099 Change 3272419 on 2017/01/25 by Arciel.Rekman Linux: fix remote deploying of a packaged build (UE-40023). #jira UE-40023 Change 3272355 on 2017/01/25 by Daniel.Wright Prevent a large shadow depth bias due to low resolution from causing near plane clipping #jira UE-40873 Change 3272196 on 2017/01/25 by tim.gautier Updating TM-UMG content for UI visibility #jira UE-29618 Change 3272114 on 2017/01/25 by Michael.Dupuis #jira UE-29817 : backout of CL from Dev-Editor fixing this jira Change 3271953 on 2017/01/25 by Michael.Trepka Attempt to fix UE-40956 - Rare crash occurs in CoreAudio in Vehicle Game on Mac when quitting. #jira UE-40956 Change 3271945 on 2017/01/25 by Olaf.Piesche Replicating CL 3271564 #jira UE-40980 #udn 325525 Fix uniform buffers for mesh particles; these should really be on the mesh collector, so allocating them as a one frame resource is safe. Change 3271883 on 2017/01/25 by Daniel.Wright UWorld::AreAlwaysLoadedLevelsLoaded takes into account bShouldBeVisible. Fixes reflection captures not getting uploaded when there's an invisible always loaded level, which is supposed to be invisible. #jira UE-40724 Change 3271686 on 2017/01/25 by Marc.Audy Properly fix line endings in all cases when installing a c++ feature pack #jira UE-40939 Change 3271631 on 2017/01/25 by Ryan.Gerleve In UEngine::CommitMapChange, rename the new ULevelStreaming objects so that the main world is their outer. This is more correct in general, and will cause those levels to be added to the correct level collection during FlushLevelStreaming. Also use MoveTemp to add the streaming level list to the main world, so that the fake world will no longer reference them. #jira UE-40524 Change 3271611 on 2017/01/25 by Allan.Bentham Ensure texture's buildsettings are not marked as streamable if the target platform does not support streaming. #jira UE-40927 Change 3271504 on 2017/01/25 by tim.gautier Updated default values of UMG_Behavior #jira UE-29618 Change 3271491 on 2017/01/25 by Luke.Thatcher [PLATFORM] [PS4] [!] Fix bug in AT9 audio cooking. - Maximum mono bitrate is 144kbps, but 100% quality mono tracks were selecting 168kbps, causing the AT9 tool to fail. - Also bumped AT9 engine format to recook potentially broken audio data. #jira UE-40761 Change 3271428 on 2017/01/25 by Chris.Bunner Bug in previous CL. #jira UE-39953 Change 3271413 on 2017/01/25 by Lina.Halper #DUPEFIX of CL 3270776 #jira: UE-41082 Change 3271403 on 2017/01/25 by tim.gautier Adjusted UMG_Blur intensity settings. #jira UE-29618 # rb cristina.riveron Change 3271300 on 2017/01/25 by Luke.Thatcher [PLATFORM] [PS4] [^] Merge (as edit) fix for NpToolkit2 initialization in 6CPU mode, from //UE4/Dev-Platform to //UE4/Release-4.15 (Original CL 3271215) - Default thread affinity in the InitParams structure is 7 CPUs. - Using this affinity in games with 6CPU mode set in param.sfo causes init() to fail. - We now select 6 or 7 CPU affinity based on what sceKernelGetCpumode reports at runtime. #jira UE-41079 Change 3271197 on 2017/01/25 by Andrew.Rodham Sequencer: Ensure initial evaluation range correctly sets exclusive lower boundary for subsequent evaluations - This prevents us from erroneously evaluating the initial time twice as part of swept evaluations) #jira UE-40758 Change 3270386 on 2017/01/24 by tim.gautier Updated UMG_Blur to include second Low-Quality asset #jira UE-29618 Change 3270267 on 2017/01/24 by Arciel.Rekman Linux: fix not being able to run a packaged build (UE-37016, UE-39648). - Fixed expansion of paths with spaces in the bootstrap script. - Also increased the timeout since large projects can sometimes get killed on start. - Also killed spammy console output. #jira UE-37016 Change 3270203 on 2017/01/24 by Chris.Babcock Fixed issue with Mac and Linux install and uninstall scripts if ANDROID_HOME not set (contributed by nathansizemore) #jira UE-41042 #PR #3160 #ue4 #android Change 3270037 on 2017/01/24 by tim.gautier Checking in UMG_Blur for UMG test coverage #jira UE-29618 Change 3269829 on 2017/01/24 by matt.barnes Adding content for Material Attribute testing #jira UE-29618 Change 3269700 on 2017/01/24 by Josh.Stoddard force relink of PhysX libs #jira UE-39791 #rb ori.cohen #lockdown james.golding Change 3269621 on 2017/01/24 by Allan.Bentham Make sure 'intrinsic_GetHDR32bppEncodeModeES2()' reports no encoding mode when mobileHDR == false #jira UE-41023 Change 3269503 on 2017/01/24 by Josh.Stoddard Integrate PhysX change 3268008 from //UE4/Dev-Physics-Upgrade #jira UE-39791 #lockdown james.golding #rb josh.stoddard Change 3269359 on 2017/01/24 by Jack.Porter Fix for Web browser widget crash on Android when packaged for Distribution #jira UE-39451 Change 3269316 on 2017/01/24 by Thomas.Sarkanen Fixed non-unity issues with last change for UE-40945 #jira UE-40945 - Crash trying to import facial animations Change 3269047 on 2017/01/23 by Yannick.Lange VREditor: Fix VREditor Laser not hidden on MotionControllers with docked Menu/UI Panels #jira UE-40070 Change 3268824 on 2017/01/23 by Rolando.Caloca UE4.15 - Fix for right eye showing black on VR #jira UE-40900 Change 3268752 on 2017/01/23 by Nick.Whiting Fix for assertion for binding an MSAA'd scene color with a non-MSAA'd texture. #jira UE-39304 Change 3268722 on 2017/01/23 by Olaf.Piesche Replicating 3256329 #jira UE-38615 Removing unnecessary assert that fires when exporting emitters. Change 3268220 on 2017/01/23 by Nick.Whiting Adding in a new CVar (vr.SteamVR.UsePostPresentHandoff), which defaults to 0. When set to 0, we do NOT use the SteamVR PostPresentHandoff, which costs some performance GPU time. When 1, we use the call, and get some extra GPU performance. However, this call is NOT safe for scenes that have frame-behind GPU work, like SceneCapture components and Widget Components #jira UE-40570 Change 3268180 on 2017/01/23 by Marc.Audy PendingKill Actors will no longer register their components when the level is being loaded #jira UE-40505 Change 3268076 on 2017/01/23 by Matthew.Griffin Changed Mac SunTemple cook jobs to use Sample Editor to avoid errors about mismatched files #jira UE-40806 Change 3267997 on 2017/01/23 by Mitchell.Wilson Increased lightmap size on spheres in volumes example to resolve issue with lighting. Corrected misspelling in multiple examples and one UMG asset. #jira UE-40890 UE-40926 UE-40882 UE-40928 UE-40825 UE-40819 Change 3267892 on 2017/01/23 by Mitchell.Wilson Removed preview mesh on M_Bird_Inst that was referencing a static mesh that was removed or renamed to resolve warnings in CIS. #jira UE-40300 Change 3267866 on 2017/01/23 by Thomas.Sarkanen Prevented crash when using Facial Animation importer Also hid the feature behind an experiemental setting flag, as it is not ready for users yet. #jira UE-40945 - Crash trying to import facial animations Change 3267834 on 2017/01/23 by Nick.Darnell An addition to 3255247, this also adds input processing incrementing for double click, and preview mouse down. #jira UE-40313 Change 3267785 on 2017/01/23 by Marc.Audy Put proper line endings when modifying template files when installing feature pack #jira UE-40939 Change 3267761 on 2017/01/23 by Mitchell.Wilson Moved left landscape mesh slightly to hide a seam that can be seen when using VR and looking over the railing. #jira UE-40916 Change 3267632 on 2017/01/23 by Jurre.deBaare Marker syncs not working correctly in Blend Spaces #fix Ensure that SampleIndexWithMarkers is serialized #JIRA UE-40975 [CL 3287682 by Matthew Griffin in Main branch]
2017-02-06 10:41:38 -05:00
if (Capabilities.bSupportsRenderTargetFormat_PF_FloatRGBA || !IsMobileHDR())
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
{
AppendCString(GlslCode, "#define HDR_32BPP_ENCODE_MODE 0.0\n");
}
else
{
if (!Capabilities.bSupportsShaderFramebufferFetch)
{
// mosaic
AppendCString(GlslCode, "#define HDR_32BPP_ENCODE_MODE 1.0\n");
}
else
{
AppendCString(GlslCode, "#define HDR_32BPP_ENCODE_MODE 2.0\n");
}
}
Copying //UE4/Release-Staging-4.11 to //UE4/Main (Source: //UE4/Release-Staging-4.11 @ 2941426, //UE4/Release-4.11 @ 2927265) ========================== MAJOR FEATURES + CHANGES ========================== Change 2910079 on 2016/03/15 by Taizyd.Korambayil #jira UE-28293 Reworded some Sentences Change 2910157 on 2016/03/15 by Taizyd.Korambayil #jira UE-28240 Rebuilt Lighting for Sanctuary Change 2910317 on 2016/03/15 by Ben.Marsh Fix crash trying to print out a message explaining that you need to install the Visual Studio 2015 toolchain, if the Visual Studio 2015 toolchain is not installed! Change 2910425 on 2016/03/15 by Ori.Cohen Fix crash and incorrect behavior when setting physical material on a welded body. #JIRA UE-28399 #rb Marc.Audy Change 2910525 on 2016/03/15 by Ori.Cohen Fix player capsule not spawning at the right place due to float precision issues. #JIRA UE-28438 #rb Zak.Middleton Change 2910595 on 2016/03/15 by Chris.Babcock Fixed issue with missing event location paired with IE_Pressed if IE_DoubleClick generated #jira UE-28051 #ue4 #codereview Marc.Audy Change 2911442 on 2016/03/16 by Andrew.Rodham Sequencer: Fixed frame grabbers where hardware mapped surfaces to memory of a different stride #jira UE-28434 Change 2911596 on 2016/03/16 by andrew.porter Test content for blueprint vertex painting #jira UE-24473 Change 2911860 on 2016/03/16 by Jamie.Dale Allowed SViewport to (once again) be able to use non-pre-multiplied alpha blending SViewport now has an PreMultipliedAlpha argument (default true), which can control whether to use pre-multiplied alpha when blending is enabled (blending is disabled by default). Note: This is a change in behavior from 4.10, as non-pre-multiplied alpha blending used to be the default, but pre-multiplied alpha blending better supports the pipeline used through Slate. This change also cleans up the use of bool parameters in the FSlateDrawElement::MakeX functions to control the render behavior, instead favoring use of advanced ESlateDrawEffect flags. API Breaking Changes - FSlateDrawElement::MakeGradient no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInGammaCorrect bool, instead pass ESlateDrawEffect::NoGamma as part of InDrawEffects to disable gamma correction. - FSlateDrawElement::MakeViewport no longer takes a bInAllowBlending bool, instead pass ESlateDrawEffect::NoBlending as part of InDrawEffects to disable blending. #jira UE-26797 Change 2912345 on 2016/03/16 by Olaf.Piesche Removing the check that causes UE-28441, duplicating beam type data module from highest LOD in Cascade causes crash. The beam data module is the only one that explicitly checks to make sure it's always shared across LOD levels; there's no obvious reasons why duplicating beam data modules shouldn't be possible. #codereview simon.tovey #jira UE-28441 Change 2912526 on 2016/03/16 by Steve.Robb Fix uninitialized variables. #codereview robert.manuszewski #jira UE-28391 Change 2913114 on 2016/03/17 by Steve.Robb Fixed some private properties which caused UHT errors. #codereview robert.manuszewski #jira UE-28059 Change 2913295 on 2016/03/17 by Richard.TalbotWatkin Replicated from Dev-Editor CL 2913224 Disallow assets from being deleted if PIE is active. This prevents various troubles which can occur when PIE is referencing asset objects. #jira UE-12387 - [CrashReport] Crash when deleting assets needed for template #RB Nick.Darnell, Frank.Fella Change 2913310 on 2016/03/17 by Nick.Shin merging from //UE4/Dev-Platform to //UE4/Release-4.11 --- original commit CL: #2913300 message --- corrected VS 2015 websocket lib to look at the right offset it is currently a high risk change to just update the libwebsocket wholesale for release-4.11. this change is the most minimum invasive change with a lot of deep analysis (details will be put in jira: # UEPLAT-1221). this fix will also be pushed up to release-4.11 #jira UE-22166 - HTML5 Cook on the fly will launch and then close browser #jira UE-22513 - HTTP Network File System crashes randomly. #jira UE-28003 - Fail to QuickLaunch HTML5 through UnrealFrontEnd Change 2913593 on 2016/03/17 by Mark.Satterthwaite For non-debug builds silence the warning about no deth/stencil when shader writes to depth in MetalRHI - the RHI implementation will create a temporary D/S buffer to cope but really this needs to be properly addressed elsewhere. #jira UE-28491 Change 2913655 on 2016/03/17 by Taizyd.Korambayil #jira UE-28492 Rebuilt Lighting For the Samples Listed Change 2914025 on 2016/03/17 by Olaf.Piesche Make sure ST primitives are added to NST draw list if in shader complexity mode #codereview simon.tovey #jira UE-28471 Change 2914027 on 2016/03/17 by Nick.Shin [CL 2941462 by Ben Marsh in Main branch]
2016-04-12 17:04:39 -04:00
if (Capabilities.bRequiresARMShaderFramebufferFetchDepthStencilUndef && TypeEnum == GL_FRAGMENT_SHADER)
{
// This is to avoid a bug in Adreno drivers that define GL_ARM_shader_framebuffer_fetch_depth_stencil even when device does not support this extension
// OpenGL ES 3.1 V@127.0 (GIT@I1af360237c)
AppendCString(GlslCode, "#undef GL_ARM_shader_framebuffer_fetch_depth_stencil\n");
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
// This #define fixes compiler errors on Android (which doesn't seem to support textureCubeLodEXT)
if (Capabilities.bUseES30ShadingLanguage)
{
if (TypeEnum == GL_VERTEX_SHADER)
{
AppendCString(GlslCode,
"#define texture2D texture \n"
"#define texture2DProj textureProj \n"
"#define texture2DLod textureLod \n"
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
"#define texture2DLodEXT textureLod \n"
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
"#define texture2DProjLod textureProjLod \n"
"#define textureCube texture \n"
"#define textureCubeLod textureLod \n"
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
"#define textureCubeLodEXT textureLod \n"
"#define texture3D texture \n"
"#define texture3DProj textureProj \n"
"#define texture3DLod textureLod \n");
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
ReplaceCString(GlslCodeOriginal, "attribute", "in");
ReplaceCString(GlslCodeOriginal, "varying", "out");
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
else if (TypeEnum == GL_FRAGMENT_SHADER)
{
// #extension directives have to come before any non-# directives. Because
// we add non-# stuff below and the #extension directives
// get added to the incoming shader source we move any # directives
// to be right after the #version to ensure they are always correct.
MoveHashLines(GlslCode, GlslCodeOriginal);
AppendCString(GlslCode,
"#define texture2D texture \n"
"#define texture2DProj textureProj \n"
"#define texture2DLod textureLod \n"
"#define texture2DLodEXT textureLod \n"
"#define texture2DProjLod textureProjLod \n"
"#define textureCube texture \n"
"#define textureCubeLod textureLod \n"
"#define textureCubeLodEXT textureLod \n"
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
"#define texture3D texture \n"
"#define texture3DProj textureProj \n"
"#define texture3DLod textureLod \n"
"#define texture3DProjLod textureProjLod \n"
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
"\n"
"#define gl_FragColor out_FragColor \n"
"#ifdef EXT_shader_framebuffer_fetch_enabled \n"
"inout mediump vec4 out_FragColor; \n"
"#else \n"
"out mediump vec4 out_FragColor; \n"
"#endif \n");
ReplaceCString(GlslCodeOriginal, "varying", "in");
}
}
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
else
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
{
if (TypeEnum == GL_FRAGMENT_SHADER)
{
// Apply #defines to deal with incompatible sections of code
if (Capabilities.bRequiresDontEmitPrecisionForTextureSamplers)
{
AppendCString(GlslCode,
"#define DONTEMITSAMPLERDEFAULTPRECISION \n");
}
if (!Capabilities.bSupportsShaderTextureLod || !Capabilities.bSupportsShaderTextureCubeLod)
{
AppendCString(GlslCode,
"#define DONTEMITEXTENSIONSHADERTEXTURELODENABLE \n"
"#define texture2DLodEXT(a, b, c) texture2D(a, b) \n"
"#define textureCubeLodEXT(a, b, c) textureCube(a, b) \n");
}
else if (Capabilities.bRequiresTextureCubeLodEXTToTextureCubeLodDefine)
{
AppendCString(GlslCode,
"#define textureCubeLodEXT textureCubeLod \n");
}
// Deal with gl_FragCoord using one of the varying vectors and shader possibly exceeding the limit
if (Capabilities.bRequiresGLFragCoordVaryingLimitHack)
{
if (CStringCountOccurances(GlslCodeOriginal, "vec4 var_TEXCOORD") >= Capabilities.MaxVaryingVectors)
{
// It is likely gl_FragCoord is used for mosaic color output so use an appropriate constant
ReplaceCString(GlslCodeOriginal, "gl_FragCoord.xy", "vec2(400.5,240.5)");
}
}
if (Capabilities.bRequiresTexture2DPrecisionHack)
{
Copying //UE4/Dev-Mobile to Dev-Main (//UE4/Dev-Main) @2911599 #lockdown nick.penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2854295 on 2016/02/03 by Gareth.Martin@gareth.martin Added support for Landscape grass to use the landscape's light/shadow maps (original github pull request #1798 by Frugality) Change 2875167 on 2016/02/21 by Rolando.Caloca@Home_DM DM - glslang Change 2875650 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Common RHI changes Change 2876429 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Initial rhi check-in. Tappy & SunTemple working on PC. #codereview Jack.Porter, Chris.Babcock, Josh.Adams Change 2876665 on 2016/02/22 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Split Immediate command list off RHI Change 2881242 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream changes to exclude LPV shaders from Vulkan (reapplied with edit instead of integrate records) Change 2881356 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Static shadowing + dynamic-object CSM Change 2881359 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Mobile GPU particles Change 2881360 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Planar reflections very WIP Change 2881363 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream Separate Translucency very WIP Change 2881365 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream ProtoStar engine changes Change 2881371 on 2016/02/25 by Jack.Porter@Jack.Porter_UE4_Stream HACK for Max Texture Samplers hardcoded to 8 on ES2 Should be cleaned up better with UE-24419. Change 2884295 on 2016/02/26 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Integrate pipeline cache Change 2887043 on 2016/02/29 by Rolando.Caloca@Home_DM DM - Initial CCT support Change 2887572 on 2016/03/01 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Empty bound shader states cache - Only used currently on Vulkan Change 2889114 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Added GRHINeedsExtraDeletionLatency from 4.11 Change 2889115 on 2016/03/01 by Rolando.Caloca@Home_DM DM - Remove batched elements quads (was not been used at least since UE3!) Change 2895373 on 2016/03/04 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Fence mgr (disabled) Change 2898926 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Resource management (disabled) Change 2899937 on 2016/03/08 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Expand number of stencil op bits Change 2901132 on 2016/03/09 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Add support for more MaxSimultaneousRenderTargets Change 2903074 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Support for 3d staging textures Change 2903211 on 2016/03/10 by Jack.Porter@Jack.Porter_UE4_Stream Vulkan RHI stub for new SharedResourceView RHI call Change 2904014 on 2016/03/10 by Rolando.Caloca@rolando.caloca_T3903_DM DM - SM4 preq Change 2905389 on 2016/03/11 by Jack.Porter@Jack.Porter_UE4_Stream Android Vulkan support initial checkin Change 2908458 on 2016/03/14 by Allan.Bentham@Dev-Mobile Reinstate vertex fog, fixes UE-28166 Change 2910294 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Use fence manager Change 2910801 on 2016/03/15 by Rolando.Caloca@rolando.caloca_T3903_DM DM - Descriptor pool [CL 2912606 by Peter Sauerbrei in Main branch]
2016-03-16 21:16:51 -04:00
AppendCString(GlslCode, "#define TEXCOORDPRECISIONWORKAROUND \n");
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
}
}
}
}
}
else if (Capabilities.TargetPlatform == EOpenGLShaderTargetPlatform::OGLSTP_HTML5)
{
// HTML5 use case is much simpler, use a separate chunk of code from android.
if (!Capabilities.bSupportsShaderTextureLod)
{
AppendCString(GlslCode,
"#define DONTEMITEXTENSIONSHADERTEXTURELODENABLE \n"
"#define texture2DLodEXT(a, b, c) texture2D(a, b) \n"
"#define textureCubeLodEXT(a, b, c) textureCube(a, b) \n");
}
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3169859) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3134663 on 2016/09/21 by Chris.Bunner Merging Dev-MaterialLayers to Dev-Rendering, CL 3134208. Initial material attribute extensibility changes. #jira UE-34347 Change 3142292 on 2016/09/27 by Rolando.Caloca DR - hlslcc - Fix for warning X3206: implicit truncation of vector type causing error #jira UE-31438 Change 3143557 on 2016/09/28 by Rolando.Caloca DR - Back out changelist 3142292 Change 3145354 on 2016/09/29 by Benjamin.Hyder Updating Tm-ContactShadows Change 3154832 on 2016/10/07 by Rolando.Caloca DR - vk - Fix crash on framebuffers with missing textures Change 3154838 on 2016/10/07 by Rolando.Caloca DR - vk - Enable clip distance Change 3154840 on 2016/10/07 by Rolando.Caloca DR - Remove branch per codereview Change 3155118 on 2016/10/07 by Rolando.Caloca DR - vk - Compute pipeline fixes Change 3155129 on 2016/10/07 by Rolando.Caloca DR - Added draw events for reflection captures Change 3155167 on 2016/10/07 by Rolando.Caloca DR - Use shader clear for platforms that can't use viewport or scissor Change 3155168 on 2016/10/07 by Rolando.Caloca DR - vk - Added submit gpu - Some fixes for Geometry and Compute Change 3155595 on 2016/10/07 by Rolando.Caloca DR - vk - Use new render pass system Change 3155720 on 2016/10/07 by Rolando.Caloca DR - vk - static analysis fix Change 3155732 on 2016/10/07 by Rolando.Caloca DR - Fix clears for platforms that can't use viewports, excluderects or scissor on clear Change 3156787 on 2016/10/10 by Rolando.Caloca DR - Fix mem leaks Change 3156805 on 2016/10/10 by Rolando.Caloca DR - Improve check msg per licensee Change 3156815 on 2016/10/10 by Rolando.Caloca DR - Fix infinite recursion Change 3157041 on 2016/10/10 by Rolando.Caloca DR - vk - Fix key access from multiple threads Change 3158253 on 2016/10/11 by Rolando.Caloca DR - Fix comment #jira UE-37128 PR #2852 Change 3158606 on 2016/10/11 by Rolando.Caloca DR - vk - Accessors Change 3160418 on 2016/10/12 by Daniel.Wright Lightmap textures are now outered to UMapBuildDataRegistry so that the UMapBuildDataRegistry can be moved in the content browser Change 3160644 on 2016/10/12 by Arne.Schober DR - [UE-32613] - OpenGL used to have custom code in the compiler to modify the source so that the same data and matricies can be used as DirectX, unfortunately that causes precission problem. Fortunately there is an extension available (glClipControl) which enables DirectX behaviour in OpenGL and it is widely supported. We only tested Linux and Windows and therfore only default enable on those platforms. Change 3161219 on 2016/10/13 by Luke.Thatcher [RENDERING] [!] Fix incorrect shader used in GPU Benchmark causing crash in OpenGL. Change 3161838 on 2016/10/13 by Daniel.Wright Fixed level getting added to the dirty list twice when legacy lightmaps are present Change 3161884 on 2016/10/13 by Arne.Schober DR - Fix Mac and DCC build Change 3162206 on 2016/10/13 by Chris.Bunner Merging Dev-MaterialLayers to Dev-Rendering, CL 3161593: Material expressions; Trig, fast-trig, saturate, round, truncate, pre-skinned normal. Added CustomEyeTangent to material attributes. Resolved some hard-coded attribute typing and other minor fixes. Change 3162491 on 2016/10/13 by Chris.Bunner Merging Dev-MaterialLayers to Dev-Rendering, CL 3162397: More fixed type-casting on material attributes. Swapped compiler::forcecast booleans to flags (and fixed a regression). Change 3163266 on 2016/10/14 by Daniel.Wright Fixed sublevels with legacy lighting data being added to the dirty packages list redundantly Change 3163524 on 2016/10/14 by Mark.Satterthwaite Bring over specific changes from Unicorn branch that increases the size of shader optional data so that it is considerably more useful. Change 3163529 on 2016/10/14 by Mark.Satterthwaite Move the Metal shader source code and compilation path into the newly enlarged shader optional data. Change 3163553 on 2016/10/14 by Mark.Satterthwaite Speculative fix for FORT-31590 also seen by a licensee - the Metal command buffer handler will be called from a dispatch queue thread that won't be registered with the stats system. #jira FORT-31590 Change 3163562 on 2016/10/14 by Mark.Satterthwaite Tidy up and extend the Metal debugging options: - Added rhi.Metal.BufferScribble which when enabled will fill freed buffer regions with 0xCD to help identify any areas where we are writing to a buffer while it is still being processed on the GPU. - Added rhi.Metal.BufferZeroFill which will zero-fill newly allocated buffer regions before any other data is read/written. Useful for catching cases where we might be reading uninitialised memory. - Added rhi.Metal.ResourcePurgeOnDelete which will purge the backing store of resources prior to releasing them back to the system or the respective pool. This will make any use-after-free conditions much more likely. - Added rhi.Metal.ResourceDeferDeleteNumFrames to defer releasing resources to the system or the resource pool by the specified number of frames (in addition to the current policy of waiting for the current end of frame & command-buffer completion). Useful for tracking down resource lifetime errors. - Fixed a number of bugs related to the modifications to vertex stream handling and addition of the SetShaderBytes API. - Track the start & end of FRingBuffer ranges - it appeared that the ring-buffer usage was invalid but it was in fact only my assumptions about the range that needed to be scribbled for rhi.Metal.BufferScribble. There is still the possibility that command-buffers that are implicitly parallelised by the driver may cause the ring-buffer range tracking to go awry - but with our data dependencies and the separation of the async. compute context I don't believe this is likely. - Fix up the "nometalv2" flag so that we can disable the features only available on iOS/tvOS-10/macOS-10.12 on newer devices to save having to reboot all the time. - Fixed the flickering geometry when enabling rhi.Metal.RuntimeDebugLevel=4 which breaks render passes into separate command-buffers - the occlusion query was waiting on the wrong command buffer in this case. Change 3163752 on 2016/10/14 by Mark.Satterthwaite Add missing parenthesis to fix compile error on iOS. Change 3164151 on 2016/10/16 by Benjamin.Hyder Submitting TM-AutoLOD level to QAGame #jira UE-29618 Change 3164190 on 2016/10/16 by Uriel.Doyon Materials now hold texture streaming data in the form of (UV scale X UV channel) for each texture. This data can be disabled through "r.Streaming.UseMaterialData" Defined a common framework in MeshComponent for texture streaming, used by both StaticMeshes and SkeletalMeshes. Simplified component interface for using the texture streaming build framework. Removed intermediate texture streaming build data from the static mesh components. Fixed shader compilation errors with the decals (from merge with main). Change 3164636 on 2016/10/17 by Rolando.Caloca DR - vk - Fix validation spam Change 3164679 on 2016/10/17 by Arne.Schober DR - [OR-28457] Part1, Scene View Refactoring - Removed Previous VewMatrices from SceneInfo and pass in Previous and Current ViewMatrices into Uniform Buffer creation to uniform UseCase for Shadows and CustomDepth, Fixed a Bug in Shadows with help of Daniel where the SceneView was copied unnecessary copied again. Also simplified the code in that area. Change 3164705 on 2016/10/17 by Daniel.Wright When new levels are loaded, only the Indirect Lighting Cache Allocations intersecting the level's light probes are updated to minimize hitches. This optimization requires a lighting build to compute PrecomputedLightVolume bounds. Change 3164834 on 2016/10/17 by Daniel.Wright Support directional light dynamic shadows in any channel with forward shading, which can happen with multiple shadow casting stationary directional lights (even though only the lighting of one will appear) Change 3164870 on 2016/10/17 by Arne.Schober DR - [OR-28457] Part2, Custom Depth Jitter - Allowed to overwite the viewconstant buffer in the custom depth pass. There ia also a new Project Setting available. The default constructor of the ContextDataType has been explicitly deleted to enforce compile errors when the templated code like the StaticMeshDrawList accidently tries to create a context without ViewUniformBuffer. Change 3164949 on 2016/10/17 by Rolando.Caloca DR - vk - First version of pooled occlusion queries Change 3165100 on 2016/10/17 by Rolando.Caloca DR - vk - Added driver version for Nvidia. AMD doesn't have one yet. Change 3165160 on 2016/10/17 by Rolando.Caloca DR - vk - Fix for queries not ready Change 3165230 on 2016/10/17 by Rolando.Caloca DR - vk - More fixes for occlusion queries Change 3165839 on 2016/10/18 by Rolando.Caloca DR - hlslcc - Fix default parameters getting wrong values Change 3166029 on 2016/10/18 by Rolando.Caloca DR - Switch some clears to DrawClearQuad() Change 3166066 on 2016/10/18 by Mark.Satterthwaite Update ShaderVersion due to CL #3163524 Change 3166067 on 2016/10/18 by Mark.Satterthwaite Update Mac hlslcc for RCO's 3165839. Change 3166370 on 2016/10/18 by Brian.Karis Improved hair AA Change 3166389 on 2016/10/18 by Uriel.Doyon Fixed lightmap having bigger resolutions than the engine can handle #jira UE-34737 #review-3166193 @daniel.wright Change 3166495 on 2016/10/18 by Rolando.Caloca DR - vk - Fix occlusion queries Change 3166516 on 2016/10/18 by Arne.Schober DR - Fix shaderbuild issue Change 3166650 on 2016/10/18 by Rolando.Caloca DR - vk - Enable GRHISupportsFirstInstance Change 3166799 on 2016/10/18 by Arne.Schober DR - [OR-28508] - The velocity Rendering pass was missing the adjustment for the PDO Change 3167855 on 2016/10/19 by Rolando.Caloca DR - vk - Implemented texture streaming Change 3168365 on 2016/10/19 by Rolando.Caloca DR - Fix static analysis Change 3168405 on 2016/10/19 by Mark.Satterthwaite Fix the optional shader data changes from Unicorn to prevent FindOptionalData from erronesouly testing against the trailing optional data size, which can match the tag for optional data entries if you are unlucky. #jira UE-37489 Change 3169467 on 2016/10/20 by Arne.Schober DR - UE-28039 - Fixed flickering cached shadows on dynamic objects: Adding preshadows whose depths are cached so that GatherDynamicMeshElements will still happen, which is necessary for preshadow receiver stenciling. Change 3169478 on 2016/10/20 by Arne.Schober DR - UE-28039 - missing comment Change 3169845 on 2016/10/20 by Arne.Schober DR - UE-35937 - readd Merged out check Change 3169859 on 2016/10/20 by Rolando.Caloca DR - vk - Stop popping up dialog on every run as the device name in the API doesn't match our driver database [CL 3170066 by Marcus Wassmer in Main branch]
2016-10-20 20:09:22 -04:00
if (FOpenGL::SupportsClipControl())
{
AppendCString(GlslCode, "#define HLSLCC_DX11ClipSpace 0 \n");
}
else
{
AppendCString(GlslCode, "#define HLSLCC_DX11ClipSpace 1 \n");
}
// Append the possibly edited shader to the one we will compile.
// This is to make it easier to debug as we can see the whole
// shader source.
AppendCString(GlslCode, "\n\n");
AppendCString(GlslCode, GlslCodeOriginal.GetData());
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2867947) ========================== MAJOR FEATURES + CHANGES ========================== Change 2858603 on 2016/02/08 by Tim.Hobson #jira UE-26550 - checked in new art assets for buttons and symbols Change 2858665 on 2016/02/08 by Taizyd.Korambayil #jira UE-25797 Added TextureLODSettings for Ipad Mini set all LODBias to 2. Change 2858668 on 2016/02/08 by Matthew.Griffin Added InfiltratorDemo back into Rocket samples #jira UEB-591 Change 2858743 on 2016/02/08 by Taizyd.Korambayil #jira UE-25996 Fixed Import Error in TopDOwn Code Change 2858776 on 2016/02/08 by Matthew.Griffin Added UnrealMatch3 to packaged projects #jira UEB-589 Change 2858900 on 2016/02/08 by Taizyd.Korambayil #jira UE-15234 Switched all Mask Textures to use the (Mask,No sRGB) Compression Change 2858947 on 2016/02/08 by Mike.Beach Controlling more when VerifyImport() is ran - trying to prevent Verify() from running when DeferDependencyLoads is on, and instead trying to fully verify every import upfront (where it's meant to happen) before serializing in the package's contents (to alleviate cyclic dependency complications). #jira UE-21098 Change 2858954 on 2016/02/08 by Taizyd.Korambayil #jira UE-25524 Resaved Sound Assets to Fix NodeGuid Warnings Change 2859126 on 2016/02/08 by Max.Chen Sequencer: Release track editors when destroying sequencer #jira UE-26423 Change 2859147 on 2016/02/08 by Martin.Wilson Fix uninitialized variable bug #jira UE-26606 Change 2859237 on 2016/02/08 by Lauren.Ridge Bumping Match 3 Version Number for iTunes Connect #jira UE-26648 Change 2859434 on 2016/02/08 by Chad.Taylor Handle the quit and focus message pipe from the SteamVR SDK #jira UEBP-142 Change 2859562 on 2016/02/08 by Chad.Taylor Mac/Android compile fix #jira UEBP-142 Change 2859633 on 2016/02/08 by Dan.Oconnor Transaction buffer uniformly address subobjects and SCS created components via an array of names and a root object. This allows undo/redo to work reliably to any depth of object hierarchy. Removed FReferencedObject and replaced it with the robust FPersistentObjectRef. DefaultSubObjects of the CDO are now tagged as RF_Archetype at construction (logic in PropertyHandleImpl.cpp probably no longer required) Actors reinstanced due to blueprint compilation now have stable names, so that this name can be used to reference their subobjects. This is also part of the fix needed for UE-23335, completely fixes UE-26045 This version of the fix is less aggressive about searching all the way up an object's outer chain before stopping. Fixes issues with parts of outer chain changing on PIE. Also doesn't add objects referenced by subobject name to any AddReference calls which fixes race conditions with GC. Also fixes bad logic in CopyPropertiesForUnrelatedObjects, which would create copies of subobjects that already existed because we were populating the ReferenceReplacementMap before adding all existing subobjects (always components in this case) #jira UE-26045 Change 2859640 on 2016/02/08 by Dan.Oconnor Removed debugging code.. #jira UE-26045 Change 2859668 on 2016/02/08 by Aaron.McLeran #jira UE-26503 A Mixer with a Concatenator node won't loop with a Looping node - issue was the looping nodes weren't properly reseting all the child wave instances - also looping nodes weren't reporting the correct GetNumSounds() count for use with sequencer node Change 2859688 on 2016/02/08 by Chris.Babcock Allow external access to runtime modifications to OpenGL shaders #jira UE-26679 #ue4 Change 2859739 on 2016/02/08 by Chad.Taylor UE4_Win64_Mono compile fix #jira UEBP-142 Change 2859962 on 2016/02/09 by Chris.Wood Passing command line to Crash Report Client without stripping the project name. [UE-24959] - "Send and Restart" brings up the Project Browser #jira UE-24959 Reimplement changes from Orion in UE 4.11 Reimplementing the command line logging filtering over from Dev-Core (same change as CL 2821359 that moved this change into Orion) Reimplementing passing full command line to Crash Report Client (same change as CL 2858617 in Orion) Change 2859966 on 2016/02/09 by Matthew.Griffin Fixed shadow variable issue that was causing build failure in NonUnity mode on Mac [CL 2873884 by Ben Marsh in Main branch]
2016-02-19 13:49:13 -05:00
}
/**
* Helper for constructing strings of the form XXXXX##.
* @param Str - The string to build.
* @param Offset - Offset into the string at which to set the number.
* @param Index - Number to set. Must be in the range [0,100).
*/
static ANSICHAR* SetIndex(ANSICHAR* Str, int32 Offset, int32 Index)
{
check(Index >= 0 && Index < 100);
Str += Offset;
if (Index >= 10)
{
*Str++ = '0' + (ANSICHAR)(Index / 10);
}
*Str++ = '0' + (ANSICHAR)(Index % 10);
*Str = '\0';
return Str;
}
FVertexShaderRHIRef FOpenGLDynamicRHI::RHICreateVertexShader(const TArray<uint8>& Code)
{
return CompileOpenGLShader<FOpenGLVertexShader>(Code);
}
FPixelShaderRHIRef FOpenGLDynamicRHI::RHICreatePixelShader(const TArray<uint8>& Code)
{
return CompileOpenGLShader<FOpenGLPixelShader>(Code);
}
FGeometryShaderRHIRef FOpenGLDynamicRHI::RHICreateGeometryShader(const TArray<uint8>& Code)
{
return CompileOpenGLShader<FOpenGLGeometryShader>(Code);
}
FHullShaderRHIRef FOpenGLDynamicRHI::RHICreateHullShader(const TArray<uint8>& Code)
{
check(GMaxRHIFeatureLevel >= ERHIFeatureLevel::SM5);
return CompileOpenGLShader<FOpenGLHullShader>(Code);
}
FDomainShaderRHIRef FOpenGLDynamicRHI::RHICreateDomainShader(const TArray<uint8>& Code)
{
check(GMaxRHIFeatureLevel >= ERHIFeatureLevel::SM5);
return CompileOpenGLShader<FOpenGLDomainShader>(Code);
}
FGeometryShaderRHIRef FOpenGLDynamicRHI::RHICreateGeometryShaderWithStreamOutput(const TArray<uint8>& Code, const FStreamOutElementList& ElementList, uint32 NumStrides, const uint32* Strides, int32 RasterizedStream)
{
UE_LOG(LogRHI, Fatal,TEXT("OpenGL Render path does not support stream output!"));
return NULL;
}
static void MarkShaderParameterCachesDirty(FOpenGLShaderParameterCache* ShaderParameters, bool UpdateCompute)
{
const int32 StageStart = UpdateCompute ? CrossCompiler::SHADER_STAGE_COMPUTE : CrossCompiler::SHADER_STAGE_VERTEX;
const int32 StageEnd = UpdateCompute ? CrossCompiler::NUM_SHADER_STAGES : CrossCompiler::NUM_NON_COMPUTE_SHADER_STAGES;
for (int32 Stage = StageStart; Stage < StageEnd; ++Stage)
{
ShaderParameters[Stage].MarkAllDirty();
}
}
void FOpenGLDynamicRHI::BindUniformBufferBase(FOpenGLContextState& ContextState, int32 NumUniformBuffers, FUniformBufferRHIRef* BoundUniformBuffers, uint32 FirstUniformBuffer, bool ForceUpdate)
{
SCOPE_CYCLE_COUNTER_DETAILED(STAT_OpenGLUniformBindTime);
checkSlow(IsInRenderingThread());
for (int32 BufferIndex = 0; BufferIndex < NumUniformBuffers; ++BufferIndex)
{
GLuint Buffer = 0;
uint32 Offset = 0;
uint32 Size = ZERO_FILLED_DUMMY_UNIFORM_BUFFER_SIZE;
int32 BindIndex = FirstUniformBuffer + BufferIndex;
if (IsValidRef(BoundUniformBuffers[BufferIndex]))
{
FRHIUniformBuffer* UB = BoundUniformBuffers[BufferIndex].GetReference();
Buffer = ((FOpenGLUniformBuffer*)UB)->Resource;
Size = ((FOpenGLUniformBuffer*)UB)->GetSize();
#if SUBALLOCATED_CONSTANT_BUFFER
Offset = ((FOpenGLUniformBuffer*)UB)->Offset;
#endif
}
else
{
if (PendingState.ZeroFilledDummyUniformBuffer == 0)
{
void* ZeroBuffer = FMemory::Malloc(ZERO_FILLED_DUMMY_UNIFORM_BUFFER_SIZE);
FMemory::Memzero(ZeroBuffer,ZERO_FILLED_DUMMY_UNIFORM_BUFFER_SIZE);
FOpenGL::GenBuffers(1, &PendingState.ZeroFilledDummyUniformBuffer);
check(PendingState.ZeroFilledDummyUniformBuffer != 0);
CachedBindUniformBuffer(ContextState,PendingState.ZeroFilledDummyUniformBuffer);
glBufferData(GL_UNIFORM_BUFFER, ZERO_FILLED_DUMMY_UNIFORM_BUFFER_SIZE, ZeroBuffer, GL_STATIC_DRAW);
FMemory::Free(ZeroBuffer);
IncrementBufferMemory(GL_UNIFORM_BUFFER, false, ZERO_FILLED_DUMMY_UNIFORM_BUFFER_SIZE);
}
Buffer = PendingState.ZeroFilledDummyUniformBuffer;
}
if (ForceUpdate || (Buffer != 0 && ContextState.UniformBuffers[BindIndex] != Buffer)|| ContextState.UniformBufferOffsets[BindIndex] != Offset)
{
FOpenGL::BindBufferRange(GL_UNIFORM_BUFFER, BindIndex, Buffer, Offset, Size);
ContextState.UniformBuffers[BindIndex] = Buffer;
ContextState.UniformBufferOffsets[BindIndex] = Offset;
ContextState.UniformBufferBound = Buffer; // yes, calling glBindBufferRange also changes uniform buffer binding.
}
}
}
// ============================================================================================================================
struct FOpenGLUniformName
{
FOpenGLUniformName()
{
FMemory::Memzero(Buffer);
}
ANSICHAR Buffer[10];
friend bool operator ==(const FOpenGLUniformName& A,const FOpenGLUniformName& B)
{
return FMemory::Memcmp(A.Buffer, B.Buffer, sizeof(A.Buffer)) == 0;
}
friend uint32 GetTypeHash(const FOpenGLUniformName &Key)
{
return FCrc::MemCrc32(Key.Buffer, sizeof(Key.Buffer));
}
};
static TMap<GLuint, TMap<FOpenGLUniformName, int64>>& GetOpenGLUniformBlockLocations()
{
static TMap<GLuint, TMap<FOpenGLUniformName, int64>> UniformBlockLocations;
return UniformBlockLocations;
}
static TMap<GLuint, TMap<int64, int64>>& GetOpenGLUniformBlockBindings()
{
static TMap<GLuint, TMap<int64, int64>> UniformBlockBindings;
return UniformBlockBindings;
}
static GLuint GetOpenGLProgramUniformBlockIndex(GLuint Program, const FOpenGLUniformName& UniformBlockName)
{
TMap<FOpenGLUniformName, int64>& Locations = GetOpenGLUniformBlockLocations().FindOrAdd(Program);
int64* Location = Locations.Find(UniformBlockName);
if(Location)
{
return *Location;
}
else
{
int64& Loc = Locations.Emplace(UniformBlockName);
Loc = (int64)FOpenGL::GetUniformBlockIndex(Program, UniformBlockName.Buffer);
return Loc;
}
}
static void GetOpenGLProgramUniformBlockBinding(GLuint Program, GLuint UniformBlockIndex, GLuint UniformBlockBinding)
{
TMap<int64, int64>& Bindings = GetOpenGLUniformBlockBindings().FindOrAdd(Program);
int64* Bind = static_cast<int64 *>(Bindings.Find(UniformBlockIndex));
if(!Bind)
{
Bind = &(Bindings.Emplace(UniformBlockIndex));
check(Bind);
*Bind = -1;
}
check(Bind);
if(*Bind != static_cast<int64>(UniformBlockBinding))
{
*Bind = static_cast<int64>(UniformBlockBinding);
FOpenGL::UniformBlockBinding(Program, UniformBlockIndex, UniformBlockBinding);
}
}
// ============================================================================================================================
class FOpenGLLinkedProgram
{
public:
FOpenGLLinkedProgramConfiguration Config;
struct FPackedUniformInfo
{
GLint Location;
uint8 ArrayType; // OGL_PACKED_ARRAYINDEX_TYPE
uint8 Index; // OGL_PACKED_INDEX_TYPE
};
// Holds information needed per stage regarding packed uniform globals and uniform buffers
struct FStagePackedUniformInfo
{
// Packed Uniform Arrays (regular globals); array elements per precision/type
TArray<FPackedUniformInfo> PackedUniformInfos;
// Packed Uniform Buffers; outer array is per Uniform Buffer; inner array is per precision/type
TArray<TArray<FPackedUniformInfo>> PackedUniformBufferInfos;
// Holds the unique ID of the last uniform buffer uploaded to the program; since we don't reuse uniform buffers
// (can't modify existing ones), we use this as a check for dirty/need to mem copy on Mobile
TArray<uint32> LastEmulatedUniformBufferSet;
};
FStagePackedUniformInfo StagePackedUniformInfo[CrossCompiler::NUM_SHADER_STAGES];
GLuint Program;
bool bUsingTessellation;
bool bDrawn;
TBitArray<> TextureStageNeeds;
TBitArray<> UAVStageNeeds;
int32 MaxTextureStage;
TArray<FOpenGLBindlessSamplerInfo> Samplers;
FOpenGLLinkedProgram()
: Program(0), bUsingTessellation(false), bDrawn(false), MaxTextureStage(-1)
{
TextureStageNeeds.Init( false, FOpenGL::GetMaxCombinedTextureImageUnits() );
UAVStageNeeds.Init( false, OGL_MAX_COMPUTE_STAGE_UAV_UNITS );
}
~FOpenGLLinkedProgram()
{
check(Program);
FOpenGL::DeleteProgramPipelines(1, &Program);
if (!FOpenGL::SupportsSeparateShaderObjects())
{
GetOpenGLUniformBlockLocations().Remove(Program);
GetOpenGLUniformBlockBindings().Remove(Program);
}
}
// Rebind the uniform blocks when changing the separable shader pipeline as different stages will have different uniform block arrangements. Does nothing for non-separable GLs.
void VerifyUniformBlockBindings( int Stage, uint32 FirstUniformBuffer );
void ConfigureShaderStage( int Stage, uint32 FirstUniformBuffer );
// Make sure GlobalArrays (created from shader reflection) matches our info (from the cross compiler)
static inline void SortPackedUniformInfos(const TArray<FPackedUniformInfo>& ReflectedUniformInfos, const TArray<CrossCompiler::FPackedArrayInfo>& PackedGlobalArrays, TArray<FPackedUniformInfo>& OutPackedUniformInfos)
{
check(OutPackedUniformInfos.Num() == 0);
OutPackedUniformInfos.Empty(PackedGlobalArrays.Num());
for (int32 Index = 0; Index < PackedGlobalArrays.Num(); ++Index)
{
auto& PackedArray = PackedGlobalArrays[Index];
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
FPackedUniformInfo OutInfo = {-1, PackedArray.TypeName, CrossCompiler::PACKED_TYPEINDEX_MAX};
// Find this Global Array in the reflection list
for (int32 FindIndex = 0; FindIndex < ReflectedUniformInfos.Num(); ++FindIndex)
{
auto& ReflectedInfo = ReflectedUniformInfos[FindIndex];
if (ReflectedInfo.ArrayType == PackedArray.TypeName)
{
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
OutInfo = ReflectedInfo;
break;
}
}
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
OutPackedUniformInfos.Add(OutInfo);
}
}
};
typedef TMap<FOpenGLLinkedProgramConfiguration,FOpenGLLinkedProgram*> FOpenGLProgramsForReuse;
static FOpenGLProgramsForReuse& GetOpenGLProgramsCache()
{
static FOpenGLProgramsForReuse ProgramsCache;
return ProgramsCache;
}
// This short queue preceding released programs cache is here because usually the programs are requested again
// very shortly after they're released, so looking through recently released programs first provides tangible
// performance improvement.
#define LAST_RELEASED_PROGRAMS_CACHE_COUNT 10
static FOpenGLLinkedProgram* StaticLastReleasedPrograms[LAST_RELEASED_PROGRAMS_CACHE_COUNT] = { 0 };
static int32 StaticLastReleasedProgramsIndex = 0;
// ============================================================================================================================
static int32 CountSetBits(const TBitArray<>& Array)
{
int32 Result = 0;
for (TBitArray<>::FConstIterator BitIt(Array); BitIt; ++BitIt)
{
Result += BitIt.GetValue();
}
return Result;
}
void FOpenGLLinkedProgram::VerifyUniformBlockBindings( int Stage, uint32 FirstUniformBuffer )
{
if ( FOpenGL::SupportsSeparateShaderObjects() && FOpenGL::SupportsUniformBuffers() )
{
FOpenGLUniformName Name;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3054480) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3045482 on 2016/07/11 by Zabir.Hoque DX12 Quries need to individually track their syncpoints. Only when resolving a query on the same frame should be stall. Change 3045929 on 2016/07/12 by Simon.Tovey Removing some deprecated node types from Niagara Change 3045951 on 2016/07/12 by Ben.Woodhouse D3D11 Log detailed live device info on shutdown if the debug layer is enabled (including resource types) Change 3046019 on 2016/07/12 by Chris.Bunner Fixed typo in material input name. #jira UE-5575 Change 3046053 on 2016/07/12 by Rolando.Caloca DR - Fix GL4 shutdown #jira UE-32799 Change 3046055 on 2016/07/12 by Rolando.Caloca DR - vk - Fix NumInstances=0 Change 3046063 on 2016/07/12 by Rolando.Caloca DR - vk - Added flat to uint layouts per glslang - Fix bad extension on dumped shaders Change 3046067 on 2016/07/12 by Rolando.Caloca DR - vk - Fix check when not using color RT - Added queue submit & present counters Change 3046088 on 2016/07/12 by Ben.Woodhouse Live GPU stats A non-hierarchical realtime high level GPU profiler with support for cumulative stat recording. Stats are added with SCOPED_GPU_STAT macros, e.g. SCOPED_GPU_STAT(RHICmdList, Stat_GPU_Distortion) The bulk of the files in this change are simply instrumentation for the renderer. The core changes are in SceneUtils.cpp/h and D3D11Query.cpp (this is the XB1/DX11X implementation of timestamp RHI queries, which was missing) Note: this is currently disabled by default. Enable with the cvar r.gpustatsenabled Tested on PC, XB1, PS4 Change 3046128 on 2016/07/12 by Olaf.Piesche Max draw distance and fade range for lights, requested by JonL Change 3046183 on 2016/07/12 by Ben.Woodhouse PR #2532: Fix SSAO being applied in unlit viewmode (Contributed by nick-penwarden) Change 3046223 on 2016/07/12 by Luke.Thatcher Fix Scene Cube Captures. SceneCaptureSource flag on the ViewFamily was not set for cube components. #jira UE-32345 Change 3046228 on 2016/07/12 by Marc.Olano Add Voronoi noise to Noise material node. Four versions with differing speed/quality levels accessed through the Quality value in the material node. Tooltips give estimates of the cost of each. Also includes spiffy new Rand3DPCG16 and Rand3DPCG32 int3 to int3 hash functions, and a 20% improvement on the computed gradient noise. Change 3046269 on 2016/07/12 by Rolando.Caloca DR - Skip flush on RHIDiscardRenderTargets and only use it on platforms that need it (ie OpenGL) Change 3046294 on 2016/07/12 by Rolando.Caloca DR - Fix static analyisis warning C6326: Potential comparison of a constant with another constant. Change 3046295 on 2016/07/12 by Rolando.Caloca DR - Fix the previous fix Change 3046731 on 2016/07/12 by Marc.Olano Fix typo in shader random number constant: repeated extra digit made it too big. Change 3046796 on 2016/07/12 by Uriel.Doyon The texture streaming manager now keeps a set of all valid textures. This is used to prevent from indirecting deleted memory upon SetTexturesRemovedTimestamp. #jira UE-33048 Change 3046800 on 2016/07/12 by Rolando.Caloca DR - vk - Added create image & renderpass dump Change 3046845 on 2016/07/12 by John.Billon Forgot to apply MaxGPUSkinBones Cvar access changes in a few locations. Change 3047023 on 2016/07/12 by Olaf.Piesche Niagara: -a bit of cleanup -now store and double buffer attributes individually, eliminating unnecessary copy of unused attributes -removed FNiagaraConstantMap, replaced with an instance of FNiagaraConstants -some code simplification -removed some deprecated structs and code used only by old content Change 3047052 on 2016/07/12 by Zabir.Hoque Unshelved from pending changelist '3044062': PR #2588: Adding blend mode BLEND_AlphaComposite (4.12) (Contributed by moritz-wundke) Change 3047727 on 2016/07/13 by Luke.Thatcher Fix Scene Capture Components only updating every other frame. #jira UE-32581 Change 3047919 on 2016/07/13 by Olaf.Piesche CMask decode, use in deferred decals, for PS4 Change 3047921 on 2016/07/13 by Uriel.Doyon "Build Texture Streaming" will now remove duplicate error msg when computing texcoord scales. Also, several texture messages are packed on the same line if they relate to the same material. Change 3047952 on 2016/07/13 by Rolando.Caloca DR - vk - Initial prep pass for separating combined images & samplers Change 3048648 on 2016/07/13 by Marcus.Wassmer Fix rare GPU hang when asynctexture reallocs would overlap with EndFrame Change 3049058 on 2016/07/13 by Rolando.Caloca DR - vk - timestamps Change 3049725 on 2016/07/14 by Marcus.Wassmer Fix autosdk bug where not having a platform directory sync'd at all would break manual SDK detection Change 3049742 on 2016/07/14 by Rolando.Caloca DR - Fix warning Change 3049902 on 2016/07/14 by Rolando.Caloca DR - Fix typo Change 3050345 on 2016/07/14 by Olaf.Piesche UE-23925 Clamping noise tessellation for beams at a high but sensible value; also making sure during beam index buffer building that we never get over 2^16 indices; this is a bit hokey, but there are so many variables that can influence triangle/index count, that this is the only way to be sure (short of nuking the entire site from orbit). Change 3050409 on 2016/07/14 by Olaf.Piesche Replicating 3049049; missing break and check for active particles when resolving a source point to avoid a potential crash Change 3050809 on 2016/07/14 by Rolando.Caloca DR - vk - Remove redundant validation layers Change 3051319 on 2016/07/15 by Ben.Woodhouse Fix for world space camera position not being exposed in decal pixel shaders; also fixes decal lighting missing spec and reflection The fix was to calculate ResolvedView at the top of the shader. Previously this was not initialized #jira UE-31976 Change 3051692 on 2016/07/15 by Rolando.Caloca DR - vk - Enable RHI thread by default Change 3052103 on 2016/07/15 by Uriel.Doyon Disabled depth offset in depth only pixel shaders when using debug view shaders (to prevent Z fighting). #jira UE-32765 Change 3052140 on 2016/07/15 by Rolando.Caloca DR - vk - Fix shader snafu Change 3052495 on 2016/07/15 by Rolando.Caloca DR - Fix for Win32 compile #jira UE-33349 Change 3052536 on 2016/07/15 by Uriel.Doyon Fixed texture streaming overbudget warning when using per texture bias. [CL 3054554 by Gil Gribb in Main branch]
2016-07-18 17:17:08 -04:00
Name.Buffer[0] = CrossCompiler::ShaderStageIndexToTypeName(Stage);
Name.Buffer[1] = 'b';
GLuint StageProgram = Config.Shaders[Stage].Resource;
for (int32 BufferIndex = 0; BufferIndex < Config.Shaders[Stage].Bindings.NumUniformBuffers; ++BufferIndex)
{
SetIndex(Name.Buffer, 2, BufferIndex);
GLint Location = GetOpenGLProgramUniformBlockIndex(StageProgram, Name);
if (Location >= 0)
{
GetOpenGLProgramUniformBlockBinding(StageProgram, Location, FirstUniformBuffer + BufferIndex);
}
}
}
}
void FOpenGLLinkedProgram::ConfigureShaderStage( int Stage, uint32 FirstUniformBuffer )
{
static const GLint FirstTextureUnit[CrossCompiler::NUM_SHADER_STAGES] =
{
FOpenGL::GetFirstVertexTextureUnit(),
FOpenGL::GetFirstPixelTextureUnit(),
FOpenGL::GetFirstGeometryTextureUnit(),
FOpenGL::GetFirstHullTextureUnit(),
FOpenGL::GetFirstDomainTextureUnit(),
FOpenGL::GetFirstComputeTextureUnit()
};
static const GLint FirstUAVUnit[CrossCompiler::NUM_SHADER_STAGES] =
{
OGL_UAV_NOT_SUPPORTED_FOR_GRAPHICS_UNIT,
OGL_UAV_NOT_SUPPORTED_FOR_GRAPHICS_UNIT,
OGL_UAV_NOT_SUPPORTED_FOR_GRAPHICS_UNIT,
OGL_UAV_NOT_SUPPORTED_FOR_GRAPHICS_UNIT,
OGL_UAV_NOT_SUPPORTED_FOR_GRAPHICS_UNIT,
FOpenGL::GetFirstComputeUAVUnit()
};
// verify that only CS uses UAVs
check((Stage != CrossCompiler::SHADER_STAGE_COMPUTE) ? (CountSetBits(UAVStageNeeds) == 0) : true);
SCOPE_CYCLE_COUNTER(STAT_OpenGLShaderBindParameterTime);
VERIFY_GL_SCOPE();
FOpenGLUniformName Name;
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3054480) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3045482 on 2016/07/11 by Zabir.Hoque DX12 Quries need to individually track their syncpoints. Only when resolving a query on the same frame should be stall. Change 3045929 on 2016/07/12 by Simon.Tovey Removing some deprecated node types from Niagara Change 3045951 on 2016/07/12 by Ben.Woodhouse D3D11 Log detailed live device info on shutdown if the debug layer is enabled (including resource types) Change 3046019 on 2016/07/12 by Chris.Bunner Fixed typo in material input name. #jira UE-5575 Change 3046053 on 2016/07/12 by Rolando.Caloca DR - Fix GL4 shutdown #jira UE-32799 Change 3046055 on 2016/07/12 by Rolando.Caloca DR - vk - Fix NumInstances=0 Change 3046063 on 2016/07/12 by Rolando.Caloca DR - vk - Added flat to uint layouts per glslang - Fix bad extension on dumped shaders Change 3046067 on 2016/07/12 by Rolando.Caloca DR - vk - Fix check when not using color RT - Added queue submit & present counters Change 3046088 on 2016/07/12 by Ben.Woodhouse Live GPU stats A non-hierarchical realtime high level GPU profiler with support for cumulative stat recording. Stats are added with SCOPED_GPU_STAT macros, e.g. SCOPED_GPU_STAT(RHICmdList, Stat_GPU_Distortion) The bulk of the files in this change are simply instrumentation for the renderer. The core changes are in SceneUtils.cpp/h and D3D11Query.cpp (this is the XB1/DX11X implementation of timestamp RHI queries, which was missing) Note: this is currently disabled by default. Enable with the cvar r.gpustatsenabled Tested on PC, XB1, PS4 Change 3046128 on 2016/07/12 by Olaf.Piesche Max draw distance and fade range for lights, requested by JonL Change 3046183 on 2016/07/12 by Ben.Woodhouse PR #2532: Fix SSAO being applied in unlit viewmode (Contributed by nick-penwarden) Change 3046223 on 2016/07/12 by Luke.Thatcher Fix Scene Cube Captures. SceneCaptureSource flag on the ViewFamily was not set for cube components. #jira UE-32345 Change 3046228 on 2016/07/12 by Marc.Olano Add Voronoi noise to Noise material node. Four versions with differing speed/quality levels accessed through the Quality value in the material node. Tooltips give estimates of the cost of each. Also includes spiffy new Rand3DPCG16 and Rand3DPCG32 int3 to int3 hash functions, and a 20% improvement on the computed gradient noise. Change 3046269 on 2016/07/12 by Rolando.Caloca DR - Skip flush on RHIDiscardRenderTargets and only use it on platforms that need it (ie OpenGL) Change 3046294 on 2016/07/12 by Rolando.Caloca DR - Fix static analyisis warning C6326: Potential comparison of a constant with another constant. Change 3046295 on 2016/07/12 by Rolando.Caloca DR - Fix the previous fix Change 3046731 on 2016/07/12 by Marc.Olano Fix typo in shader random number constant: repeated extra digit made it too big. Change 3046796 on 2016/07/12 by Uriel.Doyon The texture streaming manager now keeps a set of all valid textures. This is used to prevent from indirecting deleted memory upon SetTexturesRemovedTimestamp. #jira UE-33048 Change 3046800 on 2016/07/12 by Rolando.Caloca DR - vk - Added create image & renderpass dump Change 3046845 on 2016/07/12 by John.Billon Forgot to apply MaxGPUSkinBones Cvar access changes in a few locations. Change 3047023 on 2016/07/12 by Olaf.Piesche Niagara: -a bit of cleanup -now store and double buffer attributes individually, eliminating unnecessary copy of unused attributes -removed FNiagaraConstantMap, replaced with an instance of FNiagaraConstants -some code simplification -removed some deprecated structs and code used only by old content Change 3047052 on 2016/07/12 by Zabir.Hoque Unshelved from pending changelist '3044062': PR #2588: Adding blend mode BLEND_AlphaComposite (4.12) (Contributed by moritz-wundke) Change 3047727 on 2016/07/13 by Luke.Thatcher Fix Scene Capture Components only updating every other frame. #jira UE-32581 Change 3047919 on 2016/07/13 by Olaf.Piesche CMask decode, use in deferred decals, for PS4 Change 3047921 on 2016/07/13 by Uriel.Doyon "Build Texture Streaming" will now remove duplicate error msg when computing texcoord scales. Also, several texture messages are packed on the same line if they relate to the same material. Change 3047952 on 2016/07/13 by Rolando.Caloca DR - vk - Initial prep pass for separating combined images & samplers Change 3048648 on 2016/07/13 by Marcus.Wassmer Fix rare GPU hang when asynctexture reallocs would overlap with EndFrame Change 3049058 on 2016/07/13 by Rolando.Caloca DR - vk - timestamps Change 3049725 on 2016/07/14 by Marcus.Wassmer Fix autosdk bug where not having a platform directory sync'd at all would break manual SDK detection Change 3049742 on 2016/07/14 by Rolando.Caloca DR - Fix warning Change 3049902 on 2016/07/14 by Rolando.Caloca DR - Fix typo Change 3050345 on 2016/07/14 by Olaf.Piesche UE-23925 Clamping noise tessellation for beams at a high but sensible value; also making sure during beam index buffer building that we never get over 2^16 indices; this is a bit hokey, but there are so many variables that can influence triangle/index count, that this is the only way to be sure (short of nuking the entire site from orbit). Change 3050409 on 2016/07/14 by Olaf.Piesche Replicating 3049049; missing break and check for active particles when resolving a source point to avoid a potential crash Change 3050809 on 2016/07/14 by Rolando.Caloca DR - vk - Remove redundant validation layers Change 3051319 on 2016/07/15 by Ben.Woodhouse Fix for world space camera position not being exposed in decal pixel shaders; also fixes decal lighting missing spec and reflection The fix was to calculate ResolvedView at the top of the shader. Previously this was not initialized #jira UE-31976 Change 3051692 on 2016/07/15 by Rolando.Caloca DR - vk - Enable RHI thread by default Change 3052103 on 2016/07/15 by Uriel.Doyon Disabled depth offset in depth only pixel shaders when using debug view shaders (to prevent Z fighting). #jira UE-32765 Change 3052140 on 2016/07/15 by Rolando.Caloca DR - vk - Fix shader snafu Change 3052495 on 2016/07/15 by Rolando.Caloca DR - Fix for Win32 compile #jira UE-33349 Change 3052536 on 2016/07/15 by Uriel.Doyon Fixed texture streaming overbudget warning when using per texture bias. [CL 3054554 by Gil Gribb in Main branch]
2016-07-18 17:17:08 -04:00
Name.Buffer[0] = CrossCompiler::ShaderStageIndexToTypeName(Stage);
GLuint StageProgram = FOpenGL::SupportsSeparateShaderObjects() ? Config.Shaders[Stage].Resource : Program;
// Bind Global uniform arrays (vu_h, pu_i, etc)
{
Name.Buffer[1] = 'u';
Name.Buffer[2] = '_';
Name.Buffer[3] = 0;
Name.Buffer[4] = 0;
TArray<FPackedUniformInfo> PackedUniformInfos;
for (uint8 Index = 0; Index < CrossCompiler::PACKED_TYPEINDEX_MAX; ++Index)
{
uint8 ArrayIndexType = CrossCompiler::PackedTypeIndexToTypeName(Index);
Name.Buffer[3] = ArrayIndexType;
GLint Location = glGetUniformLocation(StageProgram, Name.Buffer);
if ((int32)Location != -1)
{
FPackedUniformInfo Info = {Location, ArrayIndexType, Index};
PackedUniformInfos.Add(Info);
}
}
SortPackedUniformInfos(PackedUniformInfos, Config.Shaders[Stage].Bindings.PackedGlobalArrays, StagePackedUniformInfo[Stage].PackedUniformInfos);
}
// Bind uniform buffer packed arrays (vc0_h, pc2_i, etc)
{
Name.Buffer[1] = 'c';
Name.Buffer[2] = 0;
Name.Buffer[3] = 0;
Name.Buffer[4] = 0;
Name.Buffer[5] = 0;
Name.Buffer[6] = 0;
for (uint8 UB = 0; UB < Config.Shaders[Stage].Bindings.NumUniformBuffers; ++UB)
{
TArray<FPackedUniformInfo> PackedBuffers;
ANSICHAR* Str = SetIndex(Name.Buffer, 2, UB);
*Str++ = '_';
Str[1] = 0;
for (uint8 Index = 0; Index < CrossCompiler::PACKED_TYPEINDEX_MAX; ++Index)
{
uint8 ArrayIndexType = CrossCompiler::PackedTypeIndexToTypeName(Index);
Str[0] = ArrayIndexType;
GLint Location = glGetUniformLocation(StageProgram, Name.Buffer);
if ((int32)Location != -1)
{
FPackedUniformInfo Info = {Location, ArrayIndexType, Index};
PackedBuffers.Add(Info);
}
}
StagePackedUniformInfo[Stage].PackedUniformBufferInfos.Add(PackedBuffers);
}
}
// Reserve and setup Space for Emulated Uniform Buffers
StagePackedUniformInfo[Stage].LastEmulatedUniformBufferSet.Empty(Config.Shaders[Stage].Bindings.NumUniformBuffers);
StagePackedUniformInfo[Stage].LastEmulatedUniformBufferSet.AddZeroed(Config.Shaders[Stage].Bindings.NumUniformBuffers);
// Bind samplers.
Name.Buffer[1] = 's';
Name.Buffer[2] = 0;
Name.Buffer[3] = 0;
Name.Buffer[4] = 0;
int32 LastFoundIndex = -1;
for (int32 SamplerIndex = 0; SamplerIndex < Config.Shaders[Stage].Bindings.NumSamplers; ++SamplerIndex)
{
SetIndex(Name.Buffer, 2, SamplerIndex);
GLint Location = glGetUniformLocation(StageProgram, Name.Buffer);
if (Location == -1)
{
if (LastFoundIndex != -1)
{
// It may be an array of samplers. Get the initial element location, if available, and count from it.
SetIndex(Name.Buffer, 2, LastFoundIndex);
int32 OffsetOfArraySpecifier = (LastFoundIndex>9)?4:3;
int32 ArrayIndex = SamplerIndex-LastFoundIndex;
Name.Buffer[OffsetOfArraySpecifier] = '[';
ANSICHAR* EndBracket = SetIndex(Name.Buffer, OffsetOfArraySpecifier+1, ArrayIndex);
*EndBracket++ = ']';
*EndBracket = 0;
Location = glGetUniformLocation(StageProgram, Name.Buffer);
}
}
else
{
LastFoundIndex = SamplerIndex;
}
if (Location != -1)
{
if ( OpenGLConsoleVariables::bBindlessTexture == 0 || !FOpenGL::SupportsBindlessTexture())
{
// Non-bindless, setup the unit info
FOpenGL::ProgramUniform1i(StageProgram, Location, FirstTextureUnit[Stage] + SamplerIndex);
TextureStageNeeds[ FirstTextureUnit[Stage] + SamplerIndex ] = true;
MaxTextureStage = FMath::Max( MaxTextureStage, FirstTextureUnit[Stage] + SamplerIndex);
}
else
{
//Bindless, save off the slot information
FOpenGLBindlessSamplerInfo Info;
Info.Handle = Location;
Info.Slot = FirstTextureUnit[Stage] + SamplerIndex;
Samplers.Add(Info);
}
}
}
// Bind UAVs/images.
Name.Buffer[1] = 'i';
Name.Buffer[2] = 0;
Name.Buffer[3] = 0;
Name.Buffer[4] = 0;
int32 LastFoundUAVIndex = -1;
for (int32 UAVIndex = 0; UAVIndex < Config.Shaders[Stage].Bindings.NumUAVs; ++UAVIndex)
{
SetIndex(Name.Buffer, 2, UAVIndex);
GLint Location = glGetUniformLocation(StageProgram, Name.Buffer);
if (Location == -1)
{
if (LastFoundUAVIndex != -1)
{
// It may be an array of UAVs. Get the initial element location, if available, and count from it.
SetIndex(Name.Buffer, 2, LastFoundUAVIndex);
int32 OffsetOfArraySpecifier = (LastFoundUAVIndex>9)?4:3;
int32 ArrayIndex = UAVIndex-LastFoundUAVIndex;
Name.Buffer[OffsetOfArraySpecifier] = '[';
ANSICHAR* EndBracket = SetIndex(Name.Buffer, OffsetOfArraySpecifier+1, ArrayIndex);
*EndBracket++ = ']';
*EndBracket = '\0';
Location = glGetUniformLocation(StageProgram, Name.Buffer);
}
}
else
{
LastFoundUAVIndex = UAVIndex;
}
if (Location != -1)
{
// compute shaders have layout(binding) for images
// glUniform1i(Location, FirstUAVUnit[Stage] + UAVIndex);
UAVStageNeeds[ FirstUAVUnit[Stage] + UAVIndex ] = true;
}
}
// Bind uniform buffers.
if (FOpenGL::SupportsUniformBuffers())
{
Name.Buffer[1] = 'b';
Name.Buffer[2] = 0;
Name.Buffer[3] = 0;
Name.Buffer[4] = 0;
for (int32 BufferIndex = 0; BufferIndex < Config.Shaders[Stage].Bindings.NumUniformBuffers; ++BufferIndex)
{
SetIndex(Name.Buffer, 2, BufferIndex);
GLint Location = GetOpenGLProgramUniformBlockIndex(StageProgram, Name);
if (Location >= 0)
{
GetOpenGLProgramUniformBlockBinding(StageProgram, Location, FirstUniformBuffer + BufferIndex);
}
}
}
}
#if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
#define ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097 1
/*
As of CL 1862097 uniform buffer names are mangled to avoid collisions between variables referenced
in different shaders of the same program
layout(std140) uniform _vb0
{
#define View View_vb0
anon_struct_0000 View;
};
layout(std140) uniform _vb1
{
#define Primitive Primitive_vb1
anon_struct_0001 Primitive;
};
*/
struct UniformData
{
UniformData(uint32 InOffset, uint32 InArrayElements)
: Offset(InOffset)
, ArrayElements(InArrayElements)
{
}
uint32 Offset;
uint32 ArrayElements;
bool operator == (const UniformData& RHS) const
{
return Offset == RHS.Offset && ArrayElements == RHS.ArrayElements;
}
bool operator != (const UniformData& RHS) const
{
return !(*this == RHS);
}
};
#if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
static void VerifyUniformLayout(const FString& BlockName, const TCHAR* UniformName, const UniformData& GLSLUniform)
#else
static void VerifyUniformLayout(const TCHAR* UniformName, const UniformData& GLSLUniform)
#endif //#if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
{
static TMap<FString, UniformData> Uniforms;
if(!Uniforms.Num())
{
for (TLinkedList<FUniformBufferStruct*>::TIterator StructIt(FUniformBufferStruct::GetStructList()); StructIt; StructIt.Next())
{
#if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
UE_LOG(LogRHI, Log, TEXT("UniformBufferStruct %s %s %d"),
StructIt->GetStructTypeName(),
StructIt->GetShaderVariableName(),
StructIt->GetSize()
);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
const TArray<FUniformBufferStruct::FMember>& StructMembers = StructIt->GetMembers();
for(int32 MemberIndex = 0;MemberIndex < StructMembers.Num();++MemberIndex)
{
const FUniformBufferStruct::FMember& Member = StructMembers[MemberIndex];
FString BaseTypeName;
switch(Member.GetBaseType())
{
case UBMT_STRUCT: BaseTypeName = TEXT("struct"); break;
case UBMT_BOOL: BaseTypeName = TEXT("bool"); break;
case UBMT_INT32: BaseTypeName = TEXT("int"); break;
case UBMT_UINT32: BaseTypeName = TEXT("uint"); break;
case UBMT_FLOAT32: BaseTypeName = TEXT("float"); break;
case UBMT_TEXTURE: BaseTypeName = TEXT("texture"); break;
case UBMT_SAMPLER: BaseTypeName = TEXT("sampler"); break;
default: UE_LOG(LogShaders, Fatal,TEXT("Unrecognized uniform buffer struct member base type."));
};
#if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
UE_LOG(LogRHI, Log, TEXT(" +%d %s%dx%d %s[%d]"),
Member.GetOffset(),
*BaseTypeName,
Member.GetNumRows(),
Member.GetNumColumns(),
Member.GetName(),
Member.GetNumElements()
);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
FString CompositeName = FString(StructIt->GetShaderVariableName()) + TEXT("_") + Member.GetName();
// GLSL returns array members with a "[0]" suffix
if(Member.GetNumElements())
{
CompositeName += TEXT("[0]");
}
check(!Uniforms.Contains(CompositeName));
Uniforms.Add(CompositeName, UniformData(Member.GetOffset(), Member.GetNumElements()));
}
}
}
#if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
/* unmangle the uniform name by stripping the block name from it
layout(std140) uniform _vb0
{
#define View View_vb0
anon_struct_0000 View;
};
*/
FString RequestedUniformName(UniformName);
RequestedUniformName = RequestedUniformName.Replace(*BlockName, TEXT(""));
if(RequestedUniformName.StartsWith(TEXT(".")))
{
RequestedUniformName = RequestedUniformName.RightChop(1);
}
#else
FString RequestedUniformName = UniformName;
#endif
const UniformData* FoundUniform = Uniforms.Find(RequestedUniformName);
// MaterialTemplate uniform buffer does not have an entry in the FUniformBufferStructs list, so skipping it here
if(!(RequestedUniformName.StartsWith("Material_") || RequestedUniformName.StartsWith("MaterialCollection")))
{
if(!FoundUniform || (*FoundUniform != GLSLUniform))
{
UE_LOG(LogRHI, Fatal, TEXT("uniform buffer member %s in the GLSL source doesn't match it's declaration in it's FUniformBufferStruct"), *RequestedUniformName);
}
}
}
static void VerifyUniformBufferLayouts(GLuint Program)
{
GLint NumBlocks = 0;
glGetProgramiv(Program, GL_ACTIVE_UNIFORM_BLOCKS, &NumBlocks);
#if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
UE_LOG(LogRHI, Log, TEXT("program %d has %d uniform blocks"), Program, NumBlocks);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
for(GLint BlockIndex = 0; BlockIndex < NumBlocks; ++BlockIndex)
{
const GLsizei BufferSize = 256;
char Buffer[BufferSize] = {0};
GLsizei Length = 0;
GLint ActiveUniforms = 0;
GLint BlockBytes = 0;
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS, &ActiveUniforms);
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_DATA_SIZE, &BlockBytes);
glGetActiveUniformBlockName(Program, BlockIndex, BufferSize, &Length, Buffer);
#if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
FString BlockName(Buffer);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
FString ReferencedBy;
{
GLint ReferencedByVS = 0;
GLint ReferencedByPS = 0;
GLint ReferencedByGS = 0;
GLint ReferencedByHS = 0;
GLint ReferencedByDS = 0;
GLint ReferencedByCS = 0;
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER, &ReferencedByVS);
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER, &ReferencedByPS);
#ifdef GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER, &ReferencedByGS);
#endif
if (GMaxRHIFeatureLevel >= ERHIFeatureLevel::SM5)
{
#ifdef GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER, &ReferencedByHS);
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER, &ReferencedByDS);
#endif
#ifdef GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER, &ReferencedByCS);
#endif
}
if(ReferencedByVS) {ReferencedBy += TEXT("V");}
if(ReferencedByHS) {ReferencedBy += TEXT("H");}
if(ReferencedByDS) {ReferencedBy += TEXT("D");}
if(ReferencedByGS) {ReferencedBy += TEXT("G");}
if(ReferencedByPS) {ReferencedBy += TEXT("P");}
if(ReferencedByCS) {ReferencedBy += TEXT("C");}
}
#if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
UE_LOG(LogRHI, Log, TEXT(" [%d] uniform block (%s) = %s, %d active uniforms, %d bytes {"),
BlockIndex,
*ReferencedBy,
ANSI_TO_TCHAR(Buffer),
ActiveUniforms,
BlockBytes
);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
if(ActiveUniforms)
{
// the other TArrays copy construct this to get the proper array size
TArray<GLint> ActiveUniformIndices;
ActiveUniformIndices.Init(ActiveUniforms);
glGetActiveUniformBlockiv(Program, BlockIndex, GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES, ActiveUniformIndices.GetData());
TArray<GLint> ActiveUniformOffsets(ActiveUniformIndices);
glGetActiveUniformsiv(Program, ActiveUniforms, reinterpret_cast<const GLuint*>(ActiveUniformIndices.GetData()), GL_UNIFORM_OFFSET, ActiveUniformOffsets.GetData());
TArray<GLint> ActiveUniformSizes(ActiveUniformIndices);
glGetActiveUniformsiv(Program, ActiveUniforms, reinterpret_cast<const GLuint*>(ActiveUniformIndices.GetData()), GL_UNIFORM_SIZE, ActiveUniformSizes.GetData());
TArray<GLint> ActiveUniformTypes(ActiveUniformIndices);
glGetActiveUniformsiv(Program, ActiveUniforms, reinterpret_cast<const GLuint*>(ActiveUniformIndices.GetData()), GL_UNIFORM_TYPE, ActiveUniformTypes.GetData());
TArray<GLint> ActiveUniformArrayStrides(ActiveUniformIndices);
glGetActiveUniformsiv(Program, ActiveUniforms, reinterpret_cast<const GLuint*>(ActiveUniformIndices.GetData()), GL_UNIFORM_ARRAY_STRIDE, ActiveUniformArrayStrides.GetData());
extern const TCHAR* GetGLUniformTypeString( GLint UniformType );
for(GLint i = 0; i < ActiveUniformIndices.Num(); ++i)
{
const GLint UniformIndex = ActiveUniformIndices[i];
GLsizei Size = 0;
GLenum Type = 0;
glGetActiveUniform(Program, UniformIndex , BufferSize, &Length, &Size, &Type, Buffer);
#if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
UE_LOG(LogRHI, Log, TEXT(" [%d] +%d %s %s %d elements %d array stride"),
UniformIndex,
ActiveUniformOffsets[i],
GetGLUniformTypeString(ActiveUniformTypes[i]),
ANSI_TO_TCHAR(Buffer),
ActiveUniformSizes[i],
ActiveUniformArrayStrides[i]
);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_DUMP
const UniformData GLSLUniform
(
ActiveUniformOffsets[i],
ActiveUniformArrayStrides[i] > 0 ? ActiveUniformSizes[i] : 0 // GLSL has 1 as array size for non-array uniforms, but FUniformBufferStruct assumes 0
);
#if ENABLE_UNIFORM_BUFFER_LAYOUT_NAME_MANGLING_CL1862097
VerifyUniformLayout(BlockName, ANSI_TO_TCHAR(Buffer), GLSLUniform);
#else
VerifyUniformLayout(ANSI_TO_TCHAR(Buffer), GLSLUniform);
#endif
}
}
}
}
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
/**
* Link vertex and pixel shaders in to an OpenGL program.
*/
static FOpenGLLinkedProgram* LinkProgram( const FOpenGLLinkedProgramConfiguration& Config)
{
ANSICHAR Buf[32] = {0};
SCOPE_CYCLE_COUNTER(STAT_OpenGLShaderLinkTime);
VERIFY_GL_SCOPE();
// ensure that compute shaders are always alone
check( (Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource == 0) != (Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource == 0));
check( (Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Resource == 0) != (Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource == 0));
GLuint Program = 0;
FOpenGL::GenProgramPipelines(1, &Program);
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
bool bShouldLinkProgram = true;
if (FOpenGLProgramBinaryCache::IsEnabled())
{
// Try to create program from a saved binary
bShouldLinkProgram = !FOpenGLProgramBinaryCache::UseCachedProgram(Program, Config);
if (bShouldLinkProgram)
{
// In case there is no saved binary in the cache, compile required shaders we have deferred before
FOpenGLProgramBinaryCache::CompilePendingShaders(Config);
}
}
if (bShouldLinkProgram)
{
if (Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource)
{
FOpenGL::UseProgramStages(Program, GL_VERTEX_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Resource)
{
FOpenGL::UseProgramStages(Program, GL_FRAGMENT_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Resource);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Resource)
{
FOpenGL::UseProgramStages(Program, GL_GEOMETRY_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Resource);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_HULL].Resource)
{
FOpenGL::UseProgramStages(Program, GL_TESS_CONTROL_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_HULL].Resource);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN].Resource)
{
FOpenGL::UseProgramStages(Program, GL_TESS_EVALUATION_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN].Resource);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource)
{
FOpenGL::UseProgramStages(Program, GL_COMPUTE_SHADER_BIT, Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource);
}
if( !FOpenGL::SupportsSeparateShaderObjects() )
{
// E.g. GLSL_430 uses layout(location=xx) instead of having to call glBindAttribLocation and glBindFragDataLocation
if (OpenGLShaderPlatformNeedsBindLocation(GMaxRHIShaderPlatform))
{
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// Bind attribute indices.
if (Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource)
{
auto& VertexBindings = Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings;
BindShaderLocations(GL_VERTEX_SHADER, Program, VertexBindings.InOutMask, VertexBindings.VertexAttributeRemap);
}
// Bind frag data locations.
if (Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Resource)
{
BindShaderLocations(GL_FRAGMENT_SHADER, Program, Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Bindings.InOutMask);
}
}
// Link.
glLinkProgram(Program);
if (FOpenGLProgramBinaryCache::IsEnabled())
{
FOpenGLProgramBinaryCache::CacheProgram(Program, Config);
}
}
}
if (!VerifyProgramPipeline(Program))
{
return nullptr;
}
FOpenGL::BindProgramPipeline(Program);
FOpenGLLinkedProgram* LinkedProgram = new FOpenGLLinkedProgram;
LinkedProgram->Config = Config;
LinkedProgram->Program = Program;
LinkedProgram->bUsingTessellation = Config.Shaders[CrossCompiler::SHADER_STAGE_HULL].Resource && Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN].Resource;
if (Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_VERTEX,
OGL_FIRST_UNIFORM_BUFFER
);
check(LinkedProgram->StagePackedUniformInfo[CrossCompiler::SHADER_STAGE_VERTEX].PackedUniformInfos.Num() <= Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings.PackedGlobalArrays.Num());
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_PIXEL,
OGL_FIRST_UNIFORM_BUFFER +
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings.NumUniformBuffers
);
check(LinkedProgram->StagePackedUniformInfo[CrossCompiler::SHADER_STAGE_PIXEL].PackedUniformInfos.Num() <= Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Bindings.PackedGlobalArrays.Num());
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_GEOMETRY,
OGL_FIRST_UNIFORM_BUFFER +
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Bindings.NumUniformBuffers
);
check(LinkedProgram->StagePackedUniformInfo[CrossCompiler::SHADER_STAGE_GEOMETRY].PackedUniformInfos.Num() <= Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Bindings.PackedGlobalArrays.Num());
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_HULL].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_HULL,
OGL_FIRST_UNIFORM_BUFFER +
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Bindings.NumUniformBuffers
);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_DOMAIN,
OGL_FIRST_UNIFORM_BUFFER +
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY].Bindings.NumUniformBuffers +
Config.Shaders[CrossCompiler::SHADER_STAGE_HULL].Bindings.NumUniformBuffers
);
}
if (Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource)
{
LinkedProgram->ConfigureShaderStage(
CrossCompiler::SHADER_STAGE_COMPUTE,
OGL_FIRST_UNIFORM_BUFFER
);
check(LinkedProgram->StagePackedUniformInfo[CrossCompiler::SHADER_STAGE_COMPUTE].PackedUniformInfos.Num() <= Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Bindings.PackedGlobalArrays.Num());
}
#if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
VerifyUniformBufferLayouts(Program);
#endif // #if ENABLE_UNIFORM_BUFFER_LAYOUT_VERIFICATION
return LinkedProgram;
}
FComputeShaderRHIRef FOpenGLDynamicRHI::RHICreateComputeShader(const TArray<uint8>& Code)
{
check(GMaxRHIFeatureLevel >= ERHIFeatureLevel::SM5);
FOpenGLComputeShader* ComputeShader = CompileOpenGLShader<FOpenGLComputeShader>(Code);
const ANSICHAR* GlslCode = NULL;
if (!ComputeShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
GlslCode = ComputeShader->GlslCodeString;
#endif
ComputeShader->bSuccessfullyCompiled = VerifyCompiledShader(ComputeShader->Resource, GlslCode);
}
check( ComputeShader != 0);
// @todo WARNING: We have to hash here because of the way we immediately link and don't afford the cache a chance to set the OutputHash from ShaderCore.
if (FShaderCache::GetShaderCache())
{
FSHAHash Hash;
FSHA1::HashBuffer(Code.GetData(), Code.Num(), Hash.Hash);
ComputeShader->SetHash(Hash);
}
FOpenGLLinkedProgramConfiguration Config;
Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Resource = ComputeShader->Resource;
Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Hash = ComputeShader->GetHash();
Config.Shaders[CrossCompiler::SHADER_STAGE_COMPUTE].Bindings = ComputeShader->Bindings;
ComputeShader->LinkedProgram = LinkProgram( Config );
if (ComputeShader->LinkedProgram == NULL)
{
#if DEBUG_GL_SHADERS
if (ComputeShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Compute Shader:\n%s"),ANSI_TO_TCHAR(ComputeShader->GlslCode.GetData()));
}
#endif //DEBUG_GL_SHADERS
checkf(ComputeShader->LinkedProgram, TEXT("Compute shader failed to compile & link."));
}
return ComputeShader;
}
template<class TOpenGLStage>
static FString GetShaderStageSource(TOpenGLStage* Shader)
{
FString Source;
#if DEBUG_GL_SHADERS
Source = Shader->GlslCodeString;
#else
GLsizei NumShaders = 0;
glGetProgramiv(Shader->Resource, GL_ATTACHED_SHADERS, (GLint*)&NumShaders);
if(NumShaders > 0)
{
GLuint* Shaders = (GLuint*)alloca(sizeof(GLuint)*NumShaders);
glGetAttachedShaders(Shader->Resource, NumShaders, &NumShaders, Shaders);
for(int32 i = 0; i < NumShaders; i++)
{
GLint Len = 0;
glGetShaderiv(Shaders[i], GL_SHADER_SOURCE_LENGTH, &Len);
if(Len > 0)
{
ANSICHAR* Code = new ANSICHAR[Len + 1];
glGetShaderSource(Shaders[i], Len + 1, &Len, Code);
Source += Code;
delete [] Code;
}
}
}
#endif
return Source;
}
// ============================================================================================================================
struct FOpenGLShaderVaryingMapping
{
FAnsiCharArray Name;
int32 WriteLoc;
int32 ReadLoc;
};
typedef TMap<FOpenGLLinkedProgramConfiguration,FOpenGLLinkedProgramConfiguration::ShaderInfo> FOpenGLSeparateShaderObjectCache;
static FOpenGLSeparateShaderObjectCache& GetOpenGLSeparateShaderObjectCache()
{
static FOpenGLSeparateShaderObjectCache SeparateShaderObjectCache;
return SeparateShaderObjectCache;
}
template<class TOpenGLStage0, class TOpenGLStage1>
static void BindShaderStage(FOpenGLLinkedProgramConfiguration::ShaderInfo& ShaderInfo, TOpenGLStage0* NextStage, FOpenGLLinkedProgramConfiguration::ShaderInfo& PrevInfo, TOpenGLStage1* PrevStage)
{
check(NextStage && PrevStage);
GLuint NextStageResource = NextStage->Resource;
FOpenGLShaderBindings NextStageBindings = NextStage->Bindings;
if ( FOpenGL::SupportsSeparateShaderObjects() )
{
FOpenGLLinkedProgramConfiguration Config;
Config.Shaders[0] = PrevInfo;
Config.Shaders[1] = ShaderInfo;
FOpenGLLinkedProgramConfiguration::ShaderInfo* PrevResource = GetOpenGLSeparateShaderObjectCache().Find(Config);
if(PrevResource)
{
PrevInfo.Bindings = PrevResource->Bindings;
PrevInfo.Resource = PrevResource->Resource;
}
else
{
FOpenGLShaderBindings& PrevStageBindings = PrevStage->Bindings;
TMap<FAnsiCharArray, int32> PrevStageVaryings;
for (int32 i = 0; i < PrevStageBindings.OutputVaryings.Num(); i++)
{
FAnsiCharArray Name = PrevStageBindings.OutputVaryings[i].Varying;
if ( Name.Num() >= 4 && (FCStringAnsi::Strncmp(Name.GetData(), "out_", 4) == 0 || FCStringAnsi::Strncmp(Name.GetData(), "var_", 4) == 0) )
{
Name.RemoveAt(0, 4);
}
PrevStageVaryings.Add(Name, PrevStageBindings.OutputVaryings[i].Location);
}
bool bInterpolatorMatches = true;
TMap<FAnsiCharArray, int32> NextStageVaryings;
TArray<FString> InputErrors;
TArray<FOpenGLShaderVaryingMapping> VaryingMapping;
for (int32 i = 0; i < NextStageBindings.InputVaryings.Num(); i++)
{
FAnsiCharArray Name = NextStageBindings.InputVaryings[i].Varying;
if ( Name.Num() >= 3 && FCStringAnsi::Strncmp(Name.GetData(), "in_", 3) == 0 )
{
Name.RemoveAt(0, 3);
}
if ( Name.Num() >= 4 && FCStringAnsi::Strncmp(Name.GetData(), "var_", 4) == 0 )
{
Name.RemoveAt(0, 4);
}
NextStageVaryings.Add(Name, NextStageBindings.InputVaryings[i].Location);
if( PrevStageVaryings.Contains(Name) )
{
int32& PrevLocation = PrevStageVaryings.FindChecked(Name);
if(PrevLocation != NextStageBindings.InputVaryings[i].Location)
{
if(PrevLocation >= 0 && NextStageBindings.InputVaryings[i].Location >= 0)
{
FOpenGLShaderVaryingMapping Pair;
Pair.Name = Name;
Pair.WriteLoc = PrevLocation;
Pair.ReadLoc = NextStageBindings.InputVaryings[i].Location;
VaryingMapping.Add(Pair);
UE_LOG(LogRHI,Warning,TEXT("Separate Shader Object Binding Warning: Input %s @ %d of stage 0x%x written by stage 0x%x at wrong location %d"), ANSI_TO_TCHAR(NextStageBindings.InputVaryings[i].Varying.GetData()), NextStageBindings.InputVaryings[i].Location, TOpenGLStage0::TypeEnum, TOpenGLStage1::TypeEnum, PrevLocation);
}
else if(NextStageBindings.InputVaryings[i].Location == -1)
{
InputErrors.Add(FString::Printf(TEXT("Separate Shader Object Binding Error: Input %s of stage 0x%x written by stage 0x%x at location %d, can't be rewritten."), ANSI_TO_TCHAR(NextStageBindings.InputVaryings[i].Varying.GetData()), TOpenGLStage0::TypeEnum, TOpenGLStage1::TypeEnum, PrevLocation));
}
else
{
InputErrors.Add(FString::Printf(TEXT("Separate Shader Object Binding Error: Input %s @ %d of stage 0x%x written by stage 0x%x without location, can't be rewritten."), ANSI_TO_TCHAR(NextStageBindings.InputVaryings[i].Varying.GetData()), NextStageBindings.InputVaryings[i].Location, TOpenGLStage0::TypeEnum, TOpenGLStage1::TypeEnum));
}
bInterpolatorMatches = false;
}
}
else
{
InputErrors.Add(FString::Printf(TEXT("Separate Shader Object Binding Error: Input %s @ %d of stage 0x%x not written by stage 0x%x"), ANSI_TO_TCHAR(NextStageBindings.InputVaryings[i].Varying.GetData()), NextStageBindings.InputVaryings[i].Location, TOpenGLStage0::TypeEnum, TOpenGLStage1::TypeEnum));
bInterpolatorMatches = false;
}
}
TArray<FOpenGLShaderVarying> OutputElimination;
for (int32 i = 0; i < PrevStageBindings.OutputVaryings.Num(); i++)
{
if ( PrevStageBindings.OutputVaryings[i].Location == -1 )
{
FAnsiCharArray Name = PrevStageBindings.OutputVaryings[i].Varying;
if ( Name.Num() >= 4 && (FCStringAnsi::Strncmp(Name.GetData(), "out_", 4) == 0 || FCStringAnsi::Strncmp(Name.GetData(), "var_", 4) == 0) )
{
Name.RemoveAt(0, 4);
}
if( !NextStageVaryings.Contains(Name) )
{
OutputElimination.Add(PrevStageBindings.OutputVaryings[i]);
UE_LOG(LogRHI,Warning,TEXT("Separate Shader Object Binding Warning: Named output %s of stage 0x%x not read by stage 0x%x"), ANSI_TO_TCHAR(PrevStageBindings.OutputVaryings[i].Varying.GetData()), TOpenGLStage1::TypeEnum, TOpenGLStage0::TypeEnum);
bInterpolatorMatches = false;
}
}
}
if(!bInterpolatorMatches)
{
if(InputErrors.Num() == 0)
{
FOpenGLCodeHeader Header;
Header.GlslMarker = 0x474c534c;
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 2996057) ========================== MAJOR FEATURES + CHANGES ========================== Change 2975196 on 2016/05/12 by Robert.Manuszewski Garbage Collector will no longer be responsible for generating class token stream, instead the token stream will be generated on startup or when a class has finished loading. - This way we can avoid very long GC times after new blueprints have been loaded. - Temporarily enabled CLASS_TokenStreamAssembled check in development builds (for testing purposes) Change 2993960 on 2016/05/30 by Robert.Manuszewski Fixing leaked linkers created by blocking load requests during async loading. Change 2959398 on 2016/04/28 by Steve.Robb TMap references are strong and cannot be nulled by pending kill. This makes references in values strong too, even though we only really care about keys, which will corrupt the map when nulled. #jira UE-20828 Change 2960723 on 2016/04/29 by Graeme.Thornton Fix for texture asset import data being ignored when async loaded Change 2960938 on 2016/04/29 by Robert.Manuszewski Nulling out sql db handle after closing it. Change 2967127 on 2016/05/05 by Steve.Robb Move constructors explicitly disabled in generated code. Change 2967143 on 2016/05/05 by Steve.Robb Static analysis fixes: warning C6326: Potential comparison of a constant with another constant. Change 2967164 on 2016/05/05 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer Change 2968650 on 2016/05/06 by Steve.Robb Fix for HotReload copying module manager. Change 2968915 on 2016/05/06 by Robert.Manuszewski Fixing spelling of SetImageIntegrityStatus function name. Change 2970406 on 2016/05/09 by Steve.Robb Static analysis fixes: Function uses '...' bytes of stack: exceeds /analyze:stacksize '81940'. Consider moving some data to heap. Change 2970419 on 2016/05/09 by Steve.Robb Static analysis fixes: warning C6326: Potential comparison of a constant with another constant. warning C6011: Dereferencing NULL pointer '...'. warning C6385: Reading invalid data from '...': the readable size is '...' bytes, but '...' bytes may be read. warning C6386: Buffer overrun while writing to '...': the writable size is '...' bytes, but '...' bytes might be written. Change 2970431 on 2016/05/09 by Steve.Robb Static analysis fixes: warning C6299: Explicitly comparing a bit field to a Boolean type will yield unexpected results. Change 2972032 on 2016/05/10 by Steven.Hutton Workflow fixes to bugg / crashgroup filtering. Filters should now correctly persist across queries. Change 2972085 on 2016/05/10 by Steve.Robb Const-correctness fix for FLogCategoryBase::IsSuppressed. Change 2972087 on 2016/05/10 by Steve.Robb ELogVerbosity moved into its own header. Change 2972090 on 2016/05/10 by Steve.Robb Redundant ensure removed. Change 2972103 on 2016/05/10 by Steve.Robb Removal of redundant use of USING_CODE_ANALYSIS. Change 2972139 on 2016/05/10 by Steve.Robb Fix for ensure macros throwing C6326 warnings during static analysis. Change 2972147 on 2016/05/10 by Steve.Robb Fix for UE_LOG_ACTIVE macro throwing C6326 warnings during static analysis. Change 2972162 on 2016/05/10 by Steve.Robb SCOPE_CYCLE_COUNTER_GUARD removed. Change 2972168 on 2016/05/10 by Steve.Robb Compile error fix for logOrEnsureNanError in static analysis builds. Change 2973084 on 2016/05/10 by Chris.Wood Crash Report Server performance tweak Change 2974030 on 2016/05/11 by Steve.Robb Fix for IPropertyHandle::SetValue - used to take a non-const reference to a const UObject*, now it takes const references to both non-const and const UObject*. Change 2974053 on 2016/05/11 by Steve.Robb Static analysis fixes: warning C6326: Potential comparison of a constant with another constant. Change 2974191 on 2016/05/11 by Steve.Robb Fix for template instantiation error in VS2013. Change 2975298 on 2016/05/12 by Steve.Robb Static analysis fixes: warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant. Change 2975318 on 2016/05/12 by Steve.Robb Fix for hot reload info being reported as warnings. #jira UE-30586 Change 2975447 on 2016/05/12 by Steve.Robb Static analysis fixes: warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant. warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator? warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Did you intend to use the bitwise-and operator? warning C6285: (<non-zero constant> || <non-zero constant>) is always a non-zero constant. Did you intend to use the bitwise-and operator? warning C6286: (<non-zero constant> || <expression>) is always a non-zero constant. <expression> is never evaluated and might have side effects. warning C6289: Incorrect operator: mutual exclusion over || is always a non-zero constant. Did you intend to use && instead? warning C6316: Incorrect operator: tested expression is constant and non-zero. Use bitwise-and to determine whether bits are set. Change 2975478 on 2016/05/12 by Steve.Robb Static analysis fixes for lots of redundant <zero constant> and <non-zero constant> warnings. Change 2975538 on 2016/05/12 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'StaticResource' Change 2976640 on 2016/05/13 by Robert.Manuszewski Fixing crashes caused by token stream generation changes. Making sure the token stream gets re-generated when a class gets re-linked. #jira UE-30675 Change 2978320 on 2016/05/16 by Steve.Robb Fix for static analysis warnings in XNA headers. Change 2978329 on 2016/05/16 by Steve.Robb Static analysis fixes: warning C6334: sizeof operator applied to an expression with an operator might yield unexpected results: Parentheses can be used to disambiguate certain usages. Change 2980222 on 2016/05/17 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X'. warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did. Change 2980458 on 2016/05/17 by Chris.Wood Attempt to fix crash report submission problems from CRP to CR website [UE-30257] - Crashreports are sometimes missing file attachments Passing crash GUID so that website can easily check for duplicates in future Increased request timeout for AddCrash to be longer than website database timeout Logging retries for future visibility CRP v.1.1.6 Change 2980639 on 2016/05/17 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'X'. warning C28182: Dereferencing NULL pointer. 'X' contains the same NULL value as 'Y' did. Change 2981750 on 2016/05/18 by Steve.Robb check()s in ContainerAllocationPolicies.h changed to checkSlow()s, as they only exist to check that the container has been written correctly. Change 2982106 on 2016/05/18 by John.Mahoney Fixed a crash caused by loading two stat capture files simultaneously in the profiler. If the user tries to load a capture file while another load is in progress, the previous load is now cancelled and cleaned up before proceeding with the new load. Made the delegates in FNewStatsReader explicitly specify which profiler instance they are loading data for, instead of relying on the current value of LoadConnection->InstanceId. This also fixes a crash that occurs when selecting a different capture file in the "Stats dump browser" pane of the profiler (after using Load Folder) while another file is still loading. Cleaned up some weak pointer usage in the profiler window. #jira UE-30741 Change 2983366 on 2016/05/19 by Steven.Hutton Changes for passing crash type directly from CRP to CRW. Change 2983394 on 2016/05/19 by Steven.Hutton Minor changes to add crash with more error reporting Change 2984685 on 2016/05/20 by Robert.Manuszewski Merging //UE4/Dev-Main @ 2984626 to Dev-Core (//UE4/Dev-Core) Change 2985143 on 2016/05/20 by Steve.Robb Missing semi-colons. Change 2986463 on 2016/05/23 by Steve.Robb CopyTemp added to make it clear that you want to make a copy (rather than a move, or an accidental copy) at the call site of a function taking rvalue refs. Change 2986475 on 2016/05/23 by Steve.Robb Static analysis fixes: warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and. Change 2986476 on 2016/05/23 by Steve.Robb Static analysis fixes: warning C6313: Incorrect operator: zero-valued flag cannot be tested with bitwise-and. Change 2986480 on 2016/05/23 by Steve.Robb Static analysis fixes: warning C6326: Potential comparison of a constant with another constant Change 2986515 on 2016/05/23 by Steve.Robb Static analysis fixes: warning C6340: Mismatch on sign: 'X' passed as _Param_(N) when some unsigned type is required in call to 'Func' Change 2986680 on 2016/05/23 by Steve.Robb Static analysis fixes: warning C6386: Buffer overrun while writing to 'Ptr': the writable size is 'X' bytes, but 'Y' bytes might be written. warning C6387: 'Ptr' could be '0': this does not adhere to the specification for the function 'Func' warning C6031: Return value ignored: 'snprintf'. warning C6340: Mismatch on sign: 'const unsigned int' passed as _Param_(4) when some signed type is required in call to 'snprintf'. Change 2986865 on 2016/05/23 by Robert.Manuszewski Removing redundand AddReferencedObjects functions Change 2987968 on 2016/05/24 by Robert.Manuszewski Removing redundant UPROPERTY macros from intrinsic classes. Change 2987979 on 2016/05/24 by Steve.Robb Optimization of some FString and FPaths operations to produce fewer temporaries. Change 2988297 on 2016/05/24 by Steve.Robb Static analysis fixes: warning C6287: Redundant code: the left and right sub-expressions are identical. Change 2988430 on 2016/05/24 by Steve.Robb Static analysis fixes: warning C6385: Reading invalid data from 'var': the readable size is 'X' bytes, but 'Y' bytes may be read. Change 2988461 on 2016/05/24 by Steve.Robb Static analysis fixes: warning C6235: (<non-zero constant> || <expression>) is always a non-zero constant. warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. Change 2988464 on 2016/05/24 by Steve.Robb Static analysis fixes: warning C6262: Function uses 'X' bytes of stack: exceeds /analyze:stacksize 'Y'. Consider moving some data to heap. Change 2988494 on 2016/05/24 by Steve.Robb Static analysis fixes: warning C6237: (<zero> && <expression>) is always zero. <expression> is never evaluated and might have side effects. Change 2989411 on 2016/05/25 by Robert.Manuszewski Splitting GC cluster index and intenral object flags to allow more UObjects in editor builds. Change 2989429 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6387: '_Param_(X)' could be '0': this does not adhere to the specification for the function 'Func'. Change 2989982 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6001: Using uninitialized memory 'LODPlanesMin'. Change 2990018 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6386: Buffer overrun while writing to 'X' Change 2990077 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6240: (<expression> && <non-zero constant>) always evaluates to the result of <expression>. warning C6011: Dereferencing NULL pointer 'Ptr'. Change 2990114 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6336: Arithmetic operator has precedence over question operator, use parentheses to clarify intent. Change 2990125 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6239: (<non-zero constant> && <expression>) always evaluates to the result of <expression>. Change 2990162 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C6294: Ill-defined for-loop: initial condition does not satisfy test. Loop body not executed. Change 2990193 on 2016/05/25 by Steve.Robb Static analysis fixes: warning C28182: Dereferencing NULL pointer. 'type' contains the same NULL value as 'type->base_type' did. warning C6011: Dereferencing NULL pointer 'Semantic'. Change 2991006 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C28113: Accessing a local variable dummy via an Interlocked function: This is an unusual usage which could be reconsidered. Change 2991012 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6031: Return value ignored: 'InitializeCriticalSectionAndSpinCount'. Change 2991013 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6287: Redundant code: the left and right sub-expressions are identical. Change 2991016 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6236: (<expression> || <non-zero constant>) is always a non-zero constant. Change 2991017 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6326: Potential comparison of a constant with another constant. Change 2991019 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6292: Ill-defined for-loop: counts up from maximum. Change 2991023 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6322: Empty _except block. warning C28251: Inconsistent annotation for 'WinMain': this instance has no annotations. Change 2991070 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C28182: Dereferencing NULL pointer. 'Ptr1' contains the same NULL value as 'Ptr2' did. Change 2991416 on 2016/05/26 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Ptr'. Change 2992738 on 2016/05/27 by Steve.Robb Revert changes to FString::MatchesWildcard. Change 2992916 on 2016/05/27 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Ptr'. Change 2992960 on 2016/05/27 by Chris.Wood Optimized P4 access in Crash Report Process and MinidumpDiagostics. Change 2992964 on 2016/05/27 by Steve.Robb Static analysis fixes: warning C6011: Dereferencing NULL pointer 'Ptr'. Change 2993956 on 2016/05/30 by Robert.Manuszewski Fixing a crash after adding a new C++ class in the editor - made sure new classes have the token stream assembled after hot-reload. #jira UE-31309 Change 2993977 on 2016/05/30 by Robert.Manuszewski Don't wait for all packages to finish loading before PostLoading those which already have. Change 2994206 on 2016/05/31 by Robert.Manuszewski PR #2429: Three bug fixes required for script support to work properly (Contributed by pluranium) #lockdown Nick.Penwarden [CL 2996251 by Robert Manuszewski in Main branch]
2016-06-01 12:08:56 -04:00
CA_SUPPRESS(6326);
switch ((int32)TOpenGLStage1::StaticFrequency)
{
case SF_Vertex:
Header.FrequencyMarker = 0x5653;
break;
case SF_Pixel:
Header.FrequencyMarker = 0x5053;
break;
case SF_Geometry:
Header.FrequencyMarker = 0x4753;
break;
case SF_Hull:
Header.FrequencyMarker = 0x4853;
break;
case SF_Domain:
Header.FrequencyMarker = 0x4453;
break;
case SF_Compute:
Header.FrequencyMarker = 0x4353;
break;
default:
UE_LOG(LogRHI, Fatal, TEXT("Invalid shader frequency: %d"), (int32)TOpenGLStage1::StaticFrequency);
}
Header.Bindings = PrevStage->Bindings;
Header.UniformBuffersCopyInfo = PrevStage->UniformBuffersCopyInfo;
TArray<FString> PrevLines;
FString PrevSource = GetShaderStageSource<TOpenGLStage1>(PrevStage);
PrevSource.ParseIntoArrayLines(PrevLines);
bool const bOutputElimination = OutputElimination.Num() > 0;
for(FOpenGLShaderVarying Output : OutputElimination)
{
for(int32 i = 0; i < PrevLines.Num(); i++)
{
if(PrevLines[i].Contains(Output.Varying.GetData()))
{
PrevLines[i].Empty();
}
}
for(int32 i = 0; i < Header.Bindings.OutputVaryings.Num(); i++)
{
if(Output == Header.Bindings.OutputVaryings[i])
{
Header.Bindings.OutputVaryings.RemoveAt(i);
break;
}
}
}
OutputElimination.Empty();
bool const bVaryingRemapping = VaryingMapping.Num() > 0;
if (OutputElimination.Num() == 0 && VaryingMapping.Num() == 0 && (bOutputElimination || bVaryingRemapping))
{
FString NewPrevSource;
for(FString Line : PrevLines)
{
if(!Line.IsEmpty())
{
NewPrevSource += Line + TEXT("\n");
}
}
TArray<uint8> Bytes;
FMemoryWriter Ar(Bytes);
Ar << Header;
TArray<ANSICHAR> Chars;
int32 Len = FCStringAnsi::Strlen(TCHAR_TO_ANSI(*NewPrevSource)) + 1;
Chars.Append(TCHAR_TO_ANSI(*NewPrevSource), Len);
Ar.Serialize(Chars.GetData(), Chars.Num());
TRefCountPtr<TOpenGLStage1> NewPrev(CompileOpenGLShader<TOpenGLStage1>(Bytes));
PrevInfo.Bindings = Header.Bindings;
PrevInfo.Resource = NewPrev->Resource;
}
bInterpolatorMatches = (OutputElimination.Num() == 0 && VaryingMapping.Num() == 0);
}
else
{
for(int32 i = 0; i < InputErrors.Num(); i++)
{
UE_LOG(LogRHI, Error, TEXT("%s"), *InputErrors[i]);
}
}
if(!bInterpolatorMatches)
{
FString PrevShaderStageSource = GetShaderStageSource<TOpenGLStage1>(PrevStage);
FString NextShaderStageSource = GetShaderStageSource<TOpenGLStage0>(NextStage);
UE_LOG(LogRHI, Error, TEXT("Separate Shader Object Stage 0x%x:\n%s"), TOpenGLStage1::TypeEnum, *PrevShaderStageSource);
UE_LOG(LogRHI, Error, TEXT("Separate Shader Object Stage 0x%x:\n%s"), TOpenGLStage0::TypeEnum, *NextShaderStageSource);
}
}
GetOpenGLSeparateShaderObjectCache().Add(Config, PrevInfo);
}
}
ShaderInfo.Bindings = NextStageBindings;
ShaderInfo.Resource = NextStageResource;
ShaderInfo.Hash = NextStage->GetHash();
}
// ============================================================================================================================
FBoundShaderStateRHIRef FOpenGLDynamicRHI::RHICreateBoundShaderState(
FVertexDeclarationRHIParamRef VertexDeclarationRHI,
FVertexShaderRHIParamRef VertexShaderRHI,
FHullShaderRHIParamRef HullShaderRHI,
FDomainShaderRHIParamRef DomainShaderRHI,
FPixelShaderRHIParamRef PixelShaderRHI,
FGeometryShaderRHIParamRef GeometryShaderRHI
)
{
check(IsInRenderingThread());
VERIFY_GL_SCOPE();
SCOPE_CYCLE_COUNTER(STAT_OpenGLCreateBoundShaderStateTime);
if(!PixelShaderRHI)
{
// use special null pixel shader when PixelShader was set to NULL
PixelShaderRHI = TShaderMapRef<FNULLPS>(GetGlobalShaderMap(GMaxRHIFeatureLevel))->GetPixelShader();
}
// Check for an existing bound shader state which matches the parameters
FCachedBoundShaderStateLink* CachedBoundShaderStateLink = GetCachedBoundShaderState(
VertexDeclarationRHI,
VertexShaderRHI,
PixelShaderRHI,
HullShaderRHI,
DomainShaderRHI,
GeometryShaderRHI
);
if(CachedBoundShaderStateLink)
{
// If we've already created a bound shader state with these parameters, reuse it.
return CachedBoundShaderStateLink->BoundShaderState;
}
else
{
FOpenGLVertexShader* VertexShader = ResourceCast(VertexShaderRHI);
FOpenGLPixelShader* PixelShader = ResourceCast(PixelShaderRHI);
FOpenGLHullShader* HullShader = ResourceCast(HullShaderRHI);
FOpenGLDomainShader* DomainShader = ResourceCast(DomainShaderRHI);
FOpenGLGeometryShader* GeometryShader = ResourceCast(GeometryShaderRHI);
FOpenGLLinkedProgramConfiguration Config;
check(VertexShader);
check(PixelShader);
// Fill-in the configuration
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Bindings = VertexShader->Bindings;
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Resource = VertexShader->Resource;
Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX].Hash = VertexShader->GetHash();
if ( FOpenGL::SupportsTessellation())
{
if ( HullShader)
{
check(VertexShader);
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_HULL], HullShader, Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX], VertexShader);
}
if ( DomainShader)
{
check(HullShader);
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN], DomainShader, Config.Shaders[CrossCompiler::SHADER_STAGE_HULL], HullShader);
}
}
if (GeometryShader)
{
check(DomainShader || VertexShader);
if ( DomainShader )
{
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY], GeometryShader, Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN], DomainShader);
}
else
{
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY], GeometryShader, Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX], VertexShader);
}
}
check(DomainShader || GeometryShader || VertexShader);
if ( DomainShader )
{
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL], PixelShader, Config.Shaders[CrossCompiler::SHADER_STAGE_DOMAIN], DomainShader);
}
else if ( GeometryShader )
{
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL], PixelShader, Config.Shaders[CrossCompiler::SHADER_STAGE_GEOMETRY], GeometryShader);
}
else
{
BindShaderStage(Config.Shaders[CrossCompiler::SHADER_STAGE_PIXEL], PixelShader, Config.Shaders[CrossCompiler::SHADER_STAGE_VERTEX], VertexShader);
}
// Check if we already have such a program in released programs cache. Use it, if we do.
FOpenGLLinkedProgram* LinkedProgram = 0;
int32 Index = StaticLastReleasedProgramsIndex;
for( int CacheIndex = 0; CacheIndex < LAST_RELEASED_PROGRAMS_CACHE_COUNT; ++CacheIndex )
{
FOpenGLLinkedProgram* Prog = StaticLastReleasedPrograms[Index];
if( Prog && Prog->Config == Config )
{
StaticLastReleasedPrograms[Index] = 0;
LinkedProgram = Prog;
break;
}
Index = (Index == LAST_RELEASED_PROGRAMS_CACHE_COUNT-1) ? 0 : Index+1;
}
if (!LinkedProgram)
{
FOpenGLLinkedProgram** CachedProgram = GetOpenGLProgramsCache().Find( Config);
if (CachedProgram)
{
LinkedProgram = *CachedProgram;
}
else
{
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// In case ProgramBinaryCache is enabled we defer shader compilation, look LinkProgram
if (!FOpenGLProgramBinaryCache::IsEnabled())
{
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
const ANSICHAR* GlslCode = NULL;
if (!VertexShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
GlslCode = VertexShader->GlslCodeString;
#endif
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
VertexShader->bSuccessfullyCompiled = VerifyCompiledShader(VertexShader->Resource, GlslCode);
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
if (!PixelShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
GlslCode = PixelShader->GlslCodeString;
#endif
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
PixelShader->bSuccessfullyCompiled = VerifyCompiledShader(PixelShader->Resource, GlslCode);
}
if (GeometryShader && !GeometryShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
GlslCode = GeometryShader->GlslCodeString;
#endif
GeometryShader->bSuccessfullyCompiled = VerifyCompiledShader(GeometryShader->Resource, GlslCode);
}
if (FOpenGL::SupportsTessellation())
{
if (HullShader && !HullShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
GlslCode = HullShader->GlslCodeString;
#endif
HullShader->bSuccessfullyCompiled = VerifyCompiledShader(HullShader->Resource, GlslCode);
}
if (DomainShader && !DomainShader->bSuccessfullyCompiled)
{
#if DEBUG_GL_SHADERS
GlslCode = DomainShader->GlslCodeString;
#endif
DomainShader->bSuccessfullyCompiled = VerifyCompiledShader(DomainShader->Resource, GlslCode);
}
}
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// Make sure we have OpenGL context set up, and invalidate the parameters cache and current program (as we'll link a new one soon)
GetContextStateForCurrentContext().Program = -1;
MarkShaderParameterCachesDirty(PendingState.ShaderParameters, false);
// Link program, using the data provided in config
LinkedProgram = LinkProgram(Config);
// Add this program to the cache
GetOpenGLProgramsCache().Add(Config,LinkedProgram);
if (LinkedProgram == NULL)
{
#if DEBUG_GL_SHADERS
if (VertexShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Vertex Shader:\n%s"),ANSI_TO_TCHAR(VertexShader->GlslCode.GetData()));
}
if (PixelShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Pixel Shader:\n%s"),ANSI_TO_TCHAR(PixelShader->GlslCode.GetData()));
}
if (GeometryShader && GeometryShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Geometry Shader:\n%s"),ANSI_TO_TCHAR(GeometryShader->GlslCode.GetData()));
}
if ( FOpenGL::SupportsTessellation() )
{
if (HullShader && HullShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Hull Shader:\n%s"),ANSI_TO_TCHAR(HullShader->GlslCode.GetData()));
}
if (DomainShader && DomainShader->bSuccessfullyCompiled)
{
UE_LOG(LogRHI,Error,TEXT("Domain Shader:\n%s"),ANSI_TO_TCHAR(DomainShader->GlslCode.GetData()));
}
}
#endif //DEBUG_GL_SHADERS
check(LinkedProgram);
}
}
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
if(FShaderCache::IsPrebindCall(FShaderCache::GetDefaultCacheState()) && !VertexDeclarationRHI)
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
{
return nullptr;
}
else
{
check(VertexDeclarationRHI);
FOpenGLVertexDeclaration* VertexDeclaration = ResourceCast(VertexDeclarationRHI);
FOpenGLBoundShaderState* BoundShaderState = new FOpenGLBoundShaderState(
LinkedProgram,
VertexDeclarationRHI,
VertexShaderRHI,
PixelShaderRHI,
GeometryShaderRHI,
HullShaderRHI,
DomainShaderRHI
);
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3388261) #lockdown Nick.Penwarden #rb None ========================== MAJOR FEATURES + CHANGES ========================== Change 3358140 on 2017/03/22 by Rolando.Caloca DR - Fix copy to cube face - Compile fix when using dump layer - Add new error enum Change 3358301 on 2017/03/22 by Mitchell.Wilson Initial check in of LODs in InfiltratorForward. First pass on optimization in level. Adding a visibility track for SceneCapture2D in tunnel section. Change 3358477 on 2017/03/22 by Mitchell.Wilson Updating Skeletal Mesh DPW_Robot_Export to resolve screen size being too low for LOD1. Cleaned up LOD1 which was showing some visible popping when transitioning. Change 3358529 on 2017/03/22 by Mark.Satterthwaite Globally disable clang's "constant-logical-operand" warning when running under Distcc - it is much easier and less invasive than constantly fixing the code. Change 3358745 on 2017/03/22 by Mark.Satterthwaite Disable another warning (parentheses-equality) under Distcc because again the separation of preprocessing from compilation means it turns up where it isn't expected. Change 3358837 on 2017/03/22 by Joe.Graf Merge of pull request #3214 for the RenderDocPlugin #CodeReview: matt.kuhlenschmidt, marcus.wassmer #rb: marcus.wassmer Change 3359112 on 2017/03/22 by Ben.Salem Update perf monitor to include frame time by default. Also, use only game/PIE world timers when in editor, instead of all worlds combined. #tests Ran several Showdown test runs with plugin! Change 3359363 on 2017/03/22 by Joe.Graf First pass at non-unity & no pch compilation Change 3359449 on 2017/03/22 by Joe.Graf Added missing null check when exporting a EXR on Linux (UE-40268) #CodeReview: dmitry.rekman #rb: n/a Change 3360349 on 2017/03/23 by Guillaume.Abadie Fixes TAA's AA_FORCE_ALPHA_CLAMP causing DOF layouts. #jira UE-42920 Change 3360405 on 2017/03/23 by Marcus.Wassmer Better method for detecting Kepler Change 3360718 on 2017/03/23 by Daniel.Wright Planar reflections handle views smaller than the render target in a general way * Fixes planar reflections with adaptive pixel density (ViewFamily size larger than actual views combined) * Planar reflections are now supported in splitscreen Change 3360758 on 2017/03/23 by Daniel.Wright [Copy] Added new light property bCastVolumetricShadow, which defaults to true for directional and sky lights, but false for point / spot lights as supporting volumetric fog shadowing has significant GPU overhead Change 3360762 on 2017/03/23 by Daniel.Wright [Copy] Texture flags are now properly routed to RHICreateTexture3D from the render target pool Change 3360768 on 2017/03/23 by Daniel.Wright [Copy] Disabled GPUProfiler histogram by default, controlled by r.ProfileGPU.ShowEventHistogram Change 3360770 on 2017/03/23 by Daniel.Wright [Copy] Disabled fast clears on CustomDepth, saves .2ms on xbox Change 3360771 on 2017/03/23 by Daniel.Wright [Copy] Particle lights no longer force tiled deferred lighting. Tiled deferred lighting is only used if enough unshadowed lights + particle lights are on screen. Saves 1.5ms Xbox with one particle light. Change 3360774 on 2017/03/23 by Daniel.Wright [Copy] Distance field cvar comments Change 3360782 on 2017/03/23 by Daniel.Wright [Copy] Disabled selection color on Volume materials Change 3360795 on 2017/03/23 by Daniel.Wright [Copy] Volume materials now specify Albedo and Extinction, which is more intuitive than Scattering and Absorption. Albedo is [0-1] reflectance, while Extinction is a world space density. Change 3360799 on 2017/03/23 by Daniel.Wright [Copy] Cinematic scalability levels get 2x volumetric fog resolution in x and y Change 3360806 on 2017/03/23 by Daniel.Wright [Copy] Fixed volumetric fog being offset when viewport min is not 0 Change 3360809 on 2017/03/23 by Daniel.Wright [Copy] Volumetric fog now adds a bias to the inverse squared light falloff denominator, prevents extreme aliasing from the hotspot. Can be controlled with r.VolumetricFog.InverseSquaredLightDistanceBiasScale. Change 3361651 on 2017/03/23 by Brian.Karis Higher quality sharp SSR at quality 4 Change 3361678 on 2017/03/23 by Brian.Karis Fresnel darkens diffuse for clearcoat. Change 3361683 on 2017/03/23 by Brian.Karis Fixed SSR artifact Change 3361691 on 2017/03/23 by Brian.Karis Chagned min roughness limit Change 3361707 on 2017/03/23 by Brian.Karis Added inverse film tone map Change 3361726 on 2017/03/23 by Brian.Karis Better precision inverse Change 3361758 on 2017/03/23 by Brian.Karis Material flag normal curvature to roughness is no longer forward only. Change 3361765 on 2017/03/23 by Brian.Karis Update ACES Change 3361774 on 2017/03/23 by Brian.Karis Cleaned up alpha support and disabled screen edge clipping. Change 3362478 on 2017/03/24 by Guillaume.Abadie Cherry pick 3316084's PostProcessing.cpp: Fixes a bug in Circle DOF where the apply pass was no longer using the downres DOF's TAA output. #author Brian.Karis #jira UE-42920 Change 3362738 on 2017/03/24 by Rolando.Caloca DR - Hide scene capture on IF Change 3362890 on 2017/03/24 by Guillaume.Abadie Renames r.SceneAlpha to r.PostProcessing.PropagateAlpha Change 3363665 on 2017/03/24 by Mark.Satterthwaite PR #3414: Add command line option "-noheartbeatthread" to disable heart beat thread (Contributed by JeffRous) Change 3363866 on 2017/03/24 by Arne.Schober DR - Updated NVAPI #RB Marcus.Wassmer Change 3364300 on 2017/03/24 by Brian.Karis SSR use dynamic velocity Change 3364372 on 2017/03/24 by Brian.Karis Fix changing off axis projection velocities. Change 3364373 on 2017/03/24 by Brian.Karis Enabled velocity drawing in scene captures Change 3365531 on 2017/03/27 by Guillaume.Abadie Computes the material's screen position material expression directly from the pixel shader SvPosition Change 3365764 on 2017/03/27 by Chris.Bunner Lowering severity of crash for missing values in scalability.ini. #jira UE-41331 Change 3365916 on 2017/03/27 by Guillaume.Abadie Exposes the viewport offset within the view property material expression Change 3365979 on 2017/03/27 by Brian.Karis Fixed skylight intensity from double applying Change 3365987 on 2017/03/27 by Brian.Karis Stopped post process indirect lighting intensity from scaling skylight reflections Change 3365991 on 2017/03/27 by Brian.Karis Fix for static analysis Change 3366028 on 2017/03/27 by Daniel.Wright Volumetric fog supports static shadowing from Stationary lights * Using bilinear on static shadowmap depths + 1 PCF to smooth out results Change 3366029 on 2017/03/27 by Daniel.Wright Static shadow depth maps for Stationary point and spot lights are 2x higher res by default (4x more texels), which is more appropriate for volumetric fog Change 3366055 on 2017/03/27 by Guillaume.Abadie Cherry picks 3251469: Implements scene capture component's CaptureSortPriority to control GPU execution order in order to manage inter dependencies. Change 3366447 on 2017/03/27 by Simon.Tourangeau Fix IES light profile importer. - Bug in the LM-63-1986 format importer. Change 3366836 on 2017/03/27 by Brian.Karis ClearUAV now supports int types Change 3367435 on 2017/03/28 by Benjamin.Hyder Submitting Decal Automation map for initial approval Change 3367572 on 2017/03/28 by Chris.Bunner Changed ClampedPow {max(abs(x),0.00001)} to PositiveClampedPow {max(x,0)} to give more expected results to Power node in material graphs. #jira UE-42989 Change 3367756 on 2017/03/28 by Olaf.Piesche Niagara material usage flags Change 3367835 on 2017/03/28 by Marcus.Wassmer Fix crash when TileRenderer runs before anything else. Make explicit behavior when rendering at a time when there is no valid scene. Change 3367837 on 2017/03/28 by Marcus.Wassmer Missed a file. Change 3367838 on 2017/03/28 by Richard.Wallis Updated items from original shelved version by Mark Satt: - Added MetalBackend.cpp to change main function string to have an initial crc + code length zero's **Description below taken from Mark Satt's original verison of this in CL3343280** Updated for Dev-Rendering's PSOs & integrates Richard's work on RHI shader libraries. Replace the FShaderCache's cook-time binary shader cache with Dmitriy Dyomin's standalone FShaderCodeLibrary that saves all shader byte-code arrays to files named by the FSHAHash. This de-duplicates shaders so we only ever store the byte code once. Includes optional support for generating a platform specific library file - which Metal implements to provide a single Metal library. The platform-native implementation can perform more de-duplication and in the case of Metal has lower file overheads and will compress more efficiently. - All of the support code for the FShaderCache's cook caching is gone, which affects all platforms. The FShaderCodeLibrary is currently supported by Cook-By-The-Book but can be used with iterate or child cookers - only DLC cooking requires further work. - With further modifications it should be possible to support Cook-on-the-Fly as well (output directories would be needed in FShaderCodeLibrary::InitForCooking) and the file-access pattern should be changed to use async. IO so that Material loading is not considered complete until all required byte-code arrays are loaded into the FShaderCodeLibrary. - For Metal archiving shaders this way will compile with debug information and the FShaderCodeLibrary, with some help from extensions to IShaderFormat, will save the debug information out into separate files during cooking - these can then be used to debug the game without having to locally recompile, recook & repackage but the shipped byte-code is stripped. Global shader caches are also subject to de-duplication in the library in order to support Metal's shader stripping. - File Move operations need to respect the 'Replace' flag - for FShaderCodeLibrary to work we need Move to be atomic. - This bumps the object version and will cause all content to recook. - Native library support is optional - only Metal currently implements one, but so could Vulkan and D3D12. For Metal the big advantages are further de-duplication where different materials generate the same MetalSL text but a different FSHAHash, that the single Metal library has lower overhead and that as a single file it all compresses far better (esp. with LZMA - 5x smaller). Change 3367854 on 2017/03/28 by Mark.Satterthwaite Don't track or record draw call resources for non-OpenGL shader platforms in the shader-cache as it is unnecessary and makes it slower on the CPU than it needs to be. Change 3367877 on 2017/03/28 by Brian.Karis Fixed linux build hopefully Change 3368001 on 2017/03/28 by Mark.Satterthwaite Compile fixes from Richard's checkin caused by not having visibility to all platforms from my original shelves. Change 3368019 on 2017/03/28 by Mark.Satterthwaite And another fix for Windows compilation of MetalShaderFormat. Change 3368042 on 2017/03/28 by Mark.Satterthwaite And a couple of simpler MSVC errors. Change 3368271 on 2017/03/28 by Mark.Satterthwaite Make SceneRenderTargets compile again. Change 3368691 on 2017/03/28 by Daniel.Wright [Copy from BenW] Renamed r.Shadow.MaxCSMShadowResolution to r.Shadow.MaxCSMResolution to match scalability inis Change 3369689 on 2017/03/29 by Marcus.Wassmer Fix non editor compile for now Change 3369862 on 2017/03/29 by Marcus.Wassmer Get the rest of the things compiling again. Change 3369896 on 2017/03/29 by Chris.Bunner Enabling AMD HDR support by default. #jira UE-42113 Change 3370535 on 2017/03/29 by Marcus.Wassmer DR - Fix template explicit instantiation for ClearUAV permutations #RB Brian.Karis, Arne.Schober Change 3370704 on 2017/03/29 by Rolando.Caloca DR - Rewrote GPU Skin Cache - Per section buffers - Limited memory per non-editor worlds (control with r.SkinCache.SceneMemoryLimitInMB) Copied from 3370529 Change 3371389 on 2017/03/30 by Richard.Wallis Remove temp working directories after archive packages built. Change 3371641 on 2017/03/30 by Rolando.Caloca DR - Copy 3371640 (fix mem leak) Change 3372436 on 2017/03/30 by Uriel.Doyon Added flags in UPrimitiveComponent to keep track of its state in the streaming manager. This allows to avoid unnecessary callback and processing in begin destroy reattach and being destroy logic. Removed the limitation of only processing UMeshComponent when handling spawed primitive. This releases the level manager from having to manage dynamic primitives. This improves performance by not having to manage dynamic references in the level manager. Primitives managed as dynamic now have a callback when ever their proxy is udpated, handling many cases automatically where previously a manual callback to notify would have been required. Fixed an issue where primitives with no reference to streaming textures would loose they dynamic state because of lack of references in the streamer. Change 3372740 on 2017/03/30 by Chris.Bunner [Experimental] Partial compute post process pipeline (r.PostProcess.PreferCompute). StencilSceneTexture added to deferred list. A few known issues to be fixed in a follow-up CL. Change 3372765 on 2017/03/30 by Uriel.Doyon Disabled concurrent call to NotifyPrimitiveUpdated while we don't have a safe concurrent update Change 3372979 on 2017/03/30 by Richard.Hinckley #jira UE-43501 The stencil buffer can now use single-channel bitmasks that ignore depth. This makes it possible to detect overlaps between stencil objects. Change 3373053 on 2017/03/30 by Simon.Tourangeau LPV Fade support - mostly integrated from CL 2959511 Change 3373272 on 2017/03/30 by Uriel.Doyon Added support for the concurrent update of dynamic primitives by the streaming manager. Change 3373450 on 2017/03/30 by Rolando.Caloca DR - FNT - Fix bad data for odd texcoord channels used on skin cache passthrough factory Copy 3373364 #jira UE-43492 Change 3373470 on 2017/03/30 by Marcus.Wassmer Nvidia Aftermath support Change 3374187 on 2017/03/31 by Chris.Bunner Volume texture support for CombineLUTs/Tonemap compute pass. Refactored common param code to shared sub-class in CombineLUTs and Tonemap PS/CS. Skip compute post process out-of-bounds writes. Unsigned type conversion fixes. Trimmed compute post process shader inputs. Change 3374233 on 2017/03/31 by Chris.Bunner Removed several redundant post process compute fences and resource transitions. Added testing CVar to force compute post processes to async (r.PostProcess.ForceAsyncDispatch). Change 3374412 on 2017/03/31 by Rolando.Caloca DR - Fix static analysis Change 3374544 on 2017/03/31 by Richard.Wallis FShaderCache Parallel-Context-Aware Merged with FShaderCache Single Library. Future Work - This was done before Engine PSO were in so this now needs a refector in the recording and playback on pipeline states instead an emulate PSO in OpenGL Driver. - Remove FShaderCacheState and replace the logic with FGraphicsPipelineStateInitializer which should be able to record from the RHI current pipeline state - This would reduce the Locking required as it's naturally per thread/context and only the final record would need a lock Change 3374588 on 2017/03/31 by Richard.Wallis Windows Compile Fixes Change 3374810 on 2017/03/31 by Benjamin.Hyder updating recommended GPU drivers Change 3375207 on 2017/03/31 by Rolando.Caloca DR - vk - Fixed swapchain format selection for some Linux platforms Change 3375248 on 2017/03/31 by Rolando.Caloca DR - vk - Prefer D32S8 Change 3375495 on 2017/03/31 by Rolando.Caloca DR - vk - Update to sdk 1.0.42.2 Change 3375496 on 2017/03/31 by Rolando.Caloca DR - Force compiling with updated Vulkan SDK Change 3375636 on 2017/03/31 by Mark.Satterthwaite Copying Metal improvements from task stream, with some modifications: - Off-by-default implementations for MTLFence & MTLHeap, including some small changes to the RHI interface for parallel contexts. - Support for Apple's Instruments "Points of Interest" tool. - Consolidation of some Mac & iOS compiler, memory and thread handling code. - Fixes for Metal not having implicit buffer SRV typecasting for DistanceField effects. - Improvements to the internal FMetalDebug layer, still off by default. - Limited support for Xcode automatic code-signing for iOS/tvOS. - Minimisation of render-target changes in some rendering code, esp. SceneOcclusion, DBufferDecals. - Added RHISetResourceAliasability_RenderThread to FDynamicRHI for RHIs to implement simple render-target aliasing. - Added FApplePlatformObject, a custom block allocator for Objective-C types (with NSZombie support) which is now used in MetalRHI to decrease allocation costs of Objective-C types. - Smattering of lesser fixes. Change 3375654 on 2017/03/31 by Mark.Satterthwaite Incremental Windows build fix. Change 3375656 on 2017/04/01 by Mark.Satterthwaite Correct extern declaration, including the module export macro which Mac unhelpfully doesn't enforce (for now...). Change 3375797 on 2017/04/01 by Mark.Satterthwaite Nullability qualifiers to fix Mac build-farm compilation: perversely this is not a problem for local builds... Change 3375798 on 2017/04/01 by Mark.Satterthwaite Fix the first mis-merge in ParticleGpuSimulation - these changes clearly weren't properly resolved in the task-stream. Change 3375835 on 2017/04/01 by Mark.Satterthwaite Try again with nullability and fix the occlusion changes as the PSO work wasn't merged correctly. Change 3376143 on 2017/04/02 by Mark.Satterthwaite Switch back to flat dSYMs for Dev-Rendering - they don't work with Instruments etc. but they are required by our build system. Change 3376324 on 2017/04/03 by Chris.Bunner Fixed cvar re-registration log spam and flagged a testing-only cvar as such. Change 3376726 on 2017/04/03 by Benjamin.Hyder Submitting initial HDR test map (WIP) Change 3376756 on 2017/04/03 by Guillaume.Abadie Fixes scene captures ordering's backward compatibility. Before, 2d scene captures were rendered before cube scene captures. The CaptureSortPriority broke backward compatibility by settings this new member to 0 in the USceneCaptureComponent's constructor. Since it is a higher come first policy, this CL set the default of this value to 1 in USceneCaptureComponent2D's constructor. Change 3377378 on 2017/04/03 by Arne.Schober DR - Fix ShaderRecompiling over and over again #RB Chris.Bunner Change 3377512 on 2017/04/03 by Daniel.Wright [Copy] Fixed profilegpu in d3d12 - initialize FLongGPUTaskPS when it is safe to do so, and fixed FSlateRHIRenderer's incorrect usage of draw events Change 3377518 on 2017/04/03 by Daniel.Wright [Copy] Distance field atlas coalesces updates to reduce RHIUpdateTexture3D memory overhead on d3d12 Change 3377526 on 2017/04/03 by Daniel.Wright [Copy] "Ran out of GPU queries!" log only happens once Change 3377535 on 2017/04/03 by Daniel.Wright [Copy] Fixed unreferenced local variable Change 3377539 on 2017/04/03 by Daniel.Wright [Copy] Xbox One RHIGetResourceInfo takes ESRAM into account - fixes render target pool 'VRamInKB request failed' messages Change 3377546 on 2017/04/03 by Daniel.Wright [Copy] Added r.LightMaxDrawDistanceScale for local light scalability Change 3377553 on 2017/04/03 by Daniel.Wright [Copy] Removed NEW_ESRAM_ALLOCATOR define and old unused path Change 3377560 on 2017/04/03 by Daniel.Wright [Copy] Fixed two d3d12 refcounting bugs causing -norhithread crashes Change 3377565 on 2017/04/03 by Daniel.Wright [Copy] Fixed Xbox One deleting GPU resources before the GPU is done reading from them (GRHINeedsExtraDeletionLatency was false) Change 3377572 on 2017/04/03 by Daniel.Wright [Copy] Disabled point / spot lights with MaxDrawDistance on LowPC Change 3377586 on 2017/04/03 by Daniel.Wright Fixed compile error Change 3377699 on 2017/04/03 by David.Hill FFT Code. Moved over from raven and refactored #review-3374589 @guillaume.abadie Change 3377910 on 2017/04/03 by David.Hill GPU FFT: Fix Linux Build adding a missing template<> to an IMPLEMENT_SHADER_TYPE Change 3378751 on 2017/04/04 by Marcus.Wassmer HQ particle lights now spawn attached to the same socket as their parent module. Change 3378819 on 2017/04/04 by Richard.Wallis Should be no need to protect shader cache against RHI thread now. Change 3378823 on 2017/04/04 by Richard.Wallis FRHIShaderLibrary Opaque Type - Base FRHIShaderLibrary has no Create*Shader functions and is passed to Overloaded RHICreate*Shader functions instead of creation directly through the library. - Assumed that only Native libraries will end up in the RHICreate*Shader functions. - ShaderCache and ShaderCode Libraries now inherit from a common factory interface. Change 3378883 on 2017/04/04 by Arne.Schober DR - Fix DCC build Change 3378885 on 2017/04/04 by Richard.Wallis Metal resource cast compile fix post merge. Change 3378946 on 2017/04/04 by Chris.Bunner SM4 assert fix. Change 3378953 on 2017/04/04 by Chris.Bunner Fixed type-correctness on legacy BreakMA material nodes and set more flexible formats to global attributes which should result in much more forgiving graphs for users. Allowed material nodes to opt out of mask-based pin coloration. #tests Compiled most Paragon materials + QAGame test maps. #jira UE-39885 Change 3379189 on 2017/04/04 by Arne.Schober DR - Fix aftermath staging Change 3379229 on 2017/04/04 by Arne.Schober DR - Fix missing include Change 3379374 on 2017/04/04 by Mark.Satterthwaite Revert an accidentally merged change in MacPlatformProcess that relies on further changes from the Metal task stream. Change 3379505 on 2017/04/04 by Rolando.Caloca DR - Fix mismatched interpolators Change 3379539 on 2017/04/04 by Mark.Satterthwaite No FFT for any hlslcc platform - the IR for one or more RWTexture2D isn't quite right... #jira UE-43626 Change 3379561 on 2017/04/04 by Rolando.Caloca DR - Fix root signature issues on D3D12 PC Change 3379590 on 2017/04/04 by Mark.Satterthwaite Back out changelist 3379539 & change the shader slightly instead, the HLSLCC library generates bogus IR when you have an inout RWTexture. #jira UE-43626 Change 3379917 on 2017/04/04 by Uriel.Doyon Fix to input mismatch Change 3380578 on 2017/04/05 by Chris.Bunner Shader type fixes. #jira UE-43652 Change 3380639 on 2017/04/05 by Rolando.Caloca DR - Expose GetOrCreate PSO and document Change 3380821 on 2017/04/05 by Guillaume.Abadie Fixes a crash in USceneCaptureComponent::UpdateDeferredCaptures() #jira UE-43642 Change 3381092 on 2017/04/05 by Guillaume.Abadie Cherry pick 3362517: Implements TAA's scene color unpremultiplication from alpha channel to reduce DOF alpha channel temporal ghosting. This CL take the oportunity to transform AA_ALPHA to an compile time enumeration, and add a basic TAA compile time configuration validation to improve readability of the different TAA passes' configurations. Change 3381300 on 2017/04/05 by Mark.Satterthwaite Quick fix for changes to MetalRHI's render-thread safe texture creation not correctly handling AVFoundation video player handing us an IOSurface. #jira UE-43597 Change 3381359 on 2017/04/05 by Guillaume.Abadie Back out changelist 3381092 Change 3381421 on 2017/04/05 by Mark.Satterthwaite Amended CL #3380995 from Richard Wallis to address crash in the Material Editor under the validation layer - when there are no textures bound the default pass descriptor assigns store actions, which means we can't override them with our deferred store actions. #jira UE-43689 Change 3381422 on 2017/04/05 by Mark.Satterthwaite Absolute time queries can't be batched in Metal but I also can't rely on them being started with a call to BeginQuery - only EndQuery. #jira UE-43691 Change 3381503 on 2017/04/05 by Daniel.Wright More intuitive controls for Volumetric Fog * Removed ScatteringScale / AbsorptionScale on Exponential Height Fog and added Albedo / Extinction * InscatteringColorCubemap is now supported by Volumetric Fog * Particle lights have a default VolumetricScatteringIntensity of 0 to avoid trailing * Tweaked GVolumetricFogDepthDistributionScale better for nearby details * Volume Materials have twice the interpolators available Change 3381527 on 2017/04/05 by Mark.Satterthwaite Disable Private GPU storage for PVRTC texture formats on iOS Metal - these require more changes to the blit-encoder usage as PVRTC has strange requirements. Change 3381671 on 2017/04/05 by Mark.Satterthwaite Better error message for failure to compile shaders remotely from PC for Metal. Change 3381769 on 2017/04/05 by Rolando.Caloca DR - Added lock texture array 2d on Vulkan Change 3382003 on 2017/04/05 by Mark.Satterthwaite Remove the automatic Metal aliasing/re-use when releasing some resource types as it doesn't work as intended. Change 3382030 on 2017/04/05 by Zachary.Wilson Fix compiling Metal text shaders from PC broken in merge from task stream. #submitter mark.satterthwaite #jira UE-43652 Change 3382880 on 2017/04/06 by Mark.Satterthwaite Michael Trepka's CL #3379927: VolumetricFogVoxelization implementation for Mac Change 3383315 on 2017/04/06 by Mark.Satterthwaite Partially revert CL #3382003 - the emulated Metal heaps require invoking makeAliasable in order to reclaim memory. #jira UE-43739 Change 3384639 on 2017/04/07 by Marcus.Wassmer Move ShaderResource version bump to RenderingObjectVersion Change 3384704 on 2017/04/07 by Mark.Satterthwaite Compile fix for merge. Change 3384933 on 2017/04/07 by Rolando.Caloca DR - Fix skin cache crash with BP (copy 3384714) Change 3385104 on 2017/04/07 by Mark.Satterthwaite Fix MetalRHI's abs(int2) handling - it can't be translated to fabs(int2) as that won't compile. Also rebuild hlslcc for my sanity. #jira UE-43783 Change 3385105 on 2017/04/07 by Mark.Satterthwaite Force a shader rebuild to ensure that everybody picks up the fix for #jira UE-43783 #jira UE-43783 Change 3385118 on 2017/04/07 by Arne.Schober DR - [OR-37359] - Fix disapearing Decals when StencilLod Fade is enabled #RB none Change 3385149 on 2017/04/07 by Marcus.Wassmer Fix skincache motion blur Change 3385189 on 2017/04/07 by Rolando.Caloca DR - Fix swapchain format for editor on Vulkan Change 3385287 on 2017/04/07 by Mark.Satterthwaite Enable SM5 on Intel as of 10.12.4 and later. Change 3385347 on 2017/04/07 by Rolando.Caloca DR - Temp fix for GL4 corruption on editor #jira UE-43785 Change 3385363 on 2017/04/07 by Rolando.Caloca DR - Actually fix all win platforms for GL bug #jira UE-43785 Change 3385557 on 2017/04/07 by Arne.Schober DR - [UE-43205] - Fix mesh paint #RB none Change 3385608 on 2017/04/07 by Daniel.Wright Fixed SampleCmp being used on a non-depth texture, causing a d3d error Change 3385980 on 2017/04/10 by Rolando.Caloca DR - Remove transition functions RHIClearColor* RHIClearDepthStencilTexture Change 3386042 on 2017/04/10 by Rolando.Caloca DR - Fix metal merge issue Change 3386157 on 2017/04/10 by Rolando.Caloca DR - Remove VS2013 libs generation off hlslcc & glslang (to match main) Change 3386356 on 2017/04/10 by Chris.Bunner Resolving merge errors. Change 3386414 on 2017/04/10 by Chris.Bunner Resolved merge issue in RendererScene.cpp. Change 3386700 on 2017/04/10 by Mark.Satterthwaite Silence documentation warnings. Change 3387178 on 2017/04/10 by Chris.Bunner Removed invalid mask correction on MakeMA material nodes. Change 3388177 on 2017/04/11 by Marcus.Wassmer Disable ensure that is no longer relevant now that we bind clear colors on texture creation Change 3388261 on 2017/04/11 by Chris.Bunner Static analysis fix. [CL 3388266 by Chris Bunner in Main branch]
2017-04-11 10:32:07 -04:00
FShaderCache::LogBoundShaderState(FShaderCache::GetDefaultCacheState(), FOpenGL::GetShaderPlatform(), VertexDeclarationRHI, VertexShaderRHI, PixelShaderRHI, HullShaderRHI, DomainShaderRHI, GeometryShaderRHI, BoundShaderState);
Copying //UE4/Dev-Platform to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2719147 on 2015/10/07 by Mark.Satterthwaite Allow the shader cache to perform some precompilation synchronously on load before falling back to asynchronous compilation to balance load times against total time spent precompiling. Added a stat to the group that reports how long the precompile has been running until it completes so it is easier to track. Change 2719182 on 2015/10/07 by Mark.Satterthwaite Refactor the ShaderCache's internal data structures and change the way we handle recording whether a particular predraw state has been submitted to try and make it more efficient. Change 2719185 on 2015/10/07 by Mark.Satterthwaite Merging CL #2717701: Try and fix random crashes on Mac when manipulating bound-shader-states caused by ShaderCache potentially providing a bogus shader state pointer on exit from predraw. Change 2719434 on 2015/10/07 by Mark.Satterthwaite Make sure that Mac ensures reports have a source context and a sane callstack when sent to the crash-reports server. Change 2724764 on 2015/10/12 by Josh.Adams [Initial AppleTV support] Merging //depot/YakBranch/... to //UE4/Dev-Platform/... Change 2726266 on 2015/10/13 by Lee.Clark PS4 - Calc reserve size required for DMA copy when using unsafe command buffers Change 2726401 on 2015/10/13 by Mark.Satterthwaite Merging CL #2716418: Fix UE-15228 'Crash Report Client doesn't restart into project editor on Mac' by reporting the original command line supplied by LaunchMac, not the modified one that strips the project name. The CRC can then relaunch as expected. #jira UE-15228 Change 2726421 on 2015/10/13 by Lee.Clark PS4 - Don't try to clear invalid targets Change 2727040 on 2015/10/13 by Michael.Trepka Merging CL 2724777 - Fixed splash screen rendering for images with DPI different than 72 Change 2729783 on 2015/10/15 by Keith.Judge Fix huge memory leak in Test/Shipping configurations, caused because I am a numpty. Change 2729847 on 2015/10/15 by Mark.Satterthwaite Merging CL #2729846: On OS X unconstrain windows from the dimension of the parent display when in Windowed mode - it is OK for them to be larger in this case. They do need to be repositioned if on the Primary display so that they don't creep under the menu bar and become unmovable/unclosable and Fullscreen windows still need to be constrained to a single display. We can now take screenshots of windows that are larger than the display & not get grey bars beyond the cutoff. #jira UE-21992 Change 2729865 on 2015/10/15 by Keith.Judge Fast semantics - Finish up resource transitions, adding resource decompression where appropriate and using non-fast clears where we can't determine the resource transition. Change 2729897 on 2015/10/15 by Keith.Judge Fast Semantics - Make sure all GetData() calls are made safe with GPU fences. Change 2729972 on 2015/10/15 by Keith.Judge Removed the last vestiges of ID3D11DeviceContext/ID3D11DeviceContext1 from the Xbox RHI. Everything now uses ID3D11DeviceContextX directly. This should be marginally quicker as it stops a double call to ClearState(). Change 2731503 on 2015/10/16 by Keith.Judge Added _XDK_VERSION to the DDC key for textures, which should solve the issue of the tiling mode changing in August XDK (and future changes Microsoft may inflict). Change 2731596 on 2015/10/16 by Keith.Judge Fast Semantics - Add deferred resource deletion queue to make deleted resources be actually deleted a number of frames later so that the GPU is definitely finished with them. Hooked up the temporary SRVs for dynamic VBs as a first step. Change 2731928 on 2015/10/16 by Michael.Trepka PR #1659: Mac/Build.sh handles additional arguments (Contributed by judgeaxl) Change 2731934 on 2015/10/16 by Michael.Trepka PR #1618: added clang 3.7.0 -Wshift-negative-value ignore in JpegImageWrapper.cpp (Contributed by bsekura) Change 2732018 on 2015/10/16 by Mark.Satterthwaite Emit a shader code cache for each platforms requested shader formats, this is separate to the targeted formats as not all can or need to be cached. - The implementation extends the ShaderCache's hooks in FShaderResource's serialisation function to capture the required shaders. - Each target platform has its own list of cached shader formats, analogous to the list of targeted RHIs. Presently only the Mac implements this. - Code cached shaders are now compressed (for size) to reduce the overhead associated with keeping all the shader code around - this works esp. well for text-based formats like GLSL. Change 2732365 on 2015/10/16 by Josh.Adams - Packaging a TVOS .ipa now works (still haven't tried any of the Editor integration like Launch On) Change 2733170 on 2015/10/18 by Terence.Burns Fix for Android IAP query not returning entire inventory. Change 2733174 on 2015/10/18 by Terence.Burns Fix Movie player issue where wait for movie to finish isnt being respected. Seems a stray bUserCanceled event flag was causing this not to be observed. Added some verbose logging to apple movie player. Change 2733488 on 2015/10/19 by Mark.Satterthwaite Added the ability to merge the .ushadercache files used by the ShaderCache to store shader & draw state information. - Fixed a bug that would cause invalid shader membership and draw state information to be logged. - Added a separate command-line tool to merge shader cache files, currently Mac-only but in theory should work on other platforms too. Change 2735226 on 2015/10/20 by Mark.Satterthwaite Fix temporal AA rendering on GL/Mac OS X - you can't rely on EyeAdaptation values unless SM5 is available so only perform that code on SM5 & we must correctly clamp saturate(NaN) to 0 as the current hlslcc won't do that for us (& is required by the HLSL spec). The latter used to be clamped in the AA_ALPHA && AA_VELOCITY_WEIGHTING code block that was removed recently. #jira UE-21214 #jira UE-19913 Change 2736722 on 2015/10/21 by Daniel.Lamb Improved performance of cooking stats system. Change 2737172 on 2015/10/21 by Daniel.Lamb Improved cooking stats performance for ddc stats.
2015-12-10 16:56:55 -05:00
return BoundShaderState;
}
}
}
void DestroyShadersAndPrograms()
{
GetOpenGLUniformBlockLocations().Empty();
GetOpenGLUniformBlockBindings().Empty();
FOpenGLProgramsForReuse& ProgramCache = GetOpenGLProgramsCache();
for( TMap<FOpenGLLinkedProgramConfiguration,FOpenGLLinkedProgram*>::TIterator It( ProgramCache ); It; ++It )
{
delete It.Value();
}
ProgramCache.Empty();
StaticLastReleasedProgramsIndex = 0;
FOpenGLCompiledShaderCache& ShaderCache = GetOpenGLCompiledShaderCache();
for( TMap<FOpenGLCompiledShaderKey,GLuint>::TIterator It( ShaderCache ); It; ++It )
{
FOpenGL::DeleteShader(It.Value());
}
ShaderCache.Empty();
}
struct FSamplerPair
{
GLuint Texture;
GLuint Sampler;
friend bool operator ==(const FSamplerPair& A,const FSamplerPair& B)
{
return A.Texture == B.Texture && A.Sampler == B.Sampler;
}
friend uint32 GetTypeHash(const FSamplerPair &Key)
{
return Key.Texture ^ (Key.Sampler << 18);
}
};
static TMap<FSamplerPair, GLuint64> BindlessSamplerMap;
void FOpenGLDynamicRHI::SetupBindlessTextures( FOpenGLContextState& ContextState, const TArray<FOpenGLBindlessSamplerInfo> &Samplers )
{
if ( OpenGLConsoleVariables::bBindlessTexture == 0 || !FOpenGL::SupportsBindlessTexture())
{
return;
}
// Bind all textures via Bindless
for (int32 Texture = 0; Texture < Samplers.Num(); Texture++)
{
const FOpenGLBindlessSamplerInfo &Sampler = Samplers[Texture];
GLuint64 BindlessSampler = 0xffffffff;
FSamplerPair Pair;
Pair.Texture = PendingState.Textures[Sampler.Slot].Resource;
Pair.Sampler = (PendingState.SamplerStates[Sampler.Slot] != NULL) ? PendingState.SamplerStates[Sampler.Slot]->Resource : 0;
if (Pair.Texture)
{
// Find Sampler pair
if ( BindlessSamplerMap.Contains(Pair))
{
BindlessSampler = BindlessSamplerMap[Pair];
}
else
{
// if !found, create
if (Pair.Sampler)
{
BindlessSampler = FOpenGL::GetTextureSamplerHandle( Pair.Texture, Pair.Sampler);
}
else
{
BindlessSampler = FOpenGL::GetTextureHandle( Pair.Texture);
}
FOpenGL::MakeTextureHandleResident( BindlessSampler);
BindlessSamplerMap.Add( Pair, BindlessSampler);
}
FOpenGL::UniformHandleui64( Sampler.Handle, BindlessSampler);
}
}
}
void FOpenGLDynamicRHI::BindPendingShaderState( FOpenGLContextState& ContextState )
{
SCOPE_CYCLE_COUNTER_DETAILED(STAT_OpenGLShaderBindTime);
VERIFY_GL_SCOPE();
bool ForceUniformBindingUpdate = false;
GLuint PendingProgram = PendingState.BoundShaderState->LinkedProgram->Program;
if (ContextState.Program != PendingProgram)
{
FOpenGL::BindProgramPipeline(PendingProgram);
ContextState.Program = PendingProgram;
ContextState.bUsingTessellation = PendingState.BoundShaderState->LinkedProgram->bUsingTessellation;
MarkShaderParameterCachesDirty(PendingState.ShaderParameters, false);
//Disable the forced rebinding to reduce driver overhead - required by SSOs
ForceUniformBindingUpdate = FOpenGL::SupportsSeparateShaderObjects();
}
if (!GUseEmulatedUniformBuffers)
{
int32 NextUniformBufferIndex = OGL_FIRST_UNIFORM_BUFFER;
int32 NumVertexUniformBuffers = PendingState.BoundShaderState->VertexShader->Bindings.NumUniformBuffers;
PendingState.BoundShaderState->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_VERTEX, NextUniformBufferIndex);
BindUniformBufferBase(
ContextState,
NumVertexUniformBuffers,
PendingState.BoundUniformBuffers[SF_Vertex],
NextUniformBufferIndex,
ForceUniformBindingUpdate);
NextUniformBufferIndex += NumVertexUniformBuffers;
int32 NumPixelUniformBuffers = PendingState.BoundShaderState->PixelShader->Bindings.NumUniformBuffers;
PendingState.BoundShaderState->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_PIXEL, NextUniformBufferIndex);
BindUniformBufferBase(
ContextState,
NumPixelUniformBuffers,
PendingState.BoundUniformBuffers[SF_Pixel],
NextUniformBufferIndex,
ForceUniformBindingUpdate);
NextUniformBufferIndex += NumPixelUniformBuffers;
if (PendingState.BoundShaderState->GeometryShader)
{
int32 NumGeometryUniformBuffers = PendingState.BoundShaderState->GeometryShader->Bindings.NumUniformBuffers;
PendingState.BoundShaderState->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_GEOMETRY, NextUniformBufferIndex);
BindUniformBufferBase(
ContextState,
NumGeometryUniformBuffers,
PendingState.BoundUniformBuffers[SF_Geometry],
NextUniformBufferIndex,
ForceUniformBindingUpdate);
NextUniformBufferIndex += NumGeometryUniformBuffers;
}
if (PendingState.BoundShaderState->HullShader)
{
int32 NumHullUniformBuffers = PendingState.BoundShaderState->HullShader->Bindings.NumUniformBuffers;
PendingState.BoundShaderState->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_HULL, NextUniformBufferIndex);
BindUniformBufferBase(ContextState,
NumHullUniformBuffers,
PendingState.BoundUniformBuffers[SF_Hull],
NextUniformBufferIndex,
ForceUniformBindingUpdate);
NextUniformBufferIndex += NumHullUniformBuffers;
}
if (PendingState.BoundShaderState->DomainShader)
{
int32 NumDomainUniformBuffers = PendingState.BoundShaderState->DomainShader->Bindings.NumUniformBuffers;
PendingState.BoundShaderState->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_DOMAIN, NextUniformBufferIndex);
BindUniformBufferBase(ContextState,
NumDomainUniformBuffers,
PendingState.BoundUniformBuffers[SF_Domain],
NextUniformBufferIndex,
ForceUniformBindingUpdate);
NextUniformBufferIndex += NumDomainUniformBuffers;
}
SetupBindlessTextures( ContextState, PendingState.BoundShaderState->LinkedProgram->Samplers );
}
}
FOpenGLBoundShaderState::FOpenGLBoundShaderState(
FOpenGLLinkedProgram* InLinkedProgram,
FVertexDeclarationRHIParamRef InVertexDeclarationRHI,
FVertexShaderRHIParamRef InVertexShaderRHI,
FPixelShaderRHIParamRef InPixelShaderRHI,
FGeometryShaderRHIParamRef InGeometryShaderRHI,
FHullShaderRHIParamRef InHullShaderRHI,
FDomainShaderRHIParamRef InDomainShaderRHI
)
: CacheLink(InVertexDeclarationRHI, InVertexShaderRHI, InPixelShaderRHI,
InHullShaderRHI, InDomainShaderRHI, InGeometryShaderRHI, this)
{
FOpenGLVertexDeclaration* InVertexDeclaration = FOpenGLDynamicRHI::ResourceCast(InVertexDeclarationRHI);
FOpenGLVertexShader* InVertexShader = FOpenGLDynamicRHI::ResourceCast(InVertexShaderRHI);
FOpenGLPixelShader* InPixelShader = FOpenGLDynamicRHI::ResourceCast(InPixelShaderRHI);
FOpenGLHullShader* InHullShader = FOpenGLDynamicRHI::ResourceCast(InHullShaderRHI);
FOpenGLDomainShader* InDomainShader = FOpenGLDynamicRHI::ResourceCast(InDomainShaderRHI);
FOpenGLGeometryShader* InGeometryShader = FOpenGLDynamicRHI::ResourceCast(InGeometryShaderRHI);
VertexDeclaration = InVertexDeclaration;
VertexShader = InVertexShader;
PixelShader = InPixelShader;
GeometryShader = InGeometryShader;
HullShader = InHullShader;
DomainShader = InDomainShader;
LinkedProgram = InLinkedProgram;
}
FOpenGLBoundShaderState::~FOpenGLBoundShaderState()
{
check(LinkedProgram);
FOpenGLLinkedProgram* Prog = StaticLastReleasedPrograms[StaticLastReleasedProgramsIndex];
StaticLastReleasedPrograms[StaticLastReleasedProgramsIndex++] = LinkedProgram;
if (StaticLastReleasedProgramsIndex == LAST_RELEASED_PROGRAMS_CACHE_COUNT)
{
StaticLastReleasedProgramsIndex = 0;
}
OnProgramDeletion(LinkedProgram->Program);
}
bool FOpenGLBoundShaderState::NeedsTextureStage(int32 TextureStageIndex)
{
return LinkedProgram->TextureStageNeeds[TextureStageIndex];
}
int32 FOpenGLBoundShaderState::MaxTextureStageUsed()
{
return LinkedProgram->MaxTextureStage;
}
bool FOpenGLBoundShaderState::RequiresDriverInstantiation()
{
check(LinkedProgram);
bool const bDrawn = LinkedProgram->bDrawn;
LinkedProgram->bDrawn = true;
return !bDrawn;
}
bool FOpenGLComputeShader::NeedsTextureStage(int32 TextureStageIndex)
{
return LinkedProgram->TextureStageNeeds[TextureStageIndex];
}
int32 FOpenGLComputeShader::MaxTextureStageUsed()
{
return LinkedProgram->MaxTextureStage;
}
bool FOpenGLComputeShader::NeedsUAVStage(int32 UAVStageIndex)
{
return LinkedProgram->UAVStageNeeds[UAVStageIndex];
}
void FOpenGLDynamicRHI::BindPendingComputeShaderState(FOpenGLContextState& ContextState, FComputeShaderRHIParamRef ComputeShaderRHI)
{
VERIFY_GL_SCOPE();
FOpenGLComputeShader* ComputeShader = ResourceCast(ComputeShaderRHI);
bool ForceUniformBindingUpdate = false;
GLuint PendingProgram = ComputeShader->LinkedProgram->Program;
if (ContextState.Program != PendingProgram)
{
FOpenGL::BindProgramPipeline(PendingProgram);
ContextState.Program = PendingProgram;
MarkShaderParameterCachesDirty(PendingState.ShaderParameters, true);
ForceUniformBindingUpdate = true;
}
if (!GUseEmulatedUniformBuffers)
{
ComputeShader->LinkedProgram->VerifyUniformBlockBindings(CrossCompiler::SHADER_STAGE_COMPUTE, OGL_FIRST_UNIFORM_BUFFER);
BindUniformBufferBase(
ContextState,
ComputeShader->Bindings.NumUniformBuffers,
PendingState.BoundUniformBuffers[SF_Compute],
OGL_FIRST_UNIFORM_BUFFER,
ForceUniformBindingUpdate);
SetupBindlessTextures( ContextState, ComputeShader->LinkedProgram->Samplers );
}
}
/** Constructor. */
FOpenGLShaderParameterCache::FOpenGLShaderParameterCache() :
GlobalUniformArraySize(-1)
{
for (int32 ArrayIndex = 0; ArrayIndex < CrossCompiler::PACKED_TYPEINDEX_MAX; ++ArrayIndex)
{
PackedGlobalUniformDirty[ArrayIndex].StartVector = 0;
PackedGlobalUniformDirty[ArrayIndex].NumVectors = 0;
}
}
void FOpenGLShaderParameterCache::InitializeResources(int32 UniformArraySize)
{
check(GlobalUniformArraySize == -1);
// Uniform arrays have to be multiples of float4s.
UniformArraySize = Align(UniformArraySize,SizeOfFloat4);
PackedGlobalUniforms[0] = (uint8*)FMemory::Malloc(UniformArraySize * CrossCompiler::PACKED_TYPEINDEX_MAX);
PackedUniformsScratch[0] = (uint8*)FMemory::Malloc(UniformArraySize * CrossCompiler::PACKED_TYPEINDEX_MAX);
FMemory::Memzero(PackedGlobalUniforms[0], UniformArraySize * CrossCompiler::PACKED_TYPEINDEX_MAX);
FMemory::Memzero(PackedUniformsScratch[0], UniformArraySize * CrossCompiler::PACKED_TYPEINDEX_MAX);
for (int32 ArrayIndex = 1; ArrayIndex < CrossCompiler::PACKED_TYPEINDEX_MAX; ++ArrayIndex)
{
PackedGlobalUniforms[ArrayIndex] = PackedGlobalUniforms[ArrayIndex - 1] + UniformArraySize;
PackedUniformsScratch[ArrayIndex] = PackedUniformsScratch[ArrayIndex - 1] + UniformArraySize;
}
GlobalUniformArraySize = UniformArraySize;
for (int32 ArrayIndex = 0; ArrayIndex < CrossCompiler::PACKED_TYPEINDEX_MAX; ++ArrayIndex)
{
PackedGlobalUniformDirty[ArrayIndex].StartVector = 0;
PackedGlobalUniformDirty[ArrayIndex].NumVectors = UniformArraySize / SizeOfFloat4;
}
}
/** Destructor. */
FOpenGLShaderParameterCache::~FOpenGLShaderParameterCache()
{
if (GlobalUniformArraySize > 0)
{
FMemory::Free(PackedUniformsScratch[0]);
FMemory::Free(PackedGlobalUniforms[0]);
}
FMemory::Memzero(PackedUniformsScratch);
FMemory::Memzero(PackedGlobalUniforms);
GlobalUniformArraySize = -1;
}
/**
* Marks all uniform arrays as dirty.
*/
void FOpenGLShaderParameterCache::MarkAllDirty()
{
for (int32 ArrayIndex = 0; ArrayIndex < CrossCompiler::PACKED_TYPEINDEX_MAX; ++ArrayIndex)
{
PackedGlobalUniformDirty[ArrayIndex].StartVector = 0;
PackedGlobalUniformDirty[ArrayIndex].NumVectors = GlobalUniformArraySize / SizeOfFloat4;
}
}
/**
* Set parameter values.
*/
void FOpenGLShaderParameterCache::Set(uint32 BufferIndexName, uint32 ByteOffset, uint32 NumBytes, const void* NewValues)
{
uint32 BufferIndex = CrossCompiler::PackedTypeNameToTypeIndex(BufferIndexName);
check(GlobalUniformArraySize != -1);
check(BufferIndex < CrossCompiler::PACKED_TYPEINDEX_MAX);
check(ByteOffset + NumBytes <= (uint32)GlobalUniformArraySize);
PackedGlobalUniformDirty[BufferIndex].MarkDirtyRange(ByteOffset / SizeOfFloat4, (NumBytes + SizeOfFloat4 - 1) / SizeOfFloat4);
FMemory::Memcpy(PackedGlobalUniforms[BufferIndex] + ByteOffset, NewValues, NumBytes);
}
/**
* Commit shader parameters to the currently bound program.
* @param ParameterTable - Information on the bound uniform arrays for the program.
*/
void FOpenGLShaderParameterCache::CommitPackedGlobals(const FOpenGLLinkedProgram* LinkedProgram, int32 Stage)
{
SCOPE_CYCLE_COUNTER(STAT_OpenGLUniformCommitTime);
VERIFY_GL_SCOPE();
const uint32 BytesPerRegister = 16;
/**
* Note that this always uploads the entire uniform array when it is dirty.
* The arrays are marked dirty either when the bound shader state changes or
* a value in the array is modified. OpenGL actually caches uniforms per-
* program. If we shadowed those per-program uniforms we could avoid calling
* glUniform4?v for values that have not changed since the last invocation
* of the program.
*
* It's unclear whether the driver does the same thing and whether there is
* a performance benefit. Even if there is, this type of caching makes any
* multithreading vastly more difficult, so for now uniforms are not cached
* per-program.
*/
const TArray<FOpenGLLinkedProgram::FPackedUniformInfo>& PackedUniforms = LinkedProgram->StagePackedUniformInfo[Stage].PackedUniformInfos;
const TArray<CrossCompiler::FPackedArrayInfo>& PackedArrays = LinkedProgram->Config.Shaders[Stage].Bindings.PackedGlobalArrays;
for (int32 PackedUniform = 0; PackedUniform < PackedUniforms.Num(); ++PackedUniform)
{
const FOpenGLLinkedProgram::FPackedUniformInfo& UniformInfo = PackedUniforms[PackedUniform];
Merging //UE4/Release-4.11 to //UE4/Main (Up to CL#2897738) ========================== MAJOR FEATURES + CHANGES ========================== Change 2875445 on 2016/02/22 by Matthew.Griffin Added UE4.natvis to Visual Studio Projects #jira UE-27153 Change 2875456 on 2016/02/22 by Keith.Judge Fix custom stencil shaders on Xbox One #jira UES-1387 Change 2875524 on 2016/02/22 by Robert.Manuszewski More log info when saving shader temp files fails. Increased the number of attemps when moving a file fails. #jira UE-20945 Change 2875698 on 2016/02/22 by Rolando.Caloca UE4.11 - Add new bool for RHIs (unused currently) #jira UE-24967 Change 2875897 on 2016/02/22 by Taizyd.Korambayil #jira UE-20324 Re-imported Cloth Skeletal Meshes to Fix odd Circle Highlights Change 2875922 on 2016/02/22 by Mieszko.Zielinski Fixed BP-implemented EQS generators crashing when trying to add generated value of wrong type #UE4 #jira UE-25034 #rb Lukasz.Furman Change 2875960 on 2016/02/22 by Michael.Trepka Added a way to disable right click emulation on Mac and used it in TabNavigator to fix issues with its widgets not reacting to clicking #jira UE-21895 Change 2875984 on 2016/02/22 by Michael.Schoell Split output struct pins will no longer give a warning about override pins being removed. #jira UE-27150 - Format Text nodes and split nodes reporting warning that override pins are removed. Change 2876169 on 2016/02/22 by Ben.Marsh Changes to support building UHT plugins with the binary release. * Add source code and target files for UHT to binary distribution * Fix UBT deleting build products if we're only compiling a single module. * Fix UBT exception setting up compile environment when a module doesn't have any source files set to build. * Include DLL import libraries for UHT in the build * Add support for compiling UHT modules in BuildPluginCommand. Stages an empty host project to allow UHT to load any enabled plugins. Change 2876219 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2874609 #jira UE-24967 PC: Update D3D12 RHI - Implement _RenderThread versions of Create, Lock and Unlock Index/Vertex Buffer. Only synchronize threads on Readback - Limit GPU starvation on CPU bound scenarios by flushing work when the GPU is idle - Change texture streaming system to correctly account for placed textures. Also fix texture sizes so they accurately represent the real size of the allocation the GPU. - Disable API shader blobs - Add the ability to easily change allocation stategy for a given pool, also add a simple linear allocator and a 'Multi-Buddy Allocator' for efficiency in different scenarios - Pool Fences to prevent creation and destruction every frame when using Async Compute - Implement _RenderThread versions of CreateShaderResourceView and CreateUnorderedAccessView Change 2876232 on 2016/02/22 by Rolando.Caloca UE4.11 - Integration from 2876173 #jira UE-24967 PC: Update D3D12 RHI - Fix ResizeBuffers() failing due to dangling references to the backbuffer if deferred deletion is used. - Reorder when pending FRHIResources are deleted. This still needs to flush all pending deletes and ignore the deferred deletion queue otherwise some items may still be left in the engine's queue. - Fix UT build error due to missing FPlatformMisc::GetGPUDriverInfo() Change 2876366 on 2016/02/22 by Douglas.Copeland Adding Skeletal Meshes for Import Test Case #jira UE-24473 Change 2876401 on 2016/02/22 by Peter.Sauerbrei fix for WindowsClient build from UFE and Project Launcher #jira UE-23897 Change 2876456 on 2016/02/22 by Ben.Marsh Use a more hierarchical directory structure for packaged builds, rather than just dumping everything in the root. Now defaults to <Share>\\PackagedBuilds\\<Branch>\\<CL>\\<ProjectName>_<Platform>_<Configuration>. Change 2876507 on 2016/02/22 by Nick.Shin use HOME (osx) and USERPROFILE (windows) on appropriate target platform #jira UE-26414 -- Mac is missing .emscripten file necessary for packaging or launching onto HTML5 Change 2876537 on 2016/02/22 by Dan.Oconnor Removed dubious fix for an old bug, no longer needed but I havn't figured out what has changed. This fixes a crash on Replace References, but does not reintroduce UE-9497 #jira UE-24891 Change 2876545 on 2016/02/22 by Chad.Taylor SteamVR camera late-update fix #jira UE-27254 Change 2876825 on 2016/02/22 by Dan.Oconnor Unfortunate edge case in lifetime of UEdGraph's schema, schema is assigned after construction so its modification is in the undo buffer, and we clear it after undoing. #jira UE-25956 Change 2876878 on 2016/02/22 by Nick.Whiting PSVR HMD Server support #jira UE-27262 [CL 2905127 by Matthew Griffin in Main branch]
2016-03-11 09:55:03 -05:00
if (UniformInfo.Location < 0)
{
// Probably this uniform array was optimized away in a linked program
continue;
}
const uint32 ArrayIndex = UniformInfo.Index;
check(ArrayIndex < CrossCompiler::PACKED_TYPEINDEX_MAX);
const int32 NumVectors = PackedArrays[PackedUniform].Size / BytesPerRegister;
GLint Location = UniformInfo.Location;
const void* UniformData = PackedGlobalUniforms[ArrayIndex];
// This has to be >=. If LowVector == HighVector it means that particular vector was written to.
if (PackedGlobalUniformDirty[ArrayIndex].NumVectors > 0)
{
const int32 StartVector = PackedGlobalUniformDirty[ArrayIndex].StartVector;
int32 NumDirtyVectors = FMath::Min((int32)PackedGlobalUniformDirty[ArrayIndex].NumVectors, NumVectors - StartVector);
check(NumDirtyVectors);
UniformData = (uint8*)UniformData + StartVector * SizeOfFloat4;
Location += StartVector;
switch (UniformInfo.Index)
{
case CrossCompiler::PACKED_TYPEINDEX_HIGHP:
case CrossCompiler::PACKED_TYPEINDEX_MEDIUMP:
case CrossCompiler::PACKED_TYPEINDEX_LOWP:
FOpenGL::ProgramUniform4fv(LinkedProgram->Config.Shaders[Stage].Resource, Location, NumDirtyVectors, (GLfloat*)UniformData);
break;
case CrossCompiler::PACKED_TYPEINDEX_INT:
FOpenGL::ProgramUniform4iv(LinkedProgram->Config.Shaders[Stage].Resource, Location, NumDirtyVectors, (GLint*)UniformData);
break;
case CrossCompiler::PACKED_TYPEINDEX_UINT:
FOpenGL::ProgramUniform4uiv(LinkedProgram->Config.Shaders[Stage].Resource, Location, NumDirtyVectors, (GLuint*)UniformData);
break;
}
PackedGlobalUniformDirty[ArrayIndex].StartVector = 0;
PackedGlobalUniformDirty[ArrayIndex].NumVectors = 0;
}
}
}
void FOpenGLShaderParameterCache::CommitPackedUniformBuffers(FOpenGLLinkedProgram* LinkedProgram, int32 Stage, FUniformBufferRHIRef* RHIUniformBuffers, const TArray<CrossCompiler::FUniformBufferCopyInfo>& UniformBuffersCopyInfo)
{
SCOPE_CYCLE_COUNTER(STAT_OpenGLConstantBufferUpdateTime);
VERIFY_GL_SCOPE();
// Uniform Buffers are split into precision/type; the list of RHI UBs is traversed and if a new one was set, its
// contents are copied per precision/type into corresponding scratch buffers which are then uploaded to the program
const FOpenGLShaderBindings& Bindings = LinkedProgram->Config.Shaders[Stage].Bindings;
check(Bindings.NumUniformBuffers <= FOpenGLRHIState::MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE);
if (Bindings.bFlattenUB)
{
int32 LastInfoIndex = 0;
for (int32 BufferIndex = 0; BufferIndex < Bindings.NumUniformBuffers; ++BufferIndex)
{
const FOpenGLUniformBuffer* UniformBuffer = (FOpenGLUniformBuffer*)RHIUniformBuffers[BufferIndex].GetReference();
check(UniformBuffer);
const uint32* RESTRICT SourceData = UniformBuffer->EmulatedBufferData->Data.GetData();
for (int32 InfoIndex = LastInfoIndex; InfoIndex < UniformBuffersCopyInfo.Num(); ++InfoIndex)
{
const CrossCompiler::FUniformBufferCopyInfo& Info = UniformBuffersCopyInfo[InfoIndex];
if (Info.SourceUBIndex == BufferIndex)
{
check((Info.DestOffsetInFloats + Info.SizeInFloats) * sizeof(float) <= (uint32)GlobalUniformArraySize);
float* RESTRICT ScratchMem = (float*)PackedGlobalUniforms[Info.DestUBTypeIndex];
ScratchMem += Info.DestOffsetInFloats;
FMemory::Memcpy(ScratchMem, SourceData + Info.SourceOffsetInFloats, Info.SizeInFloats * sizeof(float));
PackedGlobalUniformDirty[Info.DestUBTypeIndex].MarkDirtyRange(Info.DestOffsetInFloats / NumFloatsInFloat4, (Info.SizeInFloats + NumFloatsInFloat4 - 1) / NumFloatsInFloat4);
}
else
{
LastInfoIndex = InfoIndex;
break;
}
}
}
}
else
{
const auto& PackedUniformBufferInfos = LinkedProgram->StagePackedUniformInfo[Stage].PackedUniformBufferInfos;
int32 LastCopyInfoIndex = 0;
auto& EmulatedUniformBufferSet = LinkedProgram->StagePackedUniformInfo[Stage].LastEmulatedUniformBufferSet;
for (int32 BufferIndex = 0; BufferIndex < Bindings.NumUniformBuffers; ++BufferIndex)
{
const FOpenGLUniformBuffer* UniformBuffer = (FOpenGLUniformBuffer*)RHIUniformBuffers[BufferIndex].GetReference();
check(UniformBuffer);
if (EmulatedUniformBufferSet[BufferIndex] != UniformBuffer->UniqueID)
{
EmulatedUniformBufferSet[BufferIndex] = UniformBuffer->UniqueID;
// Go through the list of copy commands and perform the appropriate copy into the scratch buffer
for (int32 InfoIndex = LastCopyInfoIndex; InfoIndex < UniformBuffersCopyInfo.Num(); ++InfoIndex)
{
const CrossCompiler::FUniformBufferCopyInfo& Info = UniformBuffersCopyInfo[InfoIndex];
if (Info.SourceUBIndex == BufferIndex)
{
const uint32* RESTRICT SourceData = UniformBuffer->EmulatedBufferData->Data.GetData();
SourceData += Info.SourceOffsetInFloats;
float* RESTRICT ScratchMem = (float*)PackedUniformsScratch[Info.DestUBTypeIndex];
ScratchMem += Info.DestOffsetInFloats;
FMemory::Memcpy(ScratchMem, SourceData, Info.SizeInFloats * sizeof(float));
}
else if (Info.SourceUBIndex > BufferIndex)
{
// Done finding current copies
LastCopyInfoIndex = InfoIndex;
break;
}
// keep going since we could have skipped this loop when skipping cached UBs...
}
// Upload the split buffers to the program
const auto& UniformBufferUploadInfoList = PackedUniformBufferInfos[BufferIndex];
auto& UBInfo = Bindings.PackedUniformBuffers[BufferIndex];
for (int32 InfoIndex = 0; InfoIndex < UniformBufferUploadInfoList.Num(); ++InfoIndex)
{
const auto& UniformInfo = UniformBufferUploadInfoList[InfoIndex];
const void* RESTRICT UniformData = PackedUniformsScratch[UniformInfo.Index];
int32 NumVectors = UBInfo[InfoIndex].Size / SizeOfFloat4;
check(UniformInfo.ArrayType == UBInfo[InfoIndex].TypeName);
switch (UniformInfo.Index)
{
case CrossCompiler::PACKED_TYPEINDEX_HIGHP:
case CrossCompiler::PACKED_TYPEINDEX_MEDIUMP:
case CrossCompiler::PACKED_TYPEINDEX_LOWP:
FOpenGL::ProgramUniform4fv(LinkedProgram->Config.Shaders[Stage].Resource, UniformInfo.Location, NumVectors, (GLfloat*)UniformData);
break;
case CrossCompiler::PACKED_TYPEINDEX_INT:
FOpenGL::ProgramUniform4iv(LinkedProgram->Config.Shaders[Stage].Resource, UniformInfo.Location, NumVectors, (GLint*)UniformData);
break;
case CrossCompiler::PACKED_TYPEINDEX_UINT:
FOpenGL::ProgramUniform4uiv(LinkedProgram->Config.Shaders[Stage].Resource, UniformInfo.Location, NumVectors, (GLuint*)UniformData);
break;
}
}
}
}
}
}
Copying //UE4/Dev-Mobile to //UE4/Dev-Main (Source: //UE4/Dev-Mobile @ 3010693) #lockdown nick.penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 2958982 on 2016/04/28 by Dmitriy.Dyomin Set owner name for RHI texture, for easier debugging Change 2976446 on 2016/05/12 by Niklas.Smedberg Fixed Device Profile CVars so they work even if a DLL with the cvar definition is loaded afterwards. (And they now also go through the common code path for CVars.) Change 2983781 on 2016/05/19 by Steve.Cano Check in PlayUsingLauncher if the device we're launching to is authorized by the computer. Could not get to this information about Devices so added an IsAuthorized interface to ITargetDevice that is overriden in the AndroidTargetDevice. Also make sure to referesh the authorized state as needed for Android device detection. Finally, changed the name of the authorized variable to be more readable (true == authorized instead of true == unauthorized) #jira UE-21121 #ue4 #android Change 2994202 on 2016/05/31 by Allan.Bentham Prevent clear transulcency volume null deref crash. Change test for allocated deferred render targets by testing against an exclusively deferred target (instead of potentially shared shadow depth surface) probable fix for UE-22073 Change 2995613 on 2016/05/31 by Dmitriy.Dyomin Added: Option to force full precision in a material UEMOB-109 Change 2997960 on 2016/06/02 by Gareth.Martin Refactored Landscape serialization to allow cooking both the data used for normal rendering and mobile rendering into the same package #jira UE-31474 Change 2997988 on 2016/06/02 by Gareth.Martin Files missing from CL 2997960 #jira UE-31474 Change 2999222 on 2016/06/03 by Jack.Porter Fix up ETargetPlatformFeatures::ForwardRendering and ETargetPlatformFeatures::DeferredRendering for iOS to support the Metal MRT deferred renderer Change 2999229 on 2016/06/03 by Jack.Porter Rename ETargetPlatformFeatures::ForwardRendering to TargetPlatformFeatures::MobileRendering Change 3003540 on 2016/06/07 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3003779 on 2016/06/07 by Dmitriy.Dyomin Fixed: Criss-crossed sublevels cause NavMesh errors #jira UE-27157 Change 3004535 on 2016/06/07 by Steve.Cano Adding the OnControllerConnectionChange delegate message when a controller is connected on Android. Also added additional future broadcast statement when disconnect support is added for Android. #jira UE-25697 #ue4 #android Change 3005205 on 2016/06/07 by Niklas.Smedberg Bumped ASTC format version to invalidate bad server DDC Change 3005347 on 2016/06/08 by Dmitriy.Dyomin Added a way to cache OpenGL program binaries on the disk. Disabled by default. Can be enabled only on Android platform (r.UseProgramBinaryCache=1) #jira UEMOB-108 Change 3005524 on 2016/06/08 by Dmitriy.Dyomin Fixed iOS build broken by CL# 3005347 Change 3005528 on 2016/06/08 by Jack.Porter Changed hardcoded checkboxes from quality level overrides dialog to use the general property details code. Now magically supports any uproperty types such as enums or integers added to FMaterialQualityOverrides. Change 3005607 on 2016/06/08 by Dmitriy.Dyomin Fixed: Occasional crash on using Launch on Android device when device is being disconnected Change 3006705 on 2016/06/08 by Chris.Babcock Fix virtual joystick to return -1 to 1 ranges for thumbsticks #jira UE-31799 #ue4 #android #ios Change 3006960 on 2016/06/08 by Jack.Porter Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile) Change 3007050 on 2016/06/09 by Jack.Porter FAutomationWorkerModule::ReportTestComplete() needs to send analytics first as the message endpoint will free the memory resulting in a crash Change 3007129 on 2016/06/09 by Dmitriy.Dyomin Fixed: Black edges seen on flames in Sun Temple #jira UE-31712 Change 3010686 on 2016/06/13 by Dmitriy.Dyomin Fixed: Android Monolithic warnings for glGetProgramBinaryOES and glProgramBinaryOES #jira UE-31933 [CL 3011074 by Jack Porter in Main branch]
2016-06-13 12:20:22 -04:00
// Currently only Android platform can use binary program cache
TAutoConsoleVariable<int32> FOpenGLProgramBinaryCache::CVarUseProgramBinaryCache(
TEXT("r.UseProgramBinaryCache"),
0,
TEXT("If true, enables binary program cache"),
ECVF_ReadOnly | ECVF_RenderThreadSafe
);
FOpenGLProgramBinaryCache* FOpenGLProgramBinaryCache::CachePtr = nullptr;
FOpenGLProgramBinaryCache::FOpenGLProgramBinaryCache(const FString& InCachePath)
: CachePath(InCachePath)
{
}
FOpenGLProgramBinaryCache::~FOpenGLProgramBinaryCache()
{
};
bool FOpenGLProgramBinaryCache::IsEnabled()
{
return CachePtr != nullptr;
}
void FOpenGLProgramBinaryCache::Initialize()
{
check(CachePtr == nullptr);
// Can be enabled only on Android platform right now
bool bEnableCache = PLATFORM_ANDROID ? (CVarUseProgramBinaryCache.GetValueOnAnyThread() != 0) : false;
if (bEnableCache && FOpenGL::SupportsProgramBinary())
{
FString CacheFolderPath;
#if PLATFORM_ANDROID
extern FString GExternalFilePath;
CacheFolderPath = GExternalFilePath / TEXT("ProgramBinaryCache");
#else
CacheFolderPath = FPaths::GameSavedDir() / TEXT("ProgramBinaryCache");
#endif
ANSICHAR* GLVersion = (ANSICHAR*)glGetString(GL_VERSION);
ANSICHAR* GLRenderer = (ANSICHAR*)glGetString(GL_RENDERER);
FString HashString;
HashString.Append(GLVersion);
HashString.Append(GLRenderer);
FSHAHash VersionHash;
FSHA1::HashBuffer(TCHAR_TO_ANSI(*HashString), HashString.Len(), VersionHash.Hash);
CacheFolderPath = CacheFolderPath / VersionHash.ToString();
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
if (!PlatformFile.CreateDirectoryTree(*CacheFolderPath))
{
UE_LOG(LogRHI, Warning, TEXT("Failed to create directory for a program binary cache. Cache will be disabled: %s"), *CacheFolderPath);
}
else
{
CachePtr = new FOpenGLProgramBinaryCache(CacheFolderPath);
UE_LOG(LogRHI, Log, TEXT("Using program binary cache: %s"), *CacheFolderPath);
}
}
}
void FOpenGLProgramBinaryCache::Shutdown()
{
if (CachePtr)
{
delete CachePtr;
CachePtr = nullptr;
}
}
bool FOpenGLProgramBinaryCache::DeferShaderCompilation(GLuint Shader, const TArray<ANSICHAR>& GlslCode)
{
bool bCanDeferShaderCompilation = true;
#if PLATFORM_ANDROID
bCanDeferShaderCompilation = !FOpenGL::IsCheckingShaderCompilerHacks();
#endif
if (CachePtr && bCanDeferShaderCompilation)
{
FPendingShaderCode PendingShaderCode;
CompressShader(GlslCode, PendingShaderCode);
CachePtr->ShadersPendingCompilation.Add(Shader, MoveTemp(PendingShaderCode));
return true;
}
return false;
}
void FOpenGLProgramBinaryCache::CacheProgram(GLuint Program, const FOpenGLLinkedProgramConfiguration& Config)
{
if (CachePtr)
{
GLint BinaryLength;
glGetProgramiv(Program, GL_PROGRAM_BINARY_LENGTH, &BinaryLength);
if (BinaryLength > 0)
{
TArray<uint8> ProgramBinary;
// BinaryFormat will be stored at the start of ProgramBinary array
ProgramBinary.SetNumUninitialized(BinaryLength + sizeof(GLenum));
uint8* ProgramBinaryPtr = ProgramBinary.GetData();
FOpenGL::GetProgramBinary(Program, BinaryLength, &BinaryLength, (GLenum*)ProgramBinaryPtr, ProgramBinaryPtr + sizeof(GLenum));
CachePtr->SaveProgramBinary(Config, ProgramBinary);
}
}
}
bool FOpenGLProgramBinaryCache::UseCachedProgram(GLuint Program, const FOpenGLLinkedProgramConfiguration& Config)
{
if (CachePtr)
{
TArray<uint8> ProgramBinary;
if (CachePtr->LoadProgramBinary(Config, ProgramBinary))
{
int32 BinarySize = ProgramBinary.Num();
uint8* ProgramBinaryPtr = ProgramBinary.GetData();
// BinaryFormat is stored at the start of ProgramBinary array
FOpenGL::ProgramBinary(Program, ((GLenum*)ProgramBinaryPtr)[0], ProgramBinaryPtr + sizeof(GLenum), BinarySize - sizeof(GLenum));
return true;
}
}
return false;
}
void FOpenGLProgramBinaryCache::CompilePendingShaders(const FOpenGLLinkedProgramConfiguration& Config)
{
if (CachePtr)
{
for (int32 StageIdx = 0; StageIdx < ARRAY_COUNT(Config.Shaders); ++StageIdx)
{
GLuint ShaderResource = Config.Shaders[StageIdx].Resource;
FPendingShaderCode* PendingShaderCodePtr = CachePtr->ShadersPendingCompilation.Find(ShaderResource);
if (PendingShaderCodePtr)
{
TArray<ANSICHAR> GlslCode;
UncompressShader(*PendingShaderCodePtr, GlslCode);
CompileCurrentShader(ShaderResource, GlslCode);
CachePtr->ShadersPendingCompilation.Remove(ShaderResource);
}
}
}
}
FString FOpenGLProgramBinaryCache::GetProgramBinaryFilename(const FOpenGLLinkedProgramConfiguration& Config) const
{
FString ProgramFilename = CachePath + TEXT("/");
for (int32 StageIdx = 0; StageIdx < ARRAY_COUNT(Config.Shaders); StageIdx++)
{
if (Config.Shaders[StageIdx].Resource)
{
ProgramFilename.Append(Config.Shaders[StageIdx].Hash.ToString());
}
}
return ProgramFilename;
}
bool FOpenGLProgramBinaryCache::LoadProgramBinary(const FOpenGLLinkedProgramConfiguration& Config, TArray<uint8>& OutBinary) const
{
FString ProgramFilename = GetProgramBinaryFilename(Config);
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
TUniquePtr<IFileHandle> FileHandle(PlatformFile.OpenRead(*ProgramFilename));
if (FileHandle.IsValid())
{
int64 BinarySize = FileHandle->Size();
OutBinary.SetNum((int32)BinarySize);
FileHandle->Read(OutBinary.GetData(), BinarySize);
return true;
}
return false;
}
void FOpenGLProgramBinaryCache::SaveProgramBinary(const FOpenGLLinkedProgramConfiguration& Config, const TArray<uint8>& InBinary) const
{
FString ProgramFilename = GetProgramBinaryFilename(Config);
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
TUniquePtr<IFileHandle> FileHandle(PlatformFile.OpenWrite(*ProgramFilename));
if (FileHandle.IsValid())
{
FileHandle->Write(InBinary.GetData(), InBinary.Num());
}
}
void FOpenGLProgramBinaryCache::CompressShader(const TArray<ANSICHAR>& InGlslCode, FPendingShaderCode& OutCompressedShader)
{
check(InGlslCode.GetTypeSize() == sizeof(uint8));
check(OutCompressedShader.GlslCode.GetTypeSize() == sizeof(uint8));
int32 UncompressedSize = InGlslCode.Num();
int32 CompressedSize = UncompressedSize * 4.f / 3.f;
OutCompressedShader.GlslCode.Empty(CompressedSize);
OutCompressedShader.GlslCode.SetNum(CompressedSize);
OutCompressedShader.bCompressed = FCompression::CompressMemory(
(ECompressionFlags)(COMPRESS_ZLIB | COMPRESS_BiasMemory),
(void*)OutCompressedShader.GlslCode.GetData(),
CompressedSize,
(void*)InGlslCode.GetData(),
UncompressedSize);
if (OutCompressedShader.bCompressed)
{
// shrink buffer
OutCompressedShader.GlslCode.SetNum(CompressedSize, true);
}
else
{
OutCompressedShader.GlslCode = InGlslCode;
}
OutCompressedShader.UncompressedSize = UncompressedSize;
}
void FOpenGLProgramBinaryCache::UncompressShader(const FPendingShaderCode& InCompressedShader, TArray<ANSICHAR>& OutGlslCode)
{
check(OutGlslCode.GetTypeSize() == sizeof(uint8));
check(InCompressedShader.GlslCode.GetTypeSize() == sizeof(uint8));
if (InCompressedShader.bCompressed)
{
int32 UncompressedSize = InCompressedShader.UncompressedSize;
OutGlslCode.Empty(UncompressedSize);
OutGlslCode.SetNum(UncompressedSize);
bool bResult = FCompression::UncompressMemory(
(ECompressionFlags)(COMPRESS_ZLIB | COMPRESS_BiasMemory),
(void*)OutGlslCode.GetData(),
UncompressedSize,
(void*)InCompressedShader.GlslCode.GetData(),
InCompressedShader.GlslCode.Num());
check(bResult);
}
else
{
OutGlslCode = InCompressedShader.GlslCode;
}
}