Commit Graph

751 Commits

Author SHA1 Message Date
charles bloom
593fab6f69 Clamp F16 in valid range for BC6H in ISPC and ASTC, also set A to 1
even though ASTC could encode other values of A, still clamp as if it was BC6H for consistency
now all compressed HDR formats should clamp the same way that Oodle Texture currently does

#preflight 6296556c452ffe576a816993
#rb fabian.giesen

[CL 20440882 by charles bloom in ue5-main branch]
2022-05-31 15:49:40 -04:00
brian karis
0d8b010e12 Nanite displaced mesh. Added uniform tessellation and displacement.
#rb graham.wihlidal
#preflight 62901dcd74630984fd6763b1

#ROBOMERGE-AUTHOR: brian.karis
#ROBOMERGE-SOURCE: CL 20400905 via CL 20400917 via CL 20400925
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20402444 by brian karis in ue5-main branch]
2022-05-27 20:42:29 -04:00
Steve Robb
4514fad516 GitHub 8898 : FIntVector: Add component-wise multiplication operator
#rb steve.robb
#jira UE-142730
#preflight 6290d8ac1f0041249bf005d5

[CL 20393041 by Steve Robb in ue5-main branch]
2022-05-27 10:16:47 -04:00
danny chapman
ff822641b7 Add support for RotationVector conversions to Quat
#rb steve.robb,josh.adams
#preflight 628b55a44b30a07309fdb9a8

[CL 20321491 by danny chapman in ue5-main branch]
2022-05-23 05:50:53 -04:00
Andrew Davidson
7a9db7f36d Add missing ISPC forward declarations
#preflight 62838df544349a6581ed449b

[CL 20241104 by Andrew Davidson in ue5-main branch]
2022-05-17 08:18:29 -04:00
Andrew Davidson
9741042a2b Reduce use of UE_DECLARE_LWC_TYPE macro to improve Intellisense.
Moved Math forward declarations from CoreFwd.h to Math/MathFwd.h
#rb steve.robb
#preflight 62837df43c1cdc59e2b07dd5

[CL 20240602 by Andrew Davidson in ue5-main branch]
2022-05-17 07:05:35 -04:00
Sebastien Lussier
64071198b6 Fixed issue with non axis aligned HLOD volumes
* Brushes or rotated volumes were including more actors than they should have
#rb jeanfrancois.dube
#jira none
#preflight 62824c41734d06577025f099

[CL 20222727 by Sebastien Lussier in ue5-main branch]
2022-05-16 09:21:37 -04:00
Matt Peters
3037abe477 TVector::BoundToBox: Change inconsistent pass-by-value to pass-by-reference.
AIGraph::UpdateClassData: Fix incorrect recursive child call: call needs to be made on the child not on the current node.
From PR #8466 submitted by LindyHopperGT.
#rb Josh.Adams
#rnx
#preflight 627bb7842d678960301025a0

[CL 20150316 by Matt Peters in ue5-main branch]
2022-05-11 17:11:38 -04:00
dmytro vovk
59a5f61067 Fixed VectorLoadURGBA16N and VectorLoadSRGBA16N on NEON and FPU
#jira UE-151249
#rb Zak.Middleton

#ushell-cherrypick of 20130528 by dmytro.vovk
#preflight 627ae02e68422389764e57c5

[CL 20131539 by dmytro vovk in ue5-main branch]
2022-05-10 18:51:29 -04:00
charles bloom
578f1d4048 Add TSF_R32F single channel float texture source format
#preflight 6272ecc3e73769b67fe88db9
#rb dan.thompson,fabian.giesen

[CL 20064522 by charles bloom in ue5-main branch]
2022-05-05 16:58:24 -04:00
Jason Adcock
dccca1fb87 Fix Fortnite Networking Versioning between FN and UE branches
#jira UE-147571, UE-149373, UE-146854
#rb ryan.gerleve
#preflight

[CL 20053774 by Jason Adcock in ue5-main branch]
2022-05-04 20:56:28 -04:00
nick darnell
06aed28a93 Engine - Adding support for Double Range types, as well as reading doubles in metadata.
[REVIEW] [at]Matt.Kuhlenschmidt

