From 401d8cdb12ae69aeb216c80c9bb90240d8359649 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 23 Feb 2024 16:39:46 -0800 Subject: 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. --- tests/serialization/extern/extern-test.slang | 12 ++++++------ tests/serialization/extern/module-a.slang | 6 +++--- tests/serialization/extern/module-b.slang | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) (limited to 'tests/serialization/extern') 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 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); } -- cgit v1.2.3