Commit Graph

606 Commits

Author SHA1 Message Date
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
Marc Audy
201d3b4573 Fix missing return
#codereview Danny.Couture

[CL 14684086 by Marc Audy in ue5-main branch]
2020-11-06 22:16:35 -04:00
danny couture
63d02b15d9 Add protection against copying a RWLock by value
Add check similar to pthread_rw on Mac/Linux to make sure Windows FRWLock is not held when destroyed
Fix the one place that we were actually copying a RWLock
Introduce a new TDontCopy wrapper that can be used to make a class member an exclusive entity of that class. (Contributed by Steve.Robb)

#rnx
#rb Steve.Robb

[CL 14675525 by danny couture in ue5-main branch]
2020-11-06 07:16:30 -04:00
daren cheng
4ec48c9820 Edigrate 14629275.
Capture callstack in widget invalidation for leaf widgets.

#jira UE-101687
#rb Patrick.Boutot Phillip.Kavan

[CL 14631340 by daren cheng in ue5-main branch]
2020-11-02 14:48:49 -04:00
Marc Audy
68150e0be7 Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
This represents UE4/Main @ 14594913

[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
Marc Audy
50a3d7d368 Merge Release-Engine-Staging to Main @ CL# 14467590
This represents UE4/Main @ 14432125 + some cherrypick fixes

[CL 14468207 by Marc Audy in ue5-main branch]
2020-10-09 22:42:26 -04:00
danny couture
b2fe7f27de Fix AVX2 texture compression that had been disabled because of Clang compilation errors
- Removed overly cautious check because it can't be implemented properly on Clang without enabling AVX2 code generation... which we definitely don't want!

#rb Francis.Hurteau

[CL 14428216 by danny couture in ue5-main branch]
2020-10-06 06:29:51 -04:00
Graeme Thornton
9c4c257239 Fix for clang compile error on AVX instruction use, which appears to to be disabled
[CL 14385887 by Graeme Thornton in ue5-main branch]
2020-09-24 06:58:22 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
JeanFrancois Dube
5e8af6348c fix build
#fyi danny.couture

[CL 14364345 by JeanFrancois Dube in ue5-main branch]
2020-09-22 09:59:06 -04:00
danny couture
90ed5f144f Optimize NVTT texture compression using AVX2
- Load the proper delay-loaded dll depending on instruction support of the current platform.
  - Replaced reciprocal approximation with proper division.
    - This improves performance as the division is faster than a reciprocal with refinement on recent CPUs.
    - This improves quality as the division provides higher precision.
    - It fixes a nasty non-determinism in the DDC because reciprocal yield different results on different CPUs.
  - Configured so that AVX2 and SSE2 results are exactly the same (see config.h).
  - More details can be found in config.h

  - 80.773s -> 47.547s for single-threaded 8k texture compression
  - 18m34s -> 14m50s for recompressing all textures of Reverb P_World during level loading.

#rb Francis.Hurteau, Geoff.Evans

[CL 14362917 by danny couture in ue5-main branch]
2020-09-22 05:48:20 -04:00
geoff evans
13d705fba1 Profiler updates
1) Fix Visual Studio Profiling PerfAPI build script pathing for modern era of Visual Studio, add IDEDir to UBT for base path of PerfAPI lib/headers

2) Add initial support for Superluminal instrumentation API, if it's installed and -Superluminal is passed on the command line. Dial back color saturation a bit to go easier on the eyes (my eyes!!). This is WIP support, we are technically violating the API rules by feeding in changing strings to the same profile marker. So, with this change you can see the instrumentation markers in the timeline, but using all the event features in Superluminal causes weird artifacts like event strings changing as you use profiler features. Subsequent change will attempt to pry apart static and instance string data in the instrumentation, as this is a common trope across profilers (and non-PC platforms).

Updated FExternalProfiler API to forward along color information from the instrumentation. This is a minor breaking change as it's very unlikely there are direct callers of these APIs.

[CL 14321510 by geoff evans in ue5-main branch]
2020-09-15 14:26:08 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
danny couture
fb6bfdcb9f Properly name the game thread on Windows
#rb Stefan.Boberg

[CL 13962756 by danny couture in ue5-main branch]
2020-07-29 09:24:07 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
matt peters
0f14d2dafd Change FPlatformMemoryStats.AvailableVirtual on windows to be clamped to the remaining system virtual memory available, which is limited by the size of the PageFile.
Add CookSettings MemoryMinFreeVirtual to garbage collect when AvailableVirtual is too low.
Normalize the names of the 4 CookSettings.Memory settings variables.
Change boolean expression of the 4 memory values to be (freevirtual OR freephysical) AND (usedvirtual OR usedphysical), which seems like the most useful way to combine them.
#rnx
#rb Daniel.Lamb, Zousar.Shaker

#ROBOMERGE-SOURCE: CL 13120351 via CL 13120373 via CL 13120383 via CL 13120389
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v687-13115495)

