Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Przemog1 committed Dec 19, 2024
1 parent 01b05ce commit 9649fda
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 24 deletions.
3 changes: 2 additions & 1 deletion 62_CAD/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ constexpr std::array<float, (uint32_t)ExampleMode::CASE_COUNT> cameraExtents =
600.0, // CASE_8
};

constexpr ExampleMode mode = ExampleMode::CASE_4;
constexpr ExampleMode mode = ExampleMode::CASE_8;

class Camera2D
{
Expand Down Expand Up @@ -640,6 +640,7 @@ class ComputerAidedDesign final : public examples::SimpleWindowedApplication, pu
// TODO: delete all quick tests

{

using ef64_t = hlsl::emulated_float64_t<true, true>;
nbl::hlsl::array_get<hlsl::emulated_vector_t3<ef64_t>, ef64_t> getter;
nbl::hlsl::array_set<hlsl::emulated_vector_t3<ef64_t>, ef64_t> setter;
Expand Down
5 changes: 2 additions & 3 deletions 62_CAD/shaders/globals.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ static_assert(offsetof(Globals, miterLimit) == 116u);
#endif

#ifdef __HLSL_VERSION
pfloat64_t2 transformPointNdc(pfloat64_t3x3 transformation, pfloat64_t2 point2d)
pfloat64_t2 transformPointNdc(NBL_CONST_REF_ARG(pfloat64_t3x3) transformation, NBL_CONST_REF_ARG(pfloat64_t2) point2d)
{
pfloat64_t3 point3d;
point3d.x = point2d.x;
Expand All @@ -78,11 +78,10 @@ pfloat64_t2 transformPointNdc(pfloat64_t3x3 transformation, pfloat64_t2 point2d)
pfloat64_t2 output;
output.x = transformationResult.x;
output.y = transformationResult.y;
printf("intput: %f, %f output: %f, %f", _static_cast<float>(point2d.x), _static_cast<float>(point2d.y), _static_cast<float>(output.x), _static_cast<float>(output.y));

return output;
}
pfloat64_t2 transformVectorNdc(pfloat64_t3x3 transformation, pfloat64_t2 vector2d)
pfloat64_t2 transformVectorNdc(NBL_CONST_REF_ARG(pfloat64_t3x3) transformation, NBL_CONST_REF_ARG(pfloat64_t2) vector2d)
{
pfloat64_t3 vector3d;
vector3d.x = vector2d.x;
Expand Down
25 changes: 5 additions & 20 deletions 64_EmulatedFloatTest/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,20 +39,6 @@ class CompatibilityTest final : public MonoDeviceApplication, public MonoAssetMa
// since emulated_float64_t rounds to zero
std::fesetround(FE_TOWARDZERO);

nbl::hlsl::emulated_float64_t<false, true> c = nbl::hlsl::emulated_float64_t<false, true>::create(1.0f);
nbl::hlsl::emulated_float64_t<false, true> a = nbl::hlsl::emulated_float64_t<false, true>::create(-59981.1);
nbl::hlsl::emulated_float64_t<false, true> b = nbl::hlsl::emulated_float64_t<false, true>::create(-78853.9);

double correctOutput = -59981.1 - (-78853.9);
auto output = a - b;

std::cout << "correct: " << reinterpret_cast<double&>(correctOutput) << std::endl;
std::cout << "my: " << reinterpret_cast<double&>(output) << std::endl;

std::cout << "seeeeeeeeeeemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm\n";
std::cout << std::bitset<64>(reinterpret_cast<uint64_t&>(correctOutput)) << " - correct" << std::endl;
std::cout << std::bitset<64>(output.data) << std::endl;

// Remember to call the base class initialization!
if (!device_base_t::onAppInitialized(smart_refctd_ptr(system)))
return false;
Expand Down Expand Up @@ -468,12 +454,11 @@ class CompatibilityTest final : public MonoDeviceApplication, public MonoAssetMa
printTestOutput("emulatedFloat64RandomValuesTest", emulatedFloat64RandomValuesTest(submitter));
printTestOutput("emulatedFloat64RandomValuesTestContrastingExponents", emulatedFloat64RandomValuesTestContrastingExponents(submitter));
printTestOutput("emulatedFloat64NegAndPosZeroTest", emulatedFloat64NegAndPosZeroTest(submitter));
// TODO: what is up with substraction for inf?
//printTestOutput("emulatedFloat64BothValuesInfTest", emulatedFloat64BothValuesInfTest(submitter));
//printTestOutput("emulatedFloat64BothValuesNegInfTest", emulatedFloat64BothValuesNegInfTest(submitter));
//printTestOutput("emulatedFloat64OneValIsInfOtherIsNegInfTest", emulatedFloat64OneValIsInfOtherIsNegInfTest(submitter));
//printTestOutput("emulatedFloat64OneValIsInfTest", emulatedFloat64OneValIsInfTest(submitter));
//printTestOutput("emulatedFloat64OneValIsNegInfTest", emulatedFloat64OneValIsNegInfTest(submitter));
printTestOutput("emulatedFloat64BothValuesInfTest", emulatedFloat64BothValuesInfTest(submitter));
printTestOutput("emulatedFloat64BothValuesNegInfTest", emulatedFloat64BothValuesNegInfTest(submitter));
printTestOutput("emulatedFloat64OneValIsInfOtherIsNegInfTest", emulatedFloat64OneValIsInfOtherIsNegInfTest(submitter));
printTestOutput("emulatedFloat64OneValIsInfTest", emulatedFloat64OneValIsInfTest(submitter));
printTestOutput("emulatedFloat64OneValIsNegInfTest", emulatedFloat64OneValIsNegInfTest(submitter));
if(false) // doesn't work for some reason + fast math is enabled by default
printTestOutput("emulatedFloat64BNaNTest", emulatedFloat64BNaNTest(submitter));
printTestOutput("emulatedFloat64BInfTest", emulatedFloat64OneValIsZeroTest(submitter));
Expand Down

0 comments on commit 9649fda

Please sign in to comment.