16 Commits

Author SHA1 Message Date
graham wihlidal
561e36e5c7 Nanite: Added "Preserve Area" checkbox to correct leaves disappearing on trees.
This aims to preserve the surface area during simplification. If area is lost, open boundary edges of the mesh are dilated to compensate. This is useful for foliage that tends to thin out in the distance if not enabled.

Also include misc fixes:
Collapses that completely remove disjoint triangles have an error of the area of what was removed.
Would not alias 0 and -0 verts due to binary comparison.

#rb graham.wihlidal
#preflight 63349e32141f314ed601978d

#ushell-cherrypick of 22229630 by Brian.Karis
#preflight 6334c401f418a1071a35b4a4

[CL 22260505 by graham wihlidal in ue5-main branch]
2022-09-29 20:24:18 -04:00
Brian Karis
79bab683d3 Add spring quadrics
#rb none
#preflight

[CL 19841678 by Brian Karis in ue5-main branch]
2022-04-20 19:40:11 -04:00
brian karis
e838341c86 External edges now handle non-manifold meshes, ie multiple adjacency
Added Moore-Penrose pseudo inverse for solving singular quadrics. Disabled for now.

#rb rune.stubbe

#ROBOMERGE-AUTHOR: brian.karis
#ROBOMERGE-SOURCE: CL 18415437 in //UE5/Release-5.0/... via CL 18415438
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18415441 by brian karis in ue5-release-engine-test branch]
2021-12-08 20:32:07 -05:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
Brian Karis
e1dab2c3a9 Fixed Nanite holes which were due to inversion penalty being scale only. When error is zero or near zero like an edge on a flat plane, triangle inversion is also likely and the penality for it doesn't help if it's a scale.
The reason why I switched from bias to scale was to put the penalities in the same relative spectrum of the collapses being considered. Degree should probably still be more like that but for now it's safer to just go back to what this was before.

[CL 14808423 by Brian Karis in ue5-main branch]
2020-11-23 20:45:39 -04:00
Brian Karis
49538671ac Fix stupid static analysis
#jira UE-95281
#rb none