#ROBOMERGE-AUTHOR: nick.darnell
#ROBOMERGE-SOURCE: CL 20029842 via CL 20029853 via CL 20029859
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20035025 by nick darnell in ue5-main branch]
2022-05-03 19:47:22 -04:00
Alex McAdams
e779b883dc Chaos Cloth: Implement ISPC for Bending Constraints and XPBDSpringConstraints.
In the Shirring Test (in development editor), the Bending Constraints change drops the single iteration BendingApply from 2.1ms --> 350us. For reference, Bending Springs (with ISPC) are about 150us.

For XPBDSpringConstraints, there is no way to enable XPBD from the UI, so this does not affect existing behavior, but I use XPBD for testing high res cloth, so the ISPC XPBD speedups are important there.

This also includes code for using PhysicsParallelFor (following other parallel constraint examples). This is significantly slower than ISPC on PC (similar to other cloth constraints). I don't know if this would be better on other platforms, but the default is to use ISPC (following same convention as other cloth constraints).

#preflight 6271affa2f4fb6234ec50446
#rb kriss.gossart

[CL 20034474 by Alex McAdams in ue5-main branch]
2022-05-03 19:02:20 -04:00
Zak Middleton
44e593855e #ue5 - LWC: add missing VectorClamp() for doubles, it was only defined for floats, and also not in UnrealMathFPU.
#jira none
#preflight 626c38ac9e6bef17920d445c
#rb none

[CL 19984279 by Zak Middleton in ue5-main branch]
2022-04-29 15:53:27 -04:00
Zak Middleton
bd47021f04 #ue5 - Added VectorMod360(), for specific use by Rotator normalization where speed is more important than the stability of stock fmod() under extreme ranges. 30% - 75% faster depending on the intrinsics available to the alternate VectorMod().
Given that the second argument is always 360, we can remove some tests for bad ranges of input and use simple truncation/multiplication to compute the result, while retaining good accuracy within reasonable FRotator input value ranges.

#jira UE-129730
#preflight 62699851f97c319beba69337
#rb Dmytro.Vovk

[CL 19947858 by Zak Middleton in ue5-main branch]
2022-04-27 17:44:04 -04:00
Zak Middleton
f2e6ac0f2d #ue5 - Make UnrealMathFPU usable again when vector intrinsics are disabled or when explicitly swapped in within VectorRegister.h. Fixed some related deprecated UE constants usage. Fixed NaN handling for comparisons in UnrealMathFPU to pass the UnrealMathTest startup tests.
#jira UE-129730
#rb none
#preflight 62687fe6430b9997eb013593

[CL 19941685 by Zak Middleton in ue5-main branch]
2022-04-27 12:27:40 -04:00
brandon dawson
b28bf9df71 Add cast to the specified octree type in the generic octree callback.
#preflight 6266e9859337eeaec40226e3

#ROBOMERGE-AUTHOR: brandon.dawson
#ROBOMERGE-SOURCE: CL 19937736 via CL 19937756 via CL 19937762
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19939034 by brandon dawson in ue5-main branch]
2022-04-27 10:06:36 -04:00
Zak Middleton
7646f156c5 #ue5 - VectorMod() uses either SVML fmod or std::fmod(). Previous alternate implementations could result in different results with certain inputs, especially when FMA3 was not available.
#jira UE-150201
#preflight 62684dbe2f53f9169a7388b1
#rb Dmytro.Vovk

[CL 19928187 by Zak Middleton in ue5-main branch]
2022-04-26 16:40:32 -04:00
Zak Middleton
5c4d1add39 #ue5 - LWC: Improve precision of some math functions and optimize/improve some SSE-specific implementations where possible.
- FMath::Fmod() changed to use standard fmod() function, because old version could go out of range for combinations of very large and very small values. VectorMod() changed where possible to do the same.

- Fixed ambiguous naming conventions for many functions (inconsistency between InvSqrt, Reciprocal, etc and their estimate functions). Now the default for such functions is to be accurate, and the estimate functions are explicitly named with "Estimate".

- VectorReciprocalSqrt() implementation no longer refines an estimate, as this can diverge between Intel and AMD; this was an issue addressed earlier in UnrealPlatformMathSSE.h (CL 16466371) and we now match that implementation. VectorReciprocal() also no longer refines an estimate for the same reason. Attempted to use SVML InvSqrt however it suffered from measurable variations on AMD/Intel platforms.

- Added missing vectorized implementation for VectorPow() for doubles in SSE.

