summaryrefslogtreecommitdiffstats
path: root/tests/serialization
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-02-23 16:39:46 -0800
committerGitHub <noreply@github.com>2024-02-23 16:39:46 -0800
commit401d8cdb12ae69aeb216c80c9bb90240d8359649 (patch)
tree4548c9de52bdeff424a0a3969ad407fccb3c0f09 /tests/serialization
parent58eb6f7da01af1767282ee12b0b4b25c57e52afb (diff)
Add slangc interface to compile and use ir modules. (#3615)
* Add slangc interface to compile and use ir modules. * Fix glsl scalar layout settings not copied to target. * Fix. * Cleanups.
Diffstat (limited to 'tests/serialization')
-rw-r--r--tests/serialization/extern/extern-test.slang12
-rw-r--r--tests/serialization/extern/module-a.slang6
-rw-r--r--tests/serialization/extern/module-b.slang6
-rw-r--r--tests/serialization/obfuscated-loc-module.slang4
-rw-r--r--tests/serialization/obfuscated-module-check-loc.slang4
-rw-r--r--tests/serialization/obfuscated-serialized-module-shared.slang5
-rw-r--r--tests/serialization/obfuscated-serialized-module-test.slang14
-rw-r--r--tests/serialization/obfuscated-serialized-module.slang9
-rw-r--r--tests/serialization/serialized-module-shared.slang5
-rw-r--r--tests/serialization/serialized-module-test.slang9
-rw-r--r--tests/serialization/serialized-module.slang8
11 files changed, 35 insertions, 47 deletions
diff --git a/tests/serialization/extern/extern-test.slang b/tests/serialization/extern/extern-test.slang
index 1efb221dc..c46724603 100644
--- a/tests/serialization/extern/extern-test.slang
+++ b/tests/serialization/extern/extern-test.slang
@@ -1,18 +1,18 @@
// extern-test.slang
-//TEST:COMPILE: -module-name module -no-codegen tests/serialization/extern/module-a.slang -o tests/serialization/extern/module-a.slang-lib
-//TEST:COMPILE: -module-name module -no-codegen tests/serialization/extern/module-b.slang -o tests/serialization/extern/module-b.slang-lib
-//TEST:COMPARE_COMPUTE_EX: -xslang -module-name -xslang module -slang -compute -xslang -r -xslang tests/serialization/extern/module-a.slang-lib -xslang -r -xslang tests/serialization/extern/module-b.slang-lib -shaderobj
+//TEST:COMPILE: -no-codegen tests/serialization/extern/module-a.slang -o tests/serialization/extern/module-a.slang-lib
+//TEST:COMPILE: -no-codegen tests/serialization/extern/module-b.slang -o tests/serialization/extern/module-b.slang-lib
+//TEST:COMPARE_COMPUTE_EX: -slang -compute -xslang -r -xslang tests/serialization/extern/module-a.slang-lib -xslang -r -xslang tests/serialization/extern/module-b.slang-lib -shaderobj
//TEST_INPUT:ubuffer(data=[0 0 0 0 ], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
// Declare the type exists
-[__extern] struct Thing {};
+extern struct Thing {};
// A mechanism to make a Thing without knowing the specific fields.
-[__extern] Thing makeThing(int a, int b);
+extern Thing makeThing(int a, int b);
-[__extern] int doSomething(Thing a, Thing b);
+extern int doSomething(Thing a, Thing b);
[numthreads(4, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/serialization/extern/module-a.slang b/tests/serialization/extern/module-a.slang
index 81816a213..59ccf7bcd 100644
--- a/tests/serialization/extern/module-a.slang
+++ b/tests/serialization/extern/module-a.slang
@@ -2,13 +2,13 @@
// module-a.slang
-struct Thing
+export struct Thing
{
int a;
int b;
};
-Thing makeThing(int a, int b)
+export Thing makeThing(int a, int b)
{
Thing thing;
thing.a = a;
@@ -16,7 +16,7 @@ Thing makeThing(int a, int b)
return thing;
}
-int foo(Thing thing)
+export int foo(Thing thing)
{
return thing.a + thing.b * 2;
}
diff --git a/tests/serialization/extern/module-b.slang b/tests/serialization/extern/module-b.slang
index 20371f156..2bc646db8 100644
--- a/tests/serialization/extern/module-b.slang
+++ b/tests/serialization/extern/module-b.slang
@@ -3,10 +3,10 @@
// module-b.slang
// This looks like a definition (and it is) but with [__extern] it's definition will be replaced at link time with a defintion
-[__extern] struct Thing {};
-[__extern] int foo(Thing thing);
+extern struct Thing {};
+extern int foo(Thing thing);
-int doSomething(Thing a, Thing b)
+export int doSomething(Thing a, Thing b)
{
return foo(a) + foo(b);
}
diff --git a/tests/serialization/obfuscated-loc-module.slang b/tests/serialization/obfuscated-loc-module.slang
index 63c4f61ee..4837e6486 100644
--- a/tests/serialization/obfuscated-loc-module.slang
+++ b/tests/serialization/obfuscated-loc-module.slang
@@ -3,13 +3,13 @@
// obfuscated-loc-module.slang
-int billy(int v)
+export int billy(int v)
{
return v + 1;
}
// This function is designed to fail during IR passes/emit.
-int silly(int a)
+export int silly(int a)
{
int t = 0;
[ForceUnroll(10)]
diff --git a/tests/serialization/obfuscated-module-check-loc.slang b/tests/serialization/obfuscated-module-check-loc.slang
index 49251760c..87236b576 100644
--- a/tests/serialization/obfuscated-module-check-loc.slang
+++ b/tests/serialization/obfuscated-module-check-loc.slang
@@ -11,8 +11,8 @@ RWStructuredBuffer<float> outputBuffer;
// We *don't* import because if we do we'll get a fresh compilation from source... we want to make sure it's using the -r module
//import obfuscated_loc_module;
-int silly(int v);
-int billy(int v);
+extern int silly(int v);
+extern int billy(int v);
[numthreads(1, 1, 1)]
void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
diff --git a/tests/serialization/obfuscated-serialized-module-shared.slang b/tests/serialization/obfuscated-serialized-module-shared.slang
new file mode 100644
index 000000000..76b7e3f5c
--- /dev/null
+++ b/tests/serialization/obfuscated-serialized-module-shared.slang
@@ -0,0 +1,5 @@
+struct Thing
+{
+ int a;
+ int b;
+};
diff --git a/tests/serialization/obfuscated-serialized-module-test.slang b/tests/serialization/obfuscated-serialized-module-test.slang
index 927ee06bc..8afe1fb09 100644
--- a/tests/serialization/obfuscated-serialized-module-test.slang
+++ b/tests/serialization/obfuscated-serialized-module-test.slang
@@ -3,20 +3,12 @@
// A test to try out the basics of module
// serialization, obfuscation and source maps.
-//TEST:COMPILE: tests/serialization/serialized-module.slang -o tests/serialization/obfuscated-serialized-module.slang-module -g -obfuscate
+//TEST:COMPILE: tests/serialization/obfuscated-serialized-module.slang -o tests/serialization/obfuscated-serialized-module.slang-module -g -obfuscate
//TEST:COMPARE_COMPUTE_EX:-slang -compute -Xslang... -r tests/serialization/obfuscated-serialized-module.slang-module -obfuscate -X. -shaderobj
-//import obfuscated_serialized_module;
+import obfuscated_serialized_module_shared;
-// This is fragile - needs match the definition in obfuscated_serialized_module
-struct Thing
-{
- int a;
- int b;
-};
-
-// TODO: need to get the name mangling to line up!
-int foo(Thing thing);
+extern int foo(Thing thing);
//TEST_INPUT:ubuffer(data=[0 0 0 0 ], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/serialization/obfuscated-serialized-module.slang b/tests/serialization/obfuscated-serialized-module.slang
index 17ddfa662..3aa3b8978 100644
--- a/tests/serialization/obfuscated-serialized-module.slang
+++ b/tests/serialization/obfuscated-serialized-module.slang
@@ -1,14 +1,9 @@
//TEST_IGNORE_FILE:
// obfuscated-serialized-module.slang
+import obfuscated_serialized_module_shared;
-struct Thing
-{
- int a;
- int b;
-};
-
-int foo(Thing thing)
+export int foo(Thing thing)
{
return (thing.a + thing.b) - thing.b;
}
diff --git a/tests/serialization/serialized-module-shared.slang b/tests/serialization/serialized-module-shared.slang
new file mode 100644
index 000000000..143cff6fa
--- /dev/null
+++ b/tests/serialization/serialized-module-shared.slang
@@ -0,0 +1,5 @@
+struct Thing
+{
+ int a;
+ int b;
+};
diff --git a/tests/serialization/serialized-module-test.slang b/tests/serialization/serialized-module-test.slang
index d27fe0458..3e7588a2a 100644
--- a/tests/serialization/serialized-module-test.slang
+++ b/tests/serialization/serialized-module-test.slang
@@ -9,14 +9,9 @@
//import serialized_module;
// This is fragile - needs match the definition in serialized_module
-struct Thing
-{
- int a;
- int b;
-};
+import serialized_module_shared;
-// TODO: need to get the name mangling to line up!
-int foo(Thing thing);
+extern int foo(Thing thing);
//TEST_INPUT:ubuffer(data=[0 0 0 0 ], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;
diff --git a/tests/serialization/serialized-module.slang b/tests/serialization/serialized-module.slang
index e94edf8d4..861ddb300 100644
--- a/tests/serialization/serialized-module.slang
+++ b/tests/serialization/serialized-module.slang
@@ -2,13 +2,9 @@
// serialized-module.slang
-struct Thing
-{
- int a;
- int b;
-};
+import serialized_module_shared;
-int foo(Thing thing)
+export int foo(Thing thing)
{
return (thing.a + thing.b) - thing.b;
}