[CL 14205835 by Brian Karis in ue5-main branch]
2020-08-27 19:57:22 -04:00
Alexis Matte
27186b5ae0 Fix again msvc and clang pragma call, forget the pop :( at the end of file
#jira none
#rb none

[CL 13943033 by Alexis Matte in ue5-main branch]
2020-07-24 17:47:55 -04:00
Alexis Matte
66b442a097 Fix clang build pragma error
#jira none
#fyi brian.karis, michael.daum
#rb none

[CL 13942258 by Alexis Matte in ue5-main branch]
2020-07-24 11:35:34 -04:00
Brian Karis
b98ce805c1 Fix for clang 9
#fyi michal.valient

[CL 13857385 by Brian Karis in ue5-main branch]
2020-07-14 17:14:00 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
Lina Halper
77c8fc6d6c Copying //UE4/Dev-AnimPhys to Dev-Main (//UE4/Dev-Main)
#lockdown nick.penwarden
#fyi: James.Golding
#rb: none

[CL 4001436 by Lina Halper in Main branch]
2018-04-12 16:57:51 -04:00
Bob Tellez
c3818ebea9 Merging from //UE4/Fortnite-Staging up to CL#3673800 based on CL#3664064 from //Fortnite/Main
#rb none
#lockdown Nick.Penwarden

=================================================================================================
THESE CHANGES TOUCH MULTIPLE PLATFORMS AND/OR RESTRICTED FOLDERS.
YOU MUST REVIEW THESE MANUALLY AND APPEND THEM TO THE DESCRIPTIONS FOR THE APPROPRIATE PLATFORMS.
=================================================================================================

Change 3662267 by Nick.Darnell

	Engine - Fixing a bug in GetAccurateRealTime, it wasn't subtracting GStartTime, which if you don't prevents accurate platform time when you try to store it in a float.

	#jira nojira

Change 3662176 by Ben.Marsh

	Disable image integrity report generation if a debugger is attached, and in editor builds.

	#jira FORT-55656

Change 3656958 by Luke.Thatcher

	[FORTNITE] [CONSOLE] [+] Improved frame syncing mechanism
	 - Improves input latency by allowing the game thread to sync to the swap chain flip of the previous frame.
	 - Added "r.GTSyncType" CVar to control how the game thread syncs with the rest of the pipe.
	 - r.GTSyncType 2 will sync the game thread with the flip of the swap chain, preventing the pipe from getting too long and causing excess input latency.

	Platforms are required to implement RHIWaitForFlip and RHISignalFlipEvent, and call RHIInitializeFlipTracking on RHI startup.
	A separate thread monitors the progress of frame flips and signals task graph events as they pass their corresponding frame index.
	In r.GTSyncType 2 mode, the game thread is signaled by this flip tracking thread.

	[~] Unified platform specific sync interval CVars (D3D12.SyncInterval, D3D11.SyncInterval, r.PS4FlipRate, RHI.SyncIntervalOgl) into one: rhi.SyncInterval
	 - 1 == 60Hz
	 - 2 == 30Hz
	 - 3 == 20Hz

	[-] Removed large number in XboxOneTime. Adding this arbitrary number prevents us from comparing timestamps from FPlatformTime::Seconds() and various OS callbacks (e.g. flip timings).

	#jira FORT-50803

Change 3655598 by Lukasz.Furman

	added filtering for navmesh's low height spans to fix crash on layer partitioning
	% of span reductions depends on presence of stair or roof building in navmesh tile, changed failsafes in layer code to ignore entire tile if heightfield is too complex to partition instead of reallocating memory

	#jira FORT-35375

Change 3648972 by Keith.Judge

	Add analytics to help diagnose default parameter collection buffer issue.

	+++ REMOVE ONCE CORE ISSUE IS SOLVED +++

	#jira FORT-54690

Change 3648756 by Bart.Hawthorne

	Integrate 3645298 from //UE4/Dev-Networking

	Deprecate GetNetworkObjectInfo in favor of separate FindNetworkObjectInfo and FindOrCreateNetworkObjectInfo methods.

	#jira none

Change 3643090 by Josh.Markiewicz

	#UE4 - proper handling of "pending connection lost"
	- triggered only if a connection is lost and there no "owning actor" to deal with the connection loss
	-- added Rejoin and CleanedUp states to connection to make sure that the pending connection lost delegate only fires at the appropriate time
	- delegate returns the unique id of the player if known (still possible to be unknown if connection lost after NMT_Hello)

	- changed debug output on timeout if the net connection was already in the process of being destroyed
	-- occurs when game hitches during the pending destroy 2 second wait
	-- ReceivedAcks should have been called to clean things up quietly in those 2 seconds but blocking the game thread will cause the cleanup to look like a timeout

	- added userid to UNetConnection::Describe
	- bad split screen player handling of unique id
	-- splitscreen uniqueid was overwriting the primary player id
	-- only store the id on the child connection

	- added some clarifying comments

	#review-3642816 @ryan.gerleve, @bob.tellez, @sam.zamani, @bart.hawthorne, @dave.ratti
	#jira FORT-26776

Change 3639043 by Alex.Thurman

	Fix CommonTreeView SetSelection to correctly update list navigation, and behave similarly to CommonListView's SetSelectedItem.

	#JIRA FORT-45841

Change 3632275 by Seth.Weedin

	#JIRA FORT-54203 - Add clamps to ActiveSound fade interpolation to prevent unwanted volume spikes. Remove 0.01 start time for single-fire audio cues. Should remove the sudden pops sometimes heard when firing weapons, as well as smooth out fade volume in general.

Change 3626944 by Josh.Markiewicz

	#UE4 - added "updates connection status" flag to ServiceConfigMCP
	- disable updates on Cloud and Friend services (Fortnite only)
	- removed overloaded ProcessConnectionStatus function in cloud service
	#jira FORT-53113

Change 3626226 by Stewart.Lynch

	LLM Update - Memory reductions, Summary page, enum scopes, refactor and cleanup of tags

	* Remove all static arrays and hard limits from LLM. Everything is now dynamically allocated using the internal LLM allocators. The overhead when LLM is disabled is now only 48K (was 40MB)
	* re-wrote LLMMap. Now stores an int32 index rather then pointer in the HashMap array. Also, changed the Values to be arrays for structs instead of structs of arrays. Means that the tag can be stored in a single byte. Changed the size of the allocation size from int64 to int32. All this takes the memory down from around 600MB to 100MB. It was 120 bytes per allocation, now 29 bytes.
	* changed all LLM scopes over to enums. This has a number of benefits; LLM can be enable in Test, less CPU overhead, stored in a byte (LLM overhead /= 8)
	* summary page for content creators where all lower-level stats are grouped under one Engine stat
	* renamed ELLMScopeTag enum to ELLMTag
	* renamed LLM_SCOPED_TAG_WITH_ENUM macro to LLM_SCOPE
	* removed Tracker arg from LLM_SCOPE and added LLM_PLATFORM_SCOPE macro
	* fixed GenericPlatformMallocCrash stat. Although it seems not be be used anymore
	* fixed BackupOOMMemoryPool stat (now shows in both default and platform pages)
	* added separate LLM enums for XB1, PS4 and D3D12 (PS4LLM.cpp/h etc.)
	* lots of changes adding/removing/renaming tags
	* added LLMArray and FLLMObjectAllocator classes
	* disabled asset tag tracking by default because it takes up so much memory even when not used
	* enable LLM in all non-shipping builds. In Test the on screendisplay won't show because it uses the stats system but it till still write out the csv.
	* all the stat macros have been left as they were and can be enabled on the LLM_STAT_TAGS_ENABLED define. These are needed for the asset tagging.
	* disabled LLM_TRACK_PEAK_MEMORY because there is a problem with the way it adds the peaks for multiple threads. This needs to be fixed.
	* added a CVar to control the csv write interval: LLM.LLMWriteInterval
	* added static arrays for the enum tags setup. Easier to manage and removes need for slow switch statements.
	* renamed FLLMThreadStateManager to FLLMTracker to make it consistent with the enum
	* fixed program size stat which was broken recently on PS4. This was due to initialisation order and global platform stats setup

	#jira NONE-01

Change 3622978 by Lukasz.Furman

	changed WeaponStatus BT decorator to be event driven, fixes AI trying to check ranged weapon abilities without valid weapon
	includes copy of CL# 3620700

	#jira FORT-45914
	#review-3622979 John.Abercrombie

Change 3622340 by Josh.Markiewicz

	#UE4 - playerid netconnection variable setup properly on clients and servers for both beacons and game net drivers
	- ipconnection prints uniqueid with lowleveldescribe

	#jira fort-0

Change 3621386 by Tim.Tillotson

	Add the ability to retry HTTP operations by VERB. This allows us to automatically retry cloud save PUT operations.
	#JIRA FORT-53717
	#review-3621317 @Josh.Markiewicz @Ian.Fox @Carlos.Cuello

Change 3620517 by Keith.Judge

	Xbox One - Revert iOS behaviour for the depth bias back to how it was, and make separate XB1 change use its own define to avoid confusion.

	#jira FORT-53928

Change 3620248 by Lukasz.Furman

	changed behavior of UBTTask_MoveTo.bStopOnOverlap flag after recent AcceptanceRadius fix, updated comments to be more detailed
	#jira nojira

Change 3616187 by Bob.Tellez

	#UE4 Throwing an error (for now) if you attempt to use both the malloc profiler and leak detection at the same time since it causes a deadlock.

	#JIRA UE-0

Change 3613935 by Peter.Knepley

	More logging on update launcher launching

	#jira nojira
	#robomerge rp rn

Change 3613537 by Marcus.Wassmer

	Safety asserts around the MarkPendingKill feature for rendering classes.
	#jira FORT-50385

Change 3613399 by Arne.Schober

	Extended ShowMaterialDrawEvents to enable it only in very specific passes and default enabled Depth for Fortnite on PS4 to track down a crash.
	#RB Marcus.Wassmer
	#jira FORT-53610

Change 3610794 by robomerge

	#ROBOMERGE-AUTHOR: marc.audy
	Reduce UMG class memory
	#jira UE-52043

	#ROBOMERGE-SOURCE: CL 3610792 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3610144 by Stewart.Lynch

	General LLM improvements

	* added tracking for misc task graph tasks (moves 20MB out of Untagged)
	* renamed EngineTick to EngineMisc
	* added tracking for FName
	* added tracking for GC_ProcessObjectArray potential leak
	* renamed index & vertex buffers stat to Meshes
	* added hooks for MemPro to track allocations from a single category. Currently defined out. I haven't added MemPro.cpp/h.
	* removed AVAILABLE_PHYSICAL stat from LLM csv
	* csv files now include the date in the filename
	* fixed potential threading bug when reading stat values to csv
	* made IsDebugMemoryEnabled() always return false in shipping and if not runnong on a dev-kit (PS4). The reason is that the function is a bit hacky, and should only be used for debug purposes, such as displaying the on screen warning.
	* added lots more scopes
	* started changing Stat scopes to enum scopes. Stat scopes will be phased out.
	* added tracking of FName memory
	* added llmplatform tracking for XBoxSymbols
	* added llm tracking for CPU symbol allocations (20MB)
	* wrote an allocator for XBoxOneStack reading so that it doesn't go through Malloc and get tracked by LLM.
	* added tracking for GC
	* fixed tracking for TransientMemoryAllocator
	* added tracking for networking memory
	* added more audio memory tracking
	* added tracking for blueprints
	* added tracking for static meshes
	* show on screen warning if debug memory is enabled
	* added tracking for particles
	* renamed Phys to PhysX and added more scopes
	* renamed Slate to UI and added more scopes
	* much better coverage of networking memory
	* improved coverage of audio

	#jira FORT-53420

Change 3610136 by robomerge

	#ROBOMERGE-AUTHOR: marc.audy
	Reduce size of UStaticMeshComponent by 224 bytes (cumulative, 64 bytes exclusive)
	Reduce size of UPrimitiveComponent by 176 bytes (cumulative, 64 bytes exclusive).
	Reduce size of USceneComponent by 112 bytes.
	Reduce size of FLightingChannels from 3 bytes to 1.
	Reduce size of FBodyInstance by 16 bytes.

	#jira FORT-52043

	#ROBOMERGE-SOURCE: CL 3610134 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3607937 by robomerge

	#ROBOMERGE-AUTHOR: paul.moore
	#jira FORT-53105
	- Fix websocket not providing information when the peer closes the connection.

	#ROBOMERGE-SOURCE: CL 3607933 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3607042 by Bart.Hawthorne

	Move replay.Loop functionality into the demo net driver and rename it demo.Loop

	#jira none

Change 3605448 by robomerge

	#ROBOMERGE-AUTHOR: seth.weedin
	#Athena - Pass owner to ActiveSounds created using PlaySoundAtLocation/PlaySound2D to allow "Limit to Owner" concurrency rules to work. Hook up for weapon sounds. #JIRA FORT-53180

	#ROBOMERGE-SOURCE: CL 3605443 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3604787 by robomerge

	#ROBOMERGE-AUTHOR: mike.fricker
	Initial support for hotfixing live assets from .ini files
	- This allows clients and server to patch certain assets in memory whenever .ini file hotfixes are downloaded
	- Only CurveTables and DataTables are supported for now
	- The new asset content must be in Json format, the same format the editor uses for importing
	- Assets that are hotfixed will be synchronously loaded if they're not already in memory.  They'll be retained in memory afterwards.
	- IMPORTANT: Json data must be supplied on a single line, and all double quotes must be escaped!

	- The changes must go in the Game.ini file and use the following syntax:

	          [AssetHotfix]
	          +CurveTable=("/Game/Folder/MyCurveTable","[{\"Name\":\"Default\"}]")
	          +DataTable=("/Game/Folder2/MyDataTable","[{\"Name\":\"Foo\"}]")

	#jira FORT-52099
	[CODEREVIEW] frank.gigliotti
	[FYI] peter.knepley,bob.tellez

	#ROBOMERGE-SOURCE: CL 3604784 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3602067 by robomerge

	#ROBOMERGE-AUTHOR: mike.fricker
	Loading time improvements
	- This shaves off up to 10 seconds of load time on PS4 in Athena

	Details:
	- Fixed multiple sub-levels not being able to be enqueued for loading in a single client frame.  Athena has ~300 sub-levels, so this ended up wasting up many seconds.
	- Fixed 3D world being rendered while loading (frees up game thread cycles for throttled streaming)
	- UWorld::AllowLevelLoadRequests() was not allowing load requests to go through while an async load was in progress and the match had started.  It now allows this as long as the world isn't being rendered (loading screen.)
	- Eliminated extra 2 second delay before loading screen is dismissed (in Athena only)

	- Note:  A side effect of this change is that the progress bar may not update as smoothly on loading screen.  We'll look at tuning the throttle settings if it ends up being a problem.

	[CODEREVIEW] ori.cohen
	#jira AT-1477

	#ROBOMERGE-SOURCE: CL 3602061 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3601951 by Luke.Thatcher

	[FORTNITE] [PS4] [!] Fix memory stats in the old PS4 memory system
	 - Physical memory stat now includes garlic and onion allocations. CPU OOMs will result in "AvailablePhysical" being close to 0.
	 - Added garlic, onion and defrag stats to the platform memory stats struct.
	 - Added fixed pool sizes to platform memory stats.
	 - Modified the Fortnite heartbeat logging to include extra details of PS4 fixed sized pools.

	#jira FORT-52910

Change 3600340 by robomerge

	#ROBOMERGE-AUTHOR: wes.hunt
	All Fort analytics events now contain a GameState attribute indicating the active GameState ClassName when the event is sent.

	Added some new context to crashreporter to help identify Athena matches near and long term.
	* Near Term: GameNameSuffix - set via FCoreDelegates::CrashOverrideParamsChanged
	  * Added bools to the params to indicate WHICH ones are changing
	  * Allows you to set only some values, and clear them out.
	  * Hooked up in FortGameState::PostInitializeComponents.
	  * FortGameState clears it (for returning to main menu).
	  * FortGameStateAthena sets it (for going into an Athena match).
	  * Only does this when it's a true GameMode GameState instance (ie, not PIE) so PIE crashes aren't modified.
	* Long Term: GameStateName - set via FCoreDelegates::GameStateClassChanged.
	  * This works for ANY crash on ANY game.
	  * Hooked up in GameState::HandleMatchIsWaitingToStart.

	#jira AT-1457
	#jira AT-519
	[CODEREVIEW] peter.knepley,josh.markiewicz

	#ROBOMERGE-SOURCE: CL 3600278 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3597593 by Ben.Zeigler

	#jira FORT-50722
	Fix issues where AssetBundles weren't being correctly updated during cook, which is blocking both Noland and Abercrombie
	Partial copy of CL #3402335 and #3526538
	#robomerge rp, rn

Change 3597577 by Luke.Thatcher

	[FORTNITE] [PS4] [~] Modified the way memory is allocated on Playstation to make more memory available to the CPU.
	 - Previously the amount of texture memory wasn╞t fixed due to the way the defrag memory is allocated on PS4. This meant we had to have a significant amount of slack.
	 - With the new configuration, we have a guaranteed texture memory pool, so the slack can be significantly smaller, meaning we can give more memory to the CPU, which is where most of our memory pressure is.

	#jira FORT-50825
	#jira FORT-49688
	#jira FORT-49695
	#jira FORT-50054

Change 3596556 by robomerge

	#ROBOMERGE-AUTHOR: mike.fricker
	Enable GC clustering for actors and blueprints in Fortnite
	- This shaves off about 10 ms on GC frames in Athena on PS4 (~52 ms -> 42 ms)
	- Clustering doesn't work on building actors because they're very dynamic, but general Fort static meshes and blueprints are clustered!
	- This gets us into the realm of shippability on console for very large UObject counts

	[FYI] bob.tellez,peter.knepley,michael.noland
	#jira AT-1440

	#ROBOMERGE-SOURCE: CL 3596552 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3593994 by robomerge

	#ROBOMERGE-AUTHOR: mike.fricker
	Force largest distance field atlas size in Athena
	- We now force the largest distance field atlas size before preloading Athena content (512x512x1024 = 256 MB).  This helps with load times because it's expensive to re-create this texture on consoles, and typically it gets resized over a dozen times.
	- Added new CVar "r.DistanceFields.ForceMaxAtlasSize" (defaults to zero)
	- Important:  Currently we never "reset" this atlas texture.  This will be a problem when going back to play Campaigns after preloading to play Athena.  I will look into this soon!

	[CODEREVIEW] peter.knepley,marcus.wassmer,michael.noland,daniel.wright
	#jira AT-1477

	#ROBOMERGE-SOURCE: CL 3593992 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3592096 by robomerge

	#ROBOMERGE-AUTHOR: ben.salem
	Prototype of gauntlet memory soak test. Not fully fiinished, but want changes in tonight's cook so we can experiment on cooked build tomorrow morning.
	#jira FORT-0

	#ROBOMERGE-SOURCE: CL 3592025 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3592085 by robomerge

	#ROBOMERGE-AUTHOR: mike.fricker
	HLOD: Added support for a fixed distance override via CVar
	- Use this to force all HLODs to transition at a specific distance, regardless of their TransitionSize/MinDrawDistance/LODDrawDistance
	- New CVar:  r.HLOD.DistanceOverride (defaults to 0)
	- Fortnite uses 350m for this distance, fornow

	[CODEREVIEW] jurre.debaare
	#jira AT-1462

	#ROBOMERGE-SOURCE: CL 3591929 in //Fortnite/Release-Prep/...
	#ROBOMERGE-BOT: FORTNITE (Release-Prep -> Main)

Change 3587391 by Michael.Noland

	Fortnite: Lots of memory tracking stuff
	- Added memory logging to game state transitions and overall health tracking for the entire session
	- Added support for Gauntlet-based tests to Fortnite
	- Enabled the Gauntlet plugin (and fixed spaces instead of tabs in the .uproject file)
	- Added code to set gauntlet state based on the current subclass of AFortGameState
	- Added a base controller and a memory report controller (WIP, ported from equivalents in Paragon)
	- Updated FortniteClient to use MALLOC_LEAKDETECTION=1, PLATFORM_USES_FIXED_GMalloc_CLASS=0, and AllowASLRInShipping=false in Development builds (may enable them in Test builds in a future CL, to match Paragon)

	#jira FORT-50567

Change 3583307 by Peter.Knepley

	Need non-jittered ViewToClip matrix in order to do "after tonemapper" postprocess blendable material that's positioned in view space

	Modify the AttachScope material function to use "ViewSpaceTransformToClipSpace" instead of going back to world space first. This also means it can utilitize the ViewToClipNoAA matrix.

	#jira AT-733

Change 3582378 by Luke.Thatcher

	[FORTNITE] [~] Unify Xbox and PS4 scalability settings and device profiles.
	 - All Xbox and PS4 r. CVars are overriden in their platform's Scalability.ini file. The device profile only selects sg. groups.
	 - Fixed the Neo 4K profile for Fortnite. Previously players with 4K monitors would choose the Neo_4K profile, which looks worse than Neo, but still renders at 1080p.
	 - Console specific settings have to live in the Base/Default .ini's, as the cooker doesn't load the console specific files. This is fixed in UE4 Main.

	#jira FORT-50206

Change 3580934 by Luke.Thatcher

	[FORTNITE] [PS4] [+] Support different garlic and onion heap sizes in the old memory system for base and neo.
	 - Neo has 512 MB more direct memory than a base kit.
	 - Increased the garlic heap size by 416 MB on Neo, and CPU heap by 96 MB.

	#jira FORT-50206

Change 3576664 by Bart.Hawthorne

	Re-enable Oodle and add Mac implementation. Also includes fixed oodle libraries by MichaelT.

	#jira FORT-49986

	#tests Connected to PC server with editor -game build on Mac in Athena

Change 3575671 by Nick.Darnell

	Athena - The gameplay ability system now supports adding Gameplay Cue's with params.  Now using cues instead of gameplay effects in order to notify when the bandaging/shielding begin and end.  THe new method should properly show and disappear on time, b/c it's all client side.  Added a way in the Athena Context to easily hook gameplay "UI" cues that are rebroadcast from the Athena Pawn.

	#jira AT-644

Change 3575534 by Peter.Knepley

	Ability montage replication optimizations

	#jira AT-955

Change 3573305 by Lukasz.Furman

	disabled path section update when crowd simulated AI is moving through navlink, fixed AI getting stuck in some corners
	#jira FORT-49748

Change 3566775 by John.Abercrombie

	Optimizations from Dev-Athena
	- Tested with PIE & and 2 Player local server game

	#ue4-athena - (merge CLs 3345771 and 3363030 from Framework) - Refactored CharacterMovementComponent determination of net send rate when combining moves into a virtual function GetClientNetSendDeltaTime(). Added configurable values to GameNetworkManager under [/Script/Engine.GameNetworkManager].

	For Fortnite, set unthrottled (<= 10 player) limit to 60Hz (from 90Hz), and trying throttled at 30Hz (from 45Hz).
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545535 by Zak.Middleton on 2017/07/19 20:15:17.

	#ue4-athena - (merge CL 3377054 from Framework) -  Fix CharacterMovementComponent updated with very high delta time on server when initially joining. Make sure the ServerTimeStamp is initialized to current world time rather than zero to prevent large delta.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545452 by Zak.Middleton on 2017/07/19 18:57:45.

	#athena - If network smoothing mode is not linear, don't replicate ReplicatedServerLastTransformUpdateTimeStamp. Only AI use linear smoothing in FN.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3545559 by Zak.Middleton on 2017/07/19 20:47:18.

	#ue4-athena - Converted all RPCs on UCharacterMovementComponent to be on ACharacter instead, to avoid the bandwidth overhead of calling RPCs on a component.
	Existing overrides of _Implementation and _Validate functions should remain unchanged. If for some reason someone overrode the old RPC virtuals, those are now non-virtual on UCharacterMovementComponent but are still virtual on ACharacter.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3557564 by Zak.Middleton on 2017/07/26 20:13:43.

	#ue4-athena - Throttle character movement server corrections and acks to the client based on time since last adjustment. Cuts down on network traffic for character movement.
	Added configurable settings to control this. Set times to zero to disable this.
	- NetworkMinTimeBetweenClientAckGoodMove
	- NetworkMinTimeBetweenClientAdjustments
	- NetworkMinTimeBetweenClientAdjustmentsLargeCorrection
	- NetworkLargeClientCorrectionDistance

	#ue4-athena - Perf: (EditMerge CL 3492200 from Dev-Framework): Always reset the input array in AActor::GetComponents(), but do so without affecting allocated size.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561669 by Zak.Middleton on 2017/07/28 14:16:19.

	#ue4-athena - Perf: (EditMerge CL 3468253 from Dev-AnimPhys): Remove the need for calling constructors for physx PxRaycastHit in the dynamic hit result buffer. Saves 30% of the cost of doing small raycasts.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561672 by Zak.Middleton on 2017/07/28 14:17:12.

	#ue4-athena - Perf: (EditMerge CL 3359553 from Dev-Framework): Optimization in CharacterMovement tick to not extract transform values twice.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561674 by Zak.Middleton on 2017/07/28 14:18:04.

	#ue4-athena - Perf: (EditMerge CL 3426174 from Dev-Framework): Avoid call to virtual getSimulationFilterData() to only use it when needed in PreFilter if we actually have items in the IgnoreComponents list (which is rare). The sim filter data 'word2' stores the component ID.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561709 by Zak.Middleton on 2017/07/28 14:32:11.

	#ue4-athena - Perf: (EditMerge CL 3382054 from Dev-Framework): Optimize CharacterMovementComponent::GetPredictionData_Client_Character() and GetPredictionData_Server_Character() to remove virtual calls.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3561856 by Zak.Middleton on 2017/07/28 15:11:57.

	#ue4-athena - Use less bandwidth for CharacterMovement RPCs when the character is not standing on any component (ie during jumps and falling). Added separate "...NoBase()" versions of ServerMove() and ServerMoveDual().
	Undid part of 3557564 and restored the CMC functions to be virtual, and removed virtual keyword from matching Character functions, so that overrides are in one consistent place. Also guarantees backwards compat for licensees.
	#AUTOMERGE using branch //Fortnite/Main-To-//Fortnite/Dev-Athena (reversed) of change#3564858 by Zak.Middleton on 2017/07/31 15:24:39.

	#jira Fort-1

Change 3562825 by Chris.Gagnon

	Added CommonCustomNavigation Widget, this widget can be used to capture navigation requests to handle in custom ways.

	#jira FORT-0

Change 3562098 by Josh.Markiewicz

	#UE4 Encryption token/ack changes
	- moved encryption token request/ack to delegates
	- moved FNetworkNotify to NetworkDelegates.h
	- moved connection logic out of GameInstance and back into networking code
	-- GameInstance sends an enum and the network code does the right thing based on that

	#review-3559694 @ryan.gerleve
	#tests PC dedicated server connections golden path and forced failures
	#jira FORT-0

Change 3559354 by Luke.Thatcher

	[FORTNITE] [PS4] [^] Merging (as edit)  support for setting flip rate on PS4 (CLs 3555687 and 3558843) from //Fortnite/Dev-Athena/... to //Fortnite/Main/...
	 - Allowed rates are now 60Hz, 30Hz and 20Hz.
	 - Exposed by r.PS4FlipRate CVar, set to 60Hz by default. Requires r.Vsync 1.

	#jira FORT-49463

Change 3532644 by Jeff.Campeau

	Fix mapping current culture to movie audio channels using data table to map languages to track indices.
	Don't rewind cinematics (they all start from the begining because we load them and play them once). Seeks cause us to have to redecode video frames at a large perf cost.
	Delay cutscene playback by 0.5 seconds to give us time to build up a buffer of decoded video. (Temporary workaround for audio/video sync).
	Generic implementation for getting current languages in BP.
	Fix more issues with calling into media source functionality when using the source reader (potential hangs).

	#jira FORT-44376,FORT-48209,FORT-48040

	#testedon Preflight from last night combined with Bob's changes from today clear all known issues. This change tested on Xbox and PC multiple times each.

Change 3527761 by Chris.Gagnon

	Fixed various issues in the widget switcher, also added Advanced calls that allow the user to specify if activation/deactivation should occur.

	#jira FORT-47988, FORT-47984

Change 3525390 by Jeff.Campeau

	Remove media player log spam

	#jira FORT-47393

	#testedon compiled client

Change 3518692 by Chris.Gagnon

	Added CleanOperation Adding which will remove unneeded op combinations from the op queue.
	Also added the ability to suspend starting operation queue processing to allow complex operations to accumulate and in turn allow the Clean Op adding code to be effective.

	GameFeedback, and the widget switcer utilize this to avoid unnesacary activations of a screen that is immediately being deactivated.

	Root issue of the mentioned bug is that activation of the quest screen created a latent navigation du to the deferal of scrolling into view.
	This is still an issue in general, there isn't much we can do about it. Other than avoid activating a panel that will deactivated that frame as we did with the code changes in this CL.

	#jira FORT-47395

Change 3514658 by Jeff.Campeau

	Fixed a media player threading issue where the OnMediaOpened event could be called before the media Init script completed.
	Moved the event Cinematic used when setting up and playing media after media file load to use a delayed event from the MovieWidget so that it will always happen after the movie widget processing.
	Fixed an issue that could cause samples to leak in MfMedia plugin and cause ReadSample to lockup.
	Fixed an issue where a default texture is displayed for movies before the movie starts playing (the player may be active before the first frame of the video is decoded). Default is now all black as it is expected that this texture will be displayed for several frames.

	#jira FORT-46801
	#testedon Xbox through rocket launch cinematic including vintertip for stairs, skill tree nodes, and victory result video

Change 3507896 by Ryan.Gerleve

	Changed the net.UseEncryptionToken to be more useful and renamed it to net.AllowEncryption.
	This cvar, if 0, will prevent the PacketHandler from adding the configured encryption component, and prevent UPendingNetGame and AOnlineBeaconClient from filling out the EncryptionToken parameter of NMT_Hello - which prevents the extra encryption handshake connection step.

	#jira FORT-46878
	#review-3507897 @josh.markiewicz

Change 3503928 by Ryan.Gerleve

	Add safety checks around some of the encryption functionality. Fixes a server crash seen during load testing.

	#jira FORT-46772
	#review-3503929 bob.tellez
	#robomerge ReleaseNext

[CL 3673993 by Bob Tellez in Main branch]
2017-09-30 03:42:01 -04:00
Ben Marsh
4ba423868f 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
Marcus Wassmer
e4c18bbe31 Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3122278)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3109545 on 2016/09/01 by Zabir.Hoque

	Merging DX12 RHIs stage 1.

	#Tests Ran InfiltratorDemo, ElementalDemo, ShooterGame

