yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
2a5d5b323
master
1//TEST(compute):COMPARE_COMPUTE: -shaderobj 2 3//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer 4RWStructuredBuffer<float> outputBuffer; 5 6interface IBase 7{ 8 float get(); 9} 10 11struct BaseImpl : IBase 12{ 13 float get() { return 1.0; } 14}; 15 16struct S 17{ 18 __generic<T:IBase> 19 float eval(T obj) 20 { 21 return obj.get(); 22 } 23}; 24 25__generic<T : IBase> 26float test(T obj) 27{ 28 S s; 29 return s.eval<T>(obj); 30} 31 32[numthreads(4, 1, 1)] 33void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 34{ 35 BaseImpl base; 36 float outVal = test<BaseImpl>(base); 37 outputBuffer[dispatchThreadID.x] = outVal; 38}