- Added missing VectorSqrt() implementations for doubles..

- Did a small pass at fixing up some missing functions in UnrealMathFPU so it can pass engine startup tests and HeadlessChaos tests when enabled, though there are a few more that need implementation updates for Niagara (to come soon).

#jira UE-129730
#rb Andrew.Davidson, Dmytro.Vovk
#preflight 62632206e70367fd1e0d29db

[CL 19906229 by Zak Middleton in ue5-main branch]
2022-04-25 14:19:05 -04:00
Zak Middleton
f3f319fbf0 [Backout] - CL19868793.
#fyi Zak.Middleton
Original CL Desc
-----------------------------------------------------------------
#ue5 - LWC: Improve precision of some math functions (FMod / VectorMod) on SSE by using SVML where possible. FMath::Fmod() changed to use standard fmod() function. Fixed ambiguous naming conventions for many functions (inconsistency between InvSqrt, Reciprocal, etc and their estimate functions). Now the default for such functions is to be accurate, and the estimate functions are explicitly named with "Estimate".

Added missing vectorized implementation for VectorPow() for doubles. Fixed some missing VectorSqrt() overrides.

Did a small pass at fixing up some missing functions in UnrealMathFPU so it can pass start tests and HeadlessChaos tests when enabled, though there are a few more that need updates for Niagara (to come soon).

#jira UE-129730
#rb Andrew.Davidson, Dmytro.Vovk
#preflight 6260739e080c6600634ca48b, 625f0f5d5f498a37c9263f29

[CL 19870070 by Zak Middleton in ue5-main branch]
2022-04-22 15:21:17 -04:00
Zak Middleton
2fa28c05d8 #ue5 - LWC: Improve precision of some math functions (FMod / VectorMod) on SSE by using SVML where possible. FMath::Fmod() changed to use standard fmod() function. Fixed ambiguous naming conventions for many functions (inconsistency between InvSqrt, Reciprocal, etc and their estimate functions). Now the default for such functions is to be accurate, and the estimate functions are explicitly named with "Estimate".
Added missing vectorized implementation for VectorPow() for doubles. Fixed some missing VectorSqrt() overrides.

Did a small pass at fixing up some missing functions in UnrealMathFPU so it can pass start tests and HeadlessChaos tests when enabled, though there are a few more that need updates for Niagara (to come soon).

#jira UE-129730
#rb Andrew.Davidson, Dmytro.Vovk
#preflight 6260739e080c6600634ca48b, 625f0f5d5f498a37c9263f29

[CL 19868793 by Zak Middleton in ue5-main branch]
2022-04-22 14:35:14 -04:00
Steve Robb
0cbe607f56 Math macro prefix fixes in non-vectorized transform.
#rb none
#jira UE-140139
#preflight 624f60adf10bcc0f4f8bc840

[CL 19681434 by Steve Robb in ue5-main branch]
2022-04-07 19:27:52 -04:00
matt breindel
e0875eb5df Updating docs for TRotator based on further discussion and experimentation. Rotator interprets angles as intrinsic rotations and applies them in the order yaw, pitch, then roll. Positive angles are left-handed around Z, right-handed around +Y, and right-handed around +X.
[REVIEW] [at]*zak.middleton [at]*tim.tillotson [at]steve.robb [at]robert.manuszewski
#rb [at]zak.middleton [at]steve.robb
#preflight none (comment only)

#ROBOMERGE-AUTHOR: matt.breindel
#ROBOMERGE-SOURCE: CL 19612632 via CL 19613597 via CL 19613826 via CL 19613926
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19615841 by matt breindel in ue5-main branch]
2022-04-04 17:58:40 -04:00
Zak Middleton
d9a2ab92f8 #ue5 - LWC: VectorMod() on Neon updated to match newer SSE implementation.
#jira none
#rb Dmytro.Vovk
#preflight 62460227e434babd8af9c24d

[CL 19579974 by Zak Middleton in ue5-main branch]
2022-03-31 18:09:52 -04:00
kriss gossart
5100b3d5a6 Add missing GetHash functions for TIntVector2 and TIntVector4.
#rb Benn.Gallagher
#jira none
#okforgithuib public
#preflight 6245bd20c51908059abcbee0

[CL 19572840 by kriss gossart in ue5-main branch]
2022-03-31 10:49:30 -04:00