Change 3109580 on 2016/09/01 by Zabir.Hoque

	Merging DX12 RHI. Stage 2: Moving XB and Windows APIs to a common location. This will cause a build break, but will allow us to preserve history.

Change 3109632 on 2016/09/01 by Zabir.Hoque

	Merge DX12 RHI. Stage 3. Ported all changes and merged RHI into common and Win and XB1 specialized folder. Current with MS partners branch and Release 4.13.

Change 3109690 on 2016/09/01 by Zabir.Hoque

	Fixing build break after large merge from partners branch and syncing to latest Dev-Rendering.

Change 3109716 on 2016/09/01 by Zabir.Hoque

	Fix build warnings after merge.

Change 3109733 on 2016/09/01 by Zabir.Hoque

	More build fixes for things pointing from XboxOneD3D12RHI to D3D12RHI

Change 3109773 on 2016/09/01 by Zabir.Hoque

	Fixing code analysis warnings.

Change 3109870 on 2016/09/01 by Rolando.Caloca

	DR - Simple clear mode

Change 3110066 on 2016/09/01 by Zabir.Hoque

	Remove C++11 feature so VS2013 can compile for Fortnite.

Change 3110335 on 2016/09/01 by Brian.Karis

	Fixed double lighting of clear coat, cloth, and eyes

	#review-3108222 @Ben.Woodhouse

