yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeFix partial inference of variadic generic functions. (#4956)6e32976de

master
686 B25 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj -output-using-type
2//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -cpu -shaderobj -output-using-type
3//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -vk -shaderobj -output-using-type
4
5//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
6RWStructuredBuffer<float> outputBuffer;
7
8void aggregate(inout int v, int u)
9{
10    v = v * u;
11}
12
13T test<T:IInteger, each U : IInteger>(T t, expand each U u)
14{
15    int v = 1;
16    expand aggregate(v, (each u).toInt());
17    return t + T(v);
18}
19
20[numthreads(1, 1, 1)]
21void computeMain()
22{
23    // CHECK: 11
24    outputBuffer[0] = test<int>(5, 1, 2, 3);
25}