From e140c4950eb8c69606386ca57284c0655513b9e1 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Wed, 18 Nov 2020 18:12:43 -0500 Subject: Test for serializing out and reading back Stdlib (#1605) * #include an absolute path didn't work - because paths were taken to always be relative. * Mangling/module name extraction for GenericDecl * Add comment on SerialFilter to explain re-enabling Stmt. * Support setting up SyntaxDecl when reconstructed after deserialization. * Improvements to setup SyntaxDecl. * Fix typo so can read compressed SourceLocs. * Fix issue with SourceManger. * Simple test for serializing out stdlib and reading back in. * Fix calling convention. * Add override to StdLib impls. * Fix typo. * Apply testing to an actual compute test when using load-stdlib Make -load/compile-stdlib processable by Slang Move out testing into util into TestToolUtil so can be shared. * Slightly more concise setup of session. * Fix some errors introduced with session handling. * Made setup for compile same across slangc and slangc-tool. --- tests/serialization/std-lib-serialize.slang | 32 ++++++++++++++++++++++ .../std-lib-serialize.slang.expected.txt | 4 +++ 2 files changed, 36 insertions(+) create mode 100644 tests/serialization/std-lib-serialize.slang create mode 100644 tests/serialization/std-lib-serialize.slang.expected.txt (limited to 'tests/serialization') diff --git a/tests/serialization/std-lib-serialize.slang b/tests/serialization/std-lib-serialize.slang new file mode 100644 index 000000000..e55a2cd69 --- /dev/null +++ b/tests/serialization/std-lib-serialize.slang @@ -0,0 +1,32 @@ +//TEST:COMPILE: -save-stdlib +//TEST:COMPARE_COMPUTE: -compile-arg -load-stdlib + +struct A +{ + float x; + + float addWith(float y) + { + return this.x + y; + } +}; + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer outputBuffer : register(u0); + + +float test(float inVal) +{ + A a; + a.x = inVal; + return a.addWith(inVal*inVal); +} + +[numthreads(4, 1, 1)] +void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +{ + uint tid = dispatchThreadID.x; + float inVal = float(tid); + float outVal = test(inVal); + outputBuffer[tid] = outVal; +} \ No newline at end of file diff --git a/tests/serialization/std-lib-serialize.slang.expected.txt b/tests/serialization/std-lib-serialize.slang.expected.txt new file mode 100644 index 000000000..f73cfe6c3 --- /dev/null +++ b/tests/serialization/std-lib-serialize.slang.expected.txt @@ -0,0 +1,4 @@ +0 +40000000 +40C00000 +41400000 -- cgit v1.2.3