Change 3110411 on 2016/09/01 by Rolando.Caloca

	DR - vk - Fix bogus assert
	- Fix pipeline barrier with levelCount=0

Change 3110573 on 2016/09/01 by Zabir.Hoque

	Exclude D3D12 merged RHI from Mac Builds.

Change 3110681 on 2016/09/01 by Rolando.Caloca

	DR - vk - Swapchain fix for drivers returning infinite swapchain images

Change 3110936 on 2016/09/01 by Rolando.Caloca

	DR - vk - Fix crash when dumping unused heaps
	- Show file/line if enabled

Change 3111034 on 2016/09/01 by Rolando.Caloca

	DR - vk - Fix exclude rect clear

Change 3111139 on 2016/09/01 by Rolando.Caloca

	DR - Automatically enable capturing mode if running under RenderDoc

Change 3111170 on 2016/09/01 by Rolando.Caloca

	DR - vk - Store max info per descriptor set pool

Change 3111234 on 2016/09/01 by Zabir.Hoque

	XB1 compiler warnings.

Change 3111763 on 2016/09/02 by Rolando.Caloca

	DR - Fix typo in shader
	PR #2759
	#jira UE-35496

Change 3111846 on 2016/09/02 by Rolando.Caloca

	DR - vk - Update to SDK 1.0.24.0 (including glslang)

