yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
d3fd7470e
master
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu -compute -shaderobj 2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cuda -compute -shaderobj 3//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK):-vk -compute -shaderobj 4 5//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer 6RWStructuredBuffer<int> outputBuffer; 7 8 9interface IFoo 10{ 11 int foo(int a); 12} 13 14struct MyImpl : IFoo 15{ 16 int foo(int a) { return a; } 17} 18 19int test(IFoo foo, int idx) 20{ 21 int val = 0; 22 if (let a = foo as MyImpl) 23 { 24 val = a.foo(idx); 25 } 26 return (val); 27} 28 29[numthreads(4, 1, 1)] 30void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID) 31{ 32 MyImpl impl; 33 // CHECK: 0 34 // CHECK: 1 35 // CHECK: 2 36 // CHECK: 3 37 outputBuffer[dispatchThreadID.x] = test(impl, dispatchThreadID.x); 38}