yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
a4345725a
master
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type 2 3// Test that a generic interface method can have a body providing default implementation. 4 5interface IFoo 6{ 7 int getVal(); 8 int getGreaterVal<int x>() 9 { 10 return getVal() + x; 11 } 12} 13 14struct Impl : IFoo 15{ 16 int getVal() 17 { 18 return 42; 19 } 20 21 // override default implementation for getGreaterVal. 22 override int getGreaterVal<int x>() 23 { 24 return getVal() + x + 1; // Adding 1 to differentiate from the default implementation. 25 } 26} 27 28int test<T:IFoo>(T v) { return v.getGreaterVal<1>(); } 29 30//TEST_INPUT: set resultBuffer = out ubuffer(data=[0 0 0 0], stride=4) 31RWStructuredBuffer<int> resultBuffer; 32 33[numthreads(1,1,1)] 34void computeMain() 35{ 36 Impl impl = {}; 37 int result = test(impl); 38 resultBuffer[0] = result; 39 // CHECK: 44 40}