Change 3111916 on 2016/09/02 by Ben.Woodhouse

	Fix for timestamp query results being broken in the XB1 DX11 RHI (caused by a merge issue with dev-platform)
	Also clarify some variable naming

Change 3112048 on 2016/09/02 by Rolando.Caloca

	DR - vk - Compile fix for build machines

Change 3112315 on 2016/09/02 by Rolando.Caloca

	DR - vk - Added peak usage to mem dump

Change 3112791 on 2016/09/02 by Daniel.Wright

	FD3D12PipelineStateCache debug fix

Change 3113483 on 2016/09/05 by Ben.Woodhouse

	Fix potential issue with timestamp and occlusion queries overlapping with new query packing optimisation.  We may want to put these into separate buffers to avoid reduce the padding with timestamp queries (timestamp queries currently use 4x the memory they actually need due to additional padding)

Change 3113488 on 2016/09/05 by Ben.Woodhouse

	GPu profiler : fix for render thread performance issues, enable GPU profiler by default

	Avoids RHIThread stalls in query creation by reusing queries via a pool. A FRenderQueryPool class already existed for doing this, so this was moved into the engine to make it accessible from both the engine and renderer modules

	Tested on XB1,PS4,PC dx11

Change 3114286 on 2016/09/06 by Chris.Bunner

	Copying CL 3114173 from 4.13 - Better enforce render resource limits on widget draw size.Jira UE-26375.

