Commit Graph

314 Commits

Author SHA1 Message Date
will damon
c3dfe045a8 Merge CL 11258451 from //UE4/Dev-Rendering/...
---

Enable Metal RHI runtime virtual texture support.

#rb matt.collins
#jira UE-81243
[FYI] rolando.caloca

#ROBOMERGE-SOURCE: CL 12475213 in //UE4/Release-4.25/... via CL 12475219 via CL 12475222
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)

[CL 12475231 by will damon in Main branch]
2020-03-27 17:40:15 -04:00
Rolando Caloca
5b82f15def Copying //UE4/Dev-RenderPlat-Staging@11388153 to //UE4/Main
#rb none
#rnx

[CL 11388545 by Rolando Caloca in Main branch]
2020-02-12 13:27:19 -05:00
Stefan Boberg
55a8b15f1f Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb none

[CL 11258477 by Stefan Boberg in Main branch]
2020-02-05 14:26:36 -05:00
Ryan Gerleve
35e095a9d8 Copying //UE4/Dev-Networking @ CL 11201841 to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 11202190 by Ryan Gerleve in Main branch]
2020-01-31 18:46:22 -05:00
Lina Halper
44c1bb3292 COPY from //Dev-Anim to //Dev-Main
#rb: none
#fyi: Laurent.Delayen, Thomas.Sarkanen

[CL 11088765 by Lina Halper in Main branch]
2020-01-22 17:58:55 -05:00
Matt Peters
505284e41e Allow TruncToFloat intrinsics used on platforms that support them.
Add SSE and AVX defines to allow specifying availability on PC, MAC, and Linux.
SSE and AVX defines have ALWAYS_HAS and MAYBE_HAS variants to distinguish between available to compile and available to run without the need to check cpuid.
Add templated base classes TUnrealPlatformMathSSEBase and TUnrealPlatformMathSSE4Base to remove the boilerplate overrides added by each of the platformmaths that use the sse overrides.
#rb Steve.Robb
#rn Minor

[CL 10942197 by Matt Peters in Dev-Core branch]
2020-01-10 11:58:11 -05:00
peter engstrom
83c804462c Updating copyright for Engine Runtime.
#rnx
#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900 via CL 10870549
#ROBOMERGE-BOT: NETWORKING (Main -> Dev-Networking) (v624-10872983)

[CL 10874720 by peter engstrom in Dev-Networking branch]
2020-01-03 09:45:29 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
robert manuszewski
64799fb0b6 Copying //UE4/Dev-Core [at] 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 10708666 in //UE4/Main/...
#ROBOMERGE-BOT: NETWORKING (Main -> Dev-Networking) (v610-10636431)

[CL 10823270 by robert manuszewski in Dev-Networking branch]
2019-12-19 15:04:01 -05:00
Robert Manuszewski
7b6f840f7f Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00
michael trepka
85184e8b11 Implemented FPlatformMisc::GetCPUBrand () for Mac, based on Linux implementation. Also, switched FMacPlatformMisc to use __cpuid intrinsic.
#rb Brandon.Schaefer

#ROBOMERGE-OWNER: ryan.gerleve
#ROBOMERGE-AUTHOR: michael.trepka
#ROBOMERGE-SOURCE: CL 10310653 via CL 10310659 via CL 10310665 via CL 10310671
#ROBOMERGE-BOT: NETWORKING (Main -> Dev-Networking) (v594-10333955)

[CL 10351377 by michael trepka in Dev-Networking branch]
2019-11-21 14:27:52 -05:00
michael trepka
b210a34f0d Implemented FPlatformMisc::GetCPUBrand () for Mac, based on Linux implementation. Also, switched FMacPlatformMisc to use __cpuid intrinsic.
#rb Brandon.Schaefer


#ROBOMERGE-SOURCE: CL 10310653 via CL 10310659 via CL 10310665
#ROBOMERGE-BOT: (v593-10286020)

[CL 10310671 by michael trepka in Main branch]
2019-11-19 14:17:55 -05:00
Rolando Caloca
1a30325d6f Copying //UE4/Dev-RenderPlat-Staging@9551419 to //UE4/Main
#rb none
#rnx

[CL 9551447 by Rolando Caloca in Main branch]
2019-10-11 15:33:31 -04:00
Rolando Caloca
d313da3afa Merging //UE4/Main@9413474 to Dev-RenderPlat-Staging
#rb none
#rnx

[CL 9417021 by Rolando Caloca in Dev-RenderPlat-Staging branch]
2019-10-04 09:23:21 -04:00
Stefan Boberg
1f813eb516 Copying //UE4/Dev-Core to Main (//UE4/Main)
#rb many

[CL 9405827 by Stefan Boberg in Main branch]
2019-10-03 16:26:48 -04:00
Rolando Caloca
f83ae4807a Copying //UE4/Dev-Rendering@9317594 to Dev-RenderPlat-Staging
#rb none
#rnx

[CL 9317904 by Rolando Caloca in Dev-RenderPlat-Staging branch]
2019-10-01 13:03:04 -04:00
jamie dale
a287480c36 Allow FString instances containing code units outside of the basic multilingual plane to be losslessly processed regardless of whether TCHAR is 2 or 4 bytes.
Most UE4 platforms use a 2-byte TCHAR, however some still use a 4-byte TCHAR. The platforms that use a 4-byte TCHAR expect their string data to be UTF-32, however there are parts of UE4 that serialize FString data as a series of UCS2CHAR, simply narrowing or widening each TCHAR in turn. This can result in invalid or corrupted UTF-32 strings (either UTF-32 strings containing UTF-16 surrogates, or UTF-32 code points that have been truncated to 2-bytes), which leads to either odd behavior or crashes.

