Commit Graph

38 Commits

Author SHA1 Message Date
Jaroslaw Surowiec
e6225c5523 Stats - Fixed previous check-in
[CL 2228404 by Jaroslaw Surowiec in Main branch]
2014-07-23 09:14:51 -04:00
Jaroslaw Surowiec
aafb6bca59 Stats - Fixed an issue with not displaying self/otherchildren when using 'stat dumpframe'
[CL 2228392 by Jaroslaw Surowiec in Main branch]
2014-07-23 08:54:46 -04:00
Mike Fricker
72a34e4ee9 Compile Times: Fixed Core module needing two separate PCH headers in monolithic compiles
- Changed Core module to use Core.h (removed CorePrivate.h)
- CorePrivate.h only included Core.h, so their PCHs were identical other than name
- Does not affect modular builds, as we need different defines for DLLExport/DLLImport for private and public PCH headers

[CL 2221011 by Mike Fricker in Main branch]
2014-07-16 13:44:46 -04:00
Andrew Brown
4e1524719a Stat Net now works correctly and no longer reports 'command not found'
#udn ConsoleCommand Stat NET showing as Command Not Found, can't use Stat NET

reviewed by Gil.Gribb

[CL 2123154 by Andrew Brown in Main branch]
2014-07-01 08:27:50 -04:00
Jaroslaw Surowiec
cd39b42205 Stats - Fixed FStatsUtils::DebugPrint not printing the group name, a stat desc is not logged if it's the same as the stat name
[CL 2115285 by Jaroslaw Surowiec in Main branch]
2014-06-24 10:51:17 -04:00
Jaroslaw Surowiec
b8f71ec294 Stats2 - Increased stack size for the stats thread, from 128k to 512k
#codereview Robert.Manuszewski

[CL 2112080 by Jaroslaw Surowiec in Main branch]
2014-06-20 14:48:08 -04:00
Ryan Gerleve
1911463f03 Fix a couple off-by-one string size problems.
#codereview robert.manuszewski

[CL 2108145 by Ryan Gerleve in Main branch]
2014-06-17 11:39:18 -04:00
Jaroslaw Palczynski
3a35a8dd0e Deprecate and remove checkAtCompileTime.
#ttp 337754
#codereview Robert.Manuszewski

[CL 2106862 by Jaroslaw Palczynski in Main branch]
2014-06-16 08:04:54 -04:00
Jaroslaw Surowiec
944d875c8e Stats - Fixed an issue with string conversion
#codereview Robert.Manuszewski

[CL 2104513 by Jaroslaw Surowiec in Main branch]
2014-06-13 09:34:27 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -04:00
Jaroslaw Surowiec
f3b04ddb1c Stats - Fixed a memory leak in the UFE, added better implementation for the stats advance frame
#codereview Robert.Manuszewski

[CL 2103266 by Jaroslaw Surowiec in Main branch]
2014-06-12 12:09:36 -04:00
Jaroslaw Surowiec
4a08999f33 Stats - Added options to access the stat description as an ansi and a wide string, this is a constant time access, but requires some memory to allocate the data
#codereview Robert.Manuszewski

[CL 2103257 by Jaroslaw Surowiec in Main branch]
2014-06-12 12:04:35 -04:00
Jaroslaw Surowiec
d618e8fa36 Stats - Removed unused code
[CL 2102312 by Jaroslaw Surowiec in Main branch]
2014-06-11 16:45:01 -04:00
Jaroslaw Surowiec
78dcc42455 Stats - Stats files are now compressed, ratio for regular stats 30%, for raw stats 16%, misc code refactor and improvements
#codereview Robert.Manuszewski

[CL 2096003 by Jaroslaw Surowiec in Main branch]
2014-06-05 16:40:42 -04:00
Marc Audy
83dcc2fe11 Shadow variable fixes
[CL 2094759 by Marc Audy in Main branch]
2014-06-04 15:11:29 -04:00
Jaroslaw Surowiec
6cd4e3ab06 Core - FThreadSingleton can't be used outside of Core
#codereview Robert.Manuszewski

[CL 2091699 by Jaroslaw Surowiec in Main branch]
2014-06-02 07:02:40 -04:00
Jaroslaw Surowiec
26e0775973 Core - SCOPE_LOG_TIME_FUNC should work on all platforms
#codereview Robert.Manuszewski

[CL 2085014 by Jaroslaw Surowiec in Main branch]
2014-05-29 17:00:54 -04:00
Bob Tellez
bac859f009 UE4: Fixed a couple minor issues that showed up in static code analysis.
[CL 2082617 by Bob Tellez in Main branch]
2014-05-22 20:36:22 -04:00
Jaroslaw Palczynski
724ea452a5 Refactoring thread affinity settings.
There was a bug in setting affinity of a thread that assumed affinity from lookup table with key being a thread name. When names was appended with consecutive numbers (e.g. "RenderingThread 1") the mechanism failed. Refactored this to use special static consts describing affinity override'able by different platforms for different affinity types + possibility of setting affinity per thread.
#codereview Jaroslaw.Surowiec