Change 3114883 on 2016/09/06 by Rolando.Caloca

	DR - vk - Delete resources on the RHI thread
	- Set blend factor to 1
	- Added num mips & num layers to RT views
	- Added missing destructors
	- Fix for crash on rhi thread

Change 3116308 on 2016/09/07 by Rolando.Caloca

	DR - vk - New renderpass/transition/barrier rewrite for sm4 (disabled)
	- Fixes for 3d texture RTs

Change 3117409 on 2016/09/08 by Gil.Gribb

	Merging //UE4/Dev-Main@3117389 to Dev-Rendering (//UE4/Dev-Rendering)

Change 3117445 on 2016/09/08 by Gil.Gribb

	Fix merge fallout

Change 3117555 on 2016/09/08 by Rolando.Caloca

	DR - Fix merge issue

Change 3117687 on 2016/09/08 by Marc.Olano

	Create new Vector Noise material node, and *3DDeriv numerical derivative material functions

	Vector Noise node has noise functions with 3D output, including cellnoise (random color per cell), computed noise with vector output, gradient of 3D noise, curl of 3D noise, and version of Voronoi noise returning seed position in the closest Voronoi cell.

	3DDeriv functions compute gradient and curl on any expression using centered differences from four samples offset in a tetrahedral pattern (two fewer than the common axis-aligned offset method)

