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 16__generic<T:IBase> 17float eval(T obj) 18{ 19 return obj.get(); 20} 21 22__generic<T : IBase> 23float test(T obj) 24{ 25 return eval<T>(obj); 26} 27 28[numthreads(4, 1, 1)] 29void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 30{ 31 BaseImpl base; 32 float outVal = test<BaseImpl>(base); 33 outputBuffer[dispatchThreadID.x] = outVal; 34}