mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2024-11-21 17:36:18 +01:00
client: studio: another NEON type fix for AngleQuaternion, static-ize global NEON vectors
This commit is contained in:
parent
b4bd06603e
commit
d4995df92c
@ -254,11 +254,7 @@ AngleQuaternion
|
||||
====================
|
||||
*/
|
||||
#if XASH_SIMD_NEON
|
||||
static const float32x4_t AngleQuaternion_sign2 =
|
||||
vzipq_f32(
|
||||
vreinterpretq_f32_u32(vdupq_n_u32(0x80000000)),
|
||||
vreinterpretq_f32_u32(vdupq_n_u32(0x00000000))
|
||||
).val[0]; // { 0x80000000, 0x00000000, 0x80000000, 0x00000000 };
|
||||
static const uint32x4_t AngleQuaternion_sign2 = vzipq_u32(vdupq_n_u32(0x80000000), vdupq_n_u32(0x00000000)).val[0]; // { 0x80000000, 0x00000000, 0x80000000, 0x00000000 };
|
||||
#endif
|
||||
void AngleQuaternion( float *angles, vec4_t quaternion )
|
||||
{
|
||||
@ -411,12 +407,12 @@ QuaternionMatrix
|
||||
====================
|
||||
*/
|
||||
#if XASH_SIMD_NEON
|
||||
const uint32x4_t QuaternionMatrix_sign1 = vsetq_lane_u32(0x80000000, vdupq_n_u32(0x00000000), 0); // { 0x80000000, 0x00000000, 0x00000000, 0x00000000 };
|
||||
const uint32x4_t QuaternionMatrix_sign2 = vsetq_lane_u32(0x80000000, vdupq_n_u32(0x00000000), 1); // { 0x00000000, 0x80000000, 0x00000000, 0x00000000 };
|
||||
const uint32x4_t QuaternionMatrix_sign3 = vsetq_lane_u32(0x00000000, vdupq_n_u32(0x80000000), 2); // { 0x80000000, 0x80000000, 0x00000000, 0x80000000 };
|
||||
const float32x4_t matrix3x4_identity_0 = vsetq_lane_f32(1, vdupq_n_f32(0), 0); // { 1, 0, 0, 0 }
|
||||
const float32x4_t matrix3x4_identity_1 = vsetq_lane_f32(1, vdupq_n_f32(0), 1); // { 0, 1, 0, 0 }
|
||||
const float32x4_t matrix3x4_identity_2 = vsetq_lane_f32(1, vdupq_n_f32(0), 2); // { 0, 0, 1, 0 }
|
||||
static const uint32x4_t QuaternionMatrix_sign1 = vsetq_lane_u32(0x80000000, vdupq_n_u32(0x00000000), 0); // { 0x80000000, 0x00000000, 0x00000000, 0x00000000 };
|
||||
static const uint32x4_t QuaternionMatrix_sign2 = vsetq_lane_u32(0x80000000, vdupq_n_u32(0x00000000), 1); // { 0x00000000, 0x80000000, 0x00000000, 0x00000000 };
|
||||
static const uint32x4_t QuaternionMatrix_sign3 = vsetq_lane_u32(0x00000000, vdupq_n_u32(0x80000000), 2); // { 0x80000000, 0x80000000, 0x00000000, 0x80000000 };
|
||||
static const float32x4_t matrix3x4_identity_0 = vsetq_lane_f32(1, vdupq_n_f32(0), 0); // { 1, 0, 0, 0 }
|
||||
static const float32x4_t matrix3x4_identity_1 = vsetq_lane_f32(1, vdupq_n_f32(0), 1); // { 0, 1, 0, 0 }
|
||||
static const float32x4_t matrix3x4_identity_2 = vsetq_lane_f32(1, vdupq_n_f32(0), 2); // { 0, 0, 1, 0 }
|
||||
#endif
|
||||
|
||||
void QuaternionMatrix( vec4_t quaternion, float (*matrix)[4] )
|
||||
|
Loading…
Reference in New Issue
Block a user