Change 3117696 on 2016/09/08 by Rolando.Caloca

	DR - Replicate 4.13.1 fix from 3117678

	UE4.13 - Better error reporting when SCW fails/crashes
	jira UE-17227

Change 3117720 on 2016/09/08 by Rolando.Caloca

	DR - vk - Fix for static analysis

Change 3117786 on 2016/09/08 by Rolando.Caloca

	DR - vk - Use new alignment

Change 3118145 on 2016/09/08 by Marcus.Wassmer

	Fix async compute clear not waiting for the gfx pipe properly.  Also appears to fix a rare PS4 gpu hang.

Change 3118329 on 2016/09/08 by Brian.Karis

	Fix screen size calculations for LOD

Change 3118351 on 2016/09/08 by Brian.Karis

	Quadric mesh simplifier!

	In and working for the first time.
	ScreenSize is now correctly calculated from MaxDeviation
	Pixel Error now a reduction setting in LOD group.
	Binary Heap is fixed and functional.
	Still needs to play better with 3rd party reduction.

Change 3118457 on 2016/09/08 by Rolando.Caloca

	DR - vk - Fix cube & 3d texture transitions & copies

Change 3118540 on 2016/09/08 by Benjamin.Hyder

	Re-Submitting Noise assets to get engine version

Change 3119438 on 2016/09/09 by Rolando.Caloca

	DR - vk - Added barrier & cache flushes when reading back GPU memory
	- Added cubemap & 3d texture barriers
	- Added cubemap & 3d texture copy image

