Skip to content

Commit b2c0537

Browse files
committed
Refactor
1 parent 36ecbe3 commit b2c0537

File tree

2 files changed

+10
-16
lines changed

2 files changed

+10
-16
lines changed

include/nbl/builtin/hlsl/emulated/float64_t_impl.hlsl

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,11 @@ NBL_CONSTEXPR_INLINE_FUNC bool isZero(uint64_t val)
7878
return (val << 1) == 0ull;
7979
}
8080

81-
inline uint64_t reinterpretAsFloat64BitPattern(uint64_t val)
81+
template<typename T>
82+
inline uint64_t reinterpretAsFloat64BitPattern(T);
83+
84+
template<>
85+
inline uint64_t reinterpretAsFloat64BitPattern<uint64_t>(uint64_t val)
8286
{
8387
if (isZero(val))
8488
return val;
@@ -124,7 +128,8 @@ inline uint64_t reinterpretAsFloat64BitPattern(uint64_t val)
124128
return biasedExp | mantissa;
125129
};
126130

127-
inline uint64_t reinterpretAsFloat64BitPattern(int64_t val)
131+
template<>
132+
inline uint64_t reinterpretAsFloat64BitPattern<int64_t>(int64_t val)
128133
{
129134
const uint64_t sign = val & ieee754::traits<float64_t>::signMask;
130135
const uint64_t absVal = uint64_t(abs(val));
@@ -167,17 +172,6 @@ NBL_CONSTEXPR_INLINE_FUNC bool operatorLessAndGreaterCommonImplementation(uint64
167172
{
168173
if (hlsl::isnan<uint64_t>(lhs) || hlsl::isnan<uint64_t>(rhs))
169174
return false;
170-
if (emulated_float64_t_impl::areBothInfinity(lhs, rhs))
171-
{
172-
const uint64_t lhsSign = ieee754::extractSignPreserveBitPattern(lhs);
173-
const uint64_t rhsSign = ieee754::extractSignPreserveBitPattern(rhs);
174-
175-
if (lhsSign == rhsSign)
176-
return false;
177-
178-
Op compare;
179-
return compare(lhs, rhs);
180-
}
181175
if (emulated_float64_t_impl::areBothZero(lhs, rhs))
182176
return false;
183177
}

include/nbl/builtin/hlsl/spirv_intrinsics/glsl.std.450.hlsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,19 @@ enable_if_t<is_floating_point_v<FloatingPoint> && !is_matrix_v<FloatingPoint>, F
5555

5656
template<typename FloatingPoint>
5757
[[vk::ext_instruction(GLSLstd450::GLSLstd450Cross, "GLSL.std.450")]]
58-
enable_if_t<is_floating_point_v<FloatingPoint>, vector<FloatingPoint, 3> > cross(in vector<FloatingPoint, 3> lhs, in vector<FloatingPoint, 3> rhs);
58+
enable_if_t<is_floating_point_v<FloatingPoint>, vector<FloatingPoint, 3> > cross(NBL_CONST_REF_ARG(vector<FloatingPoint, 3>) lhs, NBL_CONST_REF_ARG(vector<FloatingPoint, 3>) rhs);
5959

6060
template<typename FloatingPoint>
6161
[[vk::ext_instruction(GLSLstd450::GLSLstd450FMix, "GLSL.std.450")]]
6262
enable_if_t<is_floating_point_v<FloatingPoint> && !is_matrix_v<FloatingPoint>, FloatingPoint> fMix(FloatingPoint x, FloatingPoint y, FloatingPoint a);
6363

6464
template<typename T, int N>
6565
[[vk::ext_instruction(GLSLstd450::GLSLstd450Determinant, "GLSL.std.450")]]
66-
T determinant(in matrix<T, N, N> mat);
66+
T determinant(NBL_CONST_REF_ARG(matrix<T, N, N>) mat);
6767

6868
template<typename T, int N>
6969
[[vk::ext_instruction(GLSLstd450MatrixInverse, "GLSL.std.450")]]
70-
matrix<T, N, N> matrixInverse(in matrix<T, N, N> mat);
70+
matrix<T, N, N> matrixInverse(NBL_CONST_REF_ARG(matrix<T, N, N>) mat);
7171

7272
[[vk::ext_instruction(GLSLstd450UnpackSnorm2x16, "GLSL.std.450")]]
7373
float32_t2 unpackSnorm2x16(uint32_t p);

0 commit comments

Comments
 (0)