[CL 13120395 by matt peters in Main branch]
2020-04-30 13:12:52 -04:00
johan berg
d6c3224b94 Disable CRC monitor mode for game runtimes.
Speculative fix, disabling monitor mode crash reporter client for everything but the editor.

#rb stefan.boberg
#rnx

#ROBOMERGE-SOURCE: CL 13113584 via CL 13113586 via CL 13113587 via CL 13113588
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v686-13045012)

[CL 13113589 by johan berg in Main branch]
2020-04-30 07:01:26 -04:00
jeff newquist
5969077fc4 Added volatile keyword to WaitCompletionImpl to ensure compilers don't just optimize the check away.
#rb rune.stubbe
#jira none
#rnx

#ROBOMERGE-SOURCE: CL 13007135 in //UE4/Release-4.25/... via CL 13007150 via CL 13007159
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 13007166 by jeff newquist in Main branch]
2020-04-23 11:00:55 -04:00
jeff newquist
9fa4defb8c Fixed all size variants of IAsyncReadRequest so they correctly wait inside of WaitCompletionImpl for a callback to be completed before returning.
Normal read requests have this behavior, but size requests were not respecting this, which caused problems when the constructor launches a callback on another thread and then immediately calls WaitCompletion, such as in the callback lambda inside FFileCacheHandle::FFileCacheHandle / PushCompletedRequest.
#rb rune.stubbe
#jira none
#rnx

#ROBOMERGE-SOURCE: CL 12974187 in //UE4/Release-4.25/... via CL 12974195 via CL 12974203
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12974208 by jeff newquist in Main branch]
2020-04-22 09:27:31 -04:00
ben marsh
a0b9b35c79 Fix programs under the Engine/Restricted folder not being able to find the correct engine directory.
#jira

#ROBOMERGE-SOURCE: CL 12870520 via CL 12870524 via CL 12870525
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)

[CL 12870526 by ben marsh in Main branch]
2020-04-16 14:56:47 -04:00
patrick laflamme
412540fe12 Add missing #if !PLATFORM_SEH_EXCEPTIONS_DISABLED guard around __try/__except.
#jira UE-91803
#rb none
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12696485 in //UE4/Release-4.25/... via CL 12696487 via CL 12696511
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v676-12543919)

[CL 12696548 by patrick laflamme in Main branch]
2020-04-09 16:27:30 -04:00
patrick laflamme
097792ed22 On Windows, exit the application with exit code 777003 if the crash reporter crashes while reporting or code 777004 if the crash handler (the __except clause) crashes after reporting an error.
Details:

The 4.24.3 analytics shows many unexplained exit codes, 23 647 at the moment. Normally, the Editor will exit with code 0 if everything when well, 3 or 1 if it gracefully handled a crash, 255 it was aborted. But we also see may others like the following predominent cases below:

-1073741819 => STATUS_ACCESS_VIOLATION => 8081 cases
-1073740791 => STATUS_STACK_BUFFER_OVERRUN  => 7581 cases
-1073740771 => STATUS_FATAL_USER_CALLBACK_EXCEPTION => 5357 cases

On Windows, the crash reporting system should catch and report STATUS_ACCESS_VIOLATION and then exit with code 3 (as the error was handled). For example, if you add a null pointer dereference(STATUS_ACCESS_VIOLATION) in the code, the crash reporter handle it and the Editor exit with code 3. Just like if you enter 'debug crash' console command, the editor gracefully handle the error and exit with code 3.  But if you move the null pointer dereference in the crash handler thread itself, the error is not handled and the Editor exits with code STATUS_ACCESS_VIOLATION. This hints that our crash reporting thread is likely crashing in the wild. It would be useful to isolate those cases from the other cases and keep count of how many times this happens.

#jira UE-91803 - Analytics hints that crash reporting and crash handling crashes themselves.
#rb Jamie.Dale
#lockdown cristina.riverun

#ROBOMERGE-SOURCE: CL 12695027 in //UE4/Release-4.25/... via CL 12695062 via CL 12695098
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v676-12543919)

[CL 12695136 by patrick laflamme in Main branch]
2020-04-09 15:50:15 -04:00
jonas meyer
e738543586 Add -noexceptionhandler command line parameter. This allows you to use JIT debugging.
#rb stefan.boberg
#jira none

#ROBOMERGE-SOURCE: CL 12670885 in //UE4/Release-4.25/... via CL 12670887 via CL 12670888
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12672054 by jonas meyer in Main branch]
2020-04-08 10:12:09 -04:00
patrick laflamme
675cc37038 Prevented one CrashReportClientEditor from sending the report owned by another concurrent instance and losing the exit code.
#jira UE-91493 - CrashReportClientEditor may send a report owned by another concurrent instance losing the exit code in the process
#rb Jamie.Dale

#ROBOMERGE-SOURCE: CL 12598059 in //UE4/Release-4.25/... via CL 12598060 via CL 12598062
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)

[CL 12598063 by patrick laflamme in Main branch]
2020-04-03 16:23:51 -04:00