Change 3119518 on 2016/09/09 by Brian.Karis

	Fixed compile error

Change 3119580 on 2016/09/09 by Marc.Olano

	Documentation for Vector noise

Change 3119710 on 2016/09/09 by Rolando.Caloca

	DR - vk - Fix read stencil mask & front/back

Change 3119865 on 2016/09/09 by Rolando.Caloca

	DR - vk - RHIReadSurfaceFloatData
	- Fix redundant write transitions
	- Simplify copy and transition code

Change 3120059 on 2016/09/09 by Rolando.Caloca

	DR - vk - Static analysis warnings

Change 3120413 on 2016/09/09 by Mark.Satterthwaite

	Fix AVFMedia plugin failing when a movie has captions.
	#jira UE-35828

Change 3120936 on 2016/09/12 by Ben.Woodhouse

	Add slate rendering to the GPU stats

Change 3121204 on 2016/09/12 by Rolando.Caloca

	DR - vk - Fix geometry shaders position
	- Revert translucent workaround

Change 3121467 on 2016/09/12 by Rolando.Caloca

	DR - Fix integration issue (lost some shader defines)

Change 3121862 on 2016/09/12 by Zabir.Hoque

	Fixing Code Analysis warnings.

	#jira: UE-35860

Change 3122139 on 2016/09/12 by Ben.Woodhouse

	Re-enable the checkerboard lighting by default to workaround skin lighting issue in fortnite (again)

	#jira UE-35886

Change 3122278 on 2016/09/12 by Zabir.Hoque

	2nd Attempt at Code Analysis warnings

[CL 3122339 by Marcus Wassmer in Main branch]
2016-09-12 22:23:27 -04:00
Dmitry Rekman
4576700bc2 Fix abs value being rounded to integer.
Pointed out in PR #422.

#codereview Brian.Karis

[CL 2291743 by Dmitry Rekman in Main branch]
2014-09-09 19:56:19 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00