[CL 2070197 by Jaroslaw Palczynski in Main branch]
2014-05-12 08:40:54 -04:00
Mikolaj Sieluzycki
7a1386bfc9 #ttp 331740 UE4: Core: Runnable thread clean-up
#proj core
#branch UE4
#summary Remove all bAutoDeleteSelf and bAutoDeleteRunnable usage from the runnable.
#codereview Robert.Manuszewski

[CL 2070165 by Mikolaj Sieluzycki in Main branch]
2014-05-12 08:39:12 -04:00
Jaroslaw Surowiec
5da9559694 Profiler - Added first version of the thread view (to capture the data in the game use 'stat startfileraw')
#codereview Robert.Manuszewski

[CL 2066860 by Jaroslaw Surowiec in Main branch]
2014-05-08 08:00:35 -04:00
Jaroslaw Surowiec
fd225b6412 Stats - Restored indexed rendering thread, but now it's based on NAME_RenderThread, removed all references to "RenderingThread", leaving only these required for backward compatibility
Stats - Added missing GetGroupCategory to the thread node in the GetRawStackStats

#codereview Robert.Manuszewski

[CL 2063512 by Jaroslaw Surowiec in Main branch]
2014-05-05 11:15:08 -04:00
Andrew Brown
0b68fa6beb Allow engine stats to still be triggered when STAT is undefined
#ttp 306334 - ROCKET: TASK: PUNTABLE: Stats: FN: Make diagnostic stats discoverable and available in the UI (don't require console to toggle)

#branch UE4

#change Moved code which fires notification delegates into another function and modiified code to call this instead when the main stat handler is unavailable.

reviewed by Thomas.Sarkanen

[CL 2062088 by Andrew Brown in Main branch]
2014-05-02 09:44:11 -04:00
Andrew Brown
b145f1d79e Simple and Group Stat Exec commands can now be triggered from the level viewport Show menu directly.
#ttp 306334 - ROCKET: TASK: PUNTABLE: Stats: FN: Make diagnostic stats discoverable and available in the UI (don't require console to toggle)

#branch UE4

#change
DECLARE_STATS_GROUP û Added additional param GroupCategory, for subfolder use in the UI. Fixedup all Stats Group usage so the category is now propagated through where it needs to be.
Currently all Group stats have the Category æAdvancedÆ, and all engine stats have the Category æSimpleÆ û this is just to differentiate them for now, better categories will come along in future.
Modified FindOrAddMetaData as it now broadcasts a delegate (via a TaskGraph) whenever a new stat meta data is added û this was needed as not all the stat groups are æregisteredÆ when the level viewports are created (they are drip loaded), so the viewports need to listen for any additions thereafter...
GroupDescription is displayed as a tooltip in the UI for the stat entry and we may want to localize these.
RenderStats & RenderGroupedWithHierarchy: Modified so that it now takes the viewport that it should render to as a param (which is also used to determine if each stat should be visible).
Removed StatsEnabled delegate in favour of StatCheckEnabled, StatEnabled, StatDisabled, StatDisableAll for more finite usage and feedback when toggling them.
Modified FHUDGroupManager HandleCommand It now uses the new delegates to work out whether it needs to enable or disable for the current viewport, so itÆs more involved than a simple toggle, itÆs more ôis the stat enabled for the current viewport, and is it enabled for any viewportö delegate querying so it can react accordingly.

Added struct FSimpleStatFuncs: Which contains info on each æSimple StatÆ such as; name, category, description, renderfunc, togglefunc and the side of the viewport it should be rendered to
ExecSimpleStat û Calls Exec for a registered Simple Stat, ensuring the correct viewport is set
IsSimpleStat û Checks to see if a stat is a registered Simple Stat or not
SetSimpleStat û Sets the state of a specified Simple Stats
SetSimpleStats - Sets the state of the specified Simple Stats
RenderSimpleStats û Renders the Simple Stats if they are enabled, and have Render functions assigned.
Each Exec function had the code it executes which itÆs toggled and rendered into functions

Added FStatUnitData & FStatHitchesData: Moved all the globals/static variables used when enabling Stat Unit/Hitches into a struct as itÆs now used by multiple viewports and they needed their own copies. Also moved their draw functions here too.