This change updates the parts of UE4 that process FString data as a series of 2-byte values to do so on the correct UTF-16 interpretation of the data, converting to/from UTF-32 as required on platforms that use a 4-byte TCHAR. This conversion is a no-op on platforms that use a 2-byte TCHAR as the string is already assumed to be valid UTF-16 data. It should also be noted that while FString may contain UTF-16 code units on platforms using a 2-byte TCHAR, this change doesn't do anything to make FString represent a Unicode string on those platforms (ie, a string that understands and works on code points), but is rather just a bag of code units.

Two new variable-width string converters have be added to facilitate the conversion (modelled after the TCHAR<->UTF-8 converters), TUTF16ToUTF32_Convert and TUTF32ToUTF16_Convert. These are used for both TCHAR<->UTF16CHAR conversion when needed, but also for TCHAR<->wchar_t conversion on platforms that use char16_t for TCHAR along with having a 4-byte wchar_t (as defined by the new PLATFORM_WCHAR_IS_4_BYTES option).

These conversion routines are accessed either via the conversion macros (TCHAR_TO_UTF16, UTF16_TO_TCHAR, TCHAR_TO_WCHAR, and WCHAR_TO_TCHAR), or by using a conversion struct (FTCHARToUTF16, FUTF16ToTCHAR, FTCHARToWChar, and FWCharToTCHAR), which is the same pattern as the existing TCHAR<->UTF-8 conversion. Both the macros and the structs are defined as no-ops when the conversion isn't needed, but always exist so that code can be written in a portable way.

Very little code actually needed updating to use UTF-16, as the vast majority makes no assumptions about the size of TCHAR, nor how FString should be serialized. The main places were the FString archive serialization and the JSON reader/writer, along with some minor fixes to the UTF-8 conversion logic for platforms using a 4-byte TCHAR.

Tests have been added to verify that an FString representing a UTF-32 code point can be losslessly converted to/from UTF-8 and UTF-16, and serialized to/from an archive.

#jira
#rb Steve.Robb, Josh.Adams


#ROBOMERGE-SOURCE: CL 8676728 via CL 8687863
#ROBOMERGE-BOT: (v421-8677696)

[CL 8688048 by jamie dale in Main branch]
2019-09-16 05:44:11 -04:00
Marcus Wassmer
6517c68ef5 Copying //UE4/Dev-RenderPlat-Staging@8684824 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 8684840 by Marcus Wassmer in Main branch]
2019-09-14 09:45:25 -04:00
Ben Marsh
beb4519169 Rename EBuildConfigurations::Type to EBuildConfiguration.
#rb none

[CL 7937697 by Ben Marsh in Dev-Build branch]
2019-08-09 17:35:36 -04:00
chris gagnon
72ba51c5bd Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none


#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: chris.gagnon
#ROBOMERGE-SOURCE: CL 6838042 in //UE4/Main/...
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build) (v366-6836689)

[CL 6874679 by chris gagnon in Dev-Build branch]
2019-06-07 05:27:42 -04:00
Lina Halper
b0bdc590d5 Merging //UE4/Dev-Main to Dev-Anim (//UE4/Dev-Anim)
#lockdown: thomas.sarkanen
#fyi: Laurent.Delayen
#rb: none

[CL 6861656 by Lina Halper in Dev-Anim branch]
2019-06-06 12:33:54 -04:00
ben marsh
83bd3cd7c6 Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

#ROBOMERGE-OWNER: lina.halper
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6631504 in //UE4/Main/...
#ROBOMERGE-BOT: ANIM (Main -> Dev-Anim) (v365-6733468)

[CL 6748759 by ben marsh in Dev-Anim branch]
2019-05-31 18:06:13 -04:00
Josh Adams
88064dd544 - Fixed Mac build and project gneeration errors
#rb none

[CL 6354508 by Josh Adams in Dev-Build branch]
2019-05-07 19:27:43 -04:00
Josh Adams
f811f3ef26 - Fixing up ALL platform header files to match new required naming conventions for HAL files (XXXPlatformFile.h, not XXXFile.h, and all platforms must have a header file, even if it just #includes another one, like IOSPlatformTime.h just #includes ApplePlatformTime.h)
#rb none (too mind numbing)

[CL 6276051 by Josh Adams in Dev-Build branch]
2019-05-03 11:49:42 -04:00
Josh Adams
1e4b186150 - Big update to platforms: PlatformExtensions
- This allows for Confidential platforms to exist outside of the engine, and insert themselves in as needed
- Directory structure is, where .... mirrors the directory structure for Engine and projects
     - /Platforms/XXX/....
- Moving to more data driven approach for ShaderPlatforms and PlatformInfo, where they can be read from DataDrivenPlatformInfo.ini files that live in the platform config folders
- Removed platform mentions from UBT, by way of changing some enums to partial classes with static members (see UnrealTargetPlatform)
- Various other UBT/UAT modifications to allow for looking in other locations for files
- THIS IS NOT A COMPLETE AND FINAL SOLUTION. WE WILL CONTINUE WORK IN DEV-BUILD BEFORE ITS READY FOR PRIMETIME
#rb ben.marsh

[CL 6271418 by Josh Adams in Dev-Build branch]
2019-05-03 08:03:23 -04:00