Commit Graph

44 Commits

Author SHA1 Message Date
Jaroslaw Surowiec
1b630339a1 Stats - Fixed a crash when the verbose group contains non-cycle stats, also fixes an issue with the missing data
#codereview Robert.Manuszewski

[CL 2309651 by Jaroslaw Surowiec in Main branch]
2014-09-25 08:50:59 -04:00
Jamie Dale
524d2d4257 Fixed incorrect value of STATID_INCREMENT
STATID_INCREMENT (formerly FNAME_INCREMENT) was still set to 3, but CL# 2300730 changed the PendingStatIds array use a single TStatIdData per-stat, rather than 3 FNames.

This wasn't causing issues, but was allocating 3x the amount of memory actually required (and then ignoring 2/3 of it).

[CL 2300772 by Jamie Dale in Main branch]
2014-09-17 06:30:06 -04:00
Jamie Dale
b1076751ff Made FName case-preserving by storing case-variant strings in its string table
This is controlled by the macro "WITH_CASE_PRESERVING_NAME", which is currently just set to "WITH_EDITORONLY_DATA" so that it works in editor builds (and UHT).

Added an extra NAME_INDEX entry to FName to store a second string table index for a case-variant string. The previous Index value (now called ComparisonIndex) is still used for comparison purposes (as FNames are still case-insensitive).

The Init process for an FName now works like this:
 1) It will find or add a string table entry for the given string (not matching case) - this entry index is stored in ComparisonIndex.
 2) It will then compare the string table entry string against the given string (matching case) to see if it also needs to add a case-variant entry for the FName.
 3) If it does, it finds or adds a second string table entry (matching case) for the string - this entry index is stored in DisplayIndex.

Hard-coded FNames (those listed in UnrealNames.h) do not support case-variants (due to existing network replication rules for hard-coded FNames), so they skip steps 2 and 3.

I added FMinimalName, which is the same size as FName was previously. This shouldn't really be used (and as such, is deliberately awkward to make/use) as it loses the case-preserving behaviour of FName, however it was required for some things (like stats) that had a hard-coded upper limit on FName size.

I added FScriptName, which always contains the extra display index (even when WITH_CASE_PRESERVING_NAME is disabled). This is used by Blueprint bytecode, as the types used by Blueprint bytecode must be a consistent size between all build configurations.

Other changes:

 - Fixed up any places that were passing an Index into the FName constructor which was supposed to take an EName.
     - Some places were doing this to make the number unique when replicating an object, but this was losing the case-variant information, so I had to fix them.
     - FName will now assert if the EName constructor is used with an value outside the range of hard-coded FNames.

 - Ensured that assets, actors, and blueprint components could all be renamed in a way that only changed their case, and that these changes were correctly persisted.

 - Added FLinkerNamePairKeyFuncs and TLinkerNameMapKeyFuncs for use with TSet and TMap.
     - These allow ULinkerSave and ULinkerLoad to correctly write out case-variants for FNames, and also fixes an issue where the linker would erroneously write out duplicate string table entries for FNames which had a different number (causing package bloat).

 - Bumped VER_MIN_SCRIPTVM_UE4 so that all Blueprint bytecode is recompiled using FScriptName.

ReviewedBy Robert.Manuszewski, Gil.Gribb

[CL 2300730 by Jamie Dale in Main branch]
2014-09-17 05:24:55 -04:00
Gil Gribb
9978428b65 UE4 - RHI thread prototype (PS4 only so far)
[CL 2283021 by Gil Gribb in Main branch]
2014-09-03 10:52:00 -04:00
Jaroslaw Palczynski
eb49618ff2 Fix stat id redundant creation.
Change stat id creation to static declarations.

[CL 2281174 by Jaroslaw Palczynski in Main branch]
2014-09-02 05:19:25 -04:00
Jaroslaw Surowiec
87fc400d2f Stats - Added command 'stat display' which may be used to change various stats dispay settings, temporary solution
Stats - Better comment regarding stats commands exec

[CL 2267782 by Jaroslaw Surowiec in Main branch]
2014-08-22 15:25:25 -04:00
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