FSceneViewport:
SwapStatCommands û Exchanges the enabled stats between two viewports, this is so when PIEing the stats which were enabled on the Level Viewport (if playing in active viewport only) get transposed to the Game Viewport, and then restored when PIE ends.
SEditorViewport:
ToggleStatCommand û Called when a stat is enabled/disabled from the UI
IsStatCommandVisible û Checks to see if a stat command should appear as visible in the UI
SEditorViewportViewMenu:
GenerateViewMenuContent û Made protected and virtual so it could be called externally.
FLevelViewportCommands: Added the code needed to generate commands for each of the Stat menu entries, however because not all stats are registered when this happens, it also creates some delegates to listen out for others that are registered later
Destructor û Needed to reset delegates
HandleNewGroupStat û Creates the new group stat commands
HandleNewStat û Creates the new stat command
FindStatIndex û Looks for where a stat should be inserted in the menu in order to maintain alphabetical order
SLevelViewport:
Modified the code so that the states of all the SimpleStats are saved so they can be restored next time the editor is ran (previously just handled FPS).
OnFloatingButtonClicked û Called whenever any of the level viewports floating buttons are clicked in order to correctly set the ælastÆ viewport global
OnToggleAllStatCommands û Called when the user selects æHide AllÆ from the viewport.
ToggleStatCommand û Called when the user selects any other stat option from the viewport.
BindStatCommand û Used to bind the menu action to the command name (used by delegate)

Added SLevelEditorViewportViewMenu (extends SEditorViewportViewMenu), and overrode GenerateViewMenuContent so that OnFloatingButtonClicked can be called whenever the menu is clicked on. This is also called during GenerateOptionsMenu, GenerateCameraMenu, GenerateShowMenu & OnToggleMaximize
Added global ptr GStatProcessingViewportClient (sim to Current, Last) used to keep track of which viewport the stat should be applied too (only valid within the scope of the Exec call).

FViewportClient:
Moved global ESoundShowFlags enum list into this class.
FCommonViewportClient:
Destructor û Needed to reset GStatProcessingViewportClient
FLevelEditorViewportClient
SetCurrentViewport û moved code responsible for setting the global æcurrentÆ viewport ptr into a func
SetLastKeyViewport û moved the code responsible for settings the global ælastÆ viewport ptr into a func
UGameViewportClient:
Destructor û Needed to cleanup delegate usage.
FViewportClient & FLevelEditorViewportClient & UGameViewportClient*
GetStatUnitData û The viewports copy of the variables needed when running the Stat Unit Exec
GetStatHitchesData û The viewports copy of the variables needed when running the Stat Hitches Exec
GetEnabledStats û Gets a list of all the stats which are enabled for the viewport
SetEnabledStats û Sets a list of all the stats which should be enabled for the viewport
IsStatEnabled û Checks to see if a specific stat is enabled for the viewport
SetStatEnabled û Sets a specifics stats state to enabled or disabled
GetSoundShowFlags û Gets which flags are enabled for the Stat Sounds Exec
SetSoundShowFlags û Sets which flags are enabled for the Stat Sounds Exec
HandleViewportStatCheckEnabled (delegate) û checks to see if a specific stat is enabled on this viewport
HandleViewportStatEnabled (delegate) û enables a specific stat for the viewport
HandleViewportStatDisabled (delegate) û disables a specific stat for the viewport
HandleViewportStatDisableAll (delegate) û disables all stats for the viewport
*FViewportClient has dummy virtual funcs and LevelEditor/Game both have the same implementations, the only differences is the GameViewports member variables are static so that the stat info persists between runs.

FLevelEditorViewportInstanceSettings deprecated bShowFPS in favour of an EnabledStats array (so we can track the state of all stats, not just FPS).
Added new config var bSaveSimpleStats: if enabled, restores previously enabled level viewport simple stats the next time the editor runs (defaults to false).

Modified FillShowFlagMenu so that thereÆs just one func and you specify where (if any) youÆd like a separator to occur.
Added FillShowStatsSubMenus so that menus can be generated which have submenus
Added the Stats sub menu to the View menu

Modified Execs so that the GStatProcessingViewportClient is set to the correct default viewport (if it wasnÆt specified), and clears again after itÆs been processed
HandleStatCommand now takes World and ViewportClient as params too û needed when Execs enabled other Execs so the world/viewport persists.
SetAverageUnitTimes û Added as a Setter func for GetAverageUnitTimes (moved code out of Stat Unit renderer and modified so that it only updates once per frame).

Stripped out all unneeded globals

[CL 2058522 by Andrew Brown in Main branch]
2014-04-29 04:04:27 -04:00
Stephan Delmer
6c7c666a97 Merging using UE4-Fortnite-To-UE4 using CL #2054046
[CL 2055709 by Stephan Delmer in Main branch]
2014-04-24 15:04:22 -04:00