yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7dabfa76c
master
1// user-defined-initializer.slang 2 3// Confirm that user-defined initializer/constructor 4// methods in a type work as expected. 5 6//TEST(compute):COMPARE_COMPUTE: -shaderobj 7//TEST(compute):COMPARE_COMPUTE:-cpu -shaderobj 8 9struct Pair 10{ 11 int head; 12 int tail; 13 14 __init(int h, int t) 15 { 16 head = h; 17 tail = t; 18 } 19 20 int getHead() { return head; } 21 int getTail() { return tail; } 22} 23 24int test(int value) 25{ 26 Pair p = Pair(value, value+1); 27 return p.getHead()*16 + p.getTail(); 28} 29 30//TEST_INPUT:ubuffer(data=[0 1 2 3], stride=4):out,name=outputBuffer 31RWStructuredBuffer<int> outputBuffer; 32 33[numthreads(4, 1, 1)] 34void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) 35{ 36 uint tid = dispatchThreadID.x; 37 int inVal = outputBuffer[tid]; 38 int outVal = test(inVal); 39 outputBuffer[tid] = outVal; 40}