yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
8086adc90
master
1//TEST:SIMPLE(filecheck=LIB):-target metallib -entry computeMain -stage compute 2//TEST:SIMPLE(filecheck=METAL):-target metal -entry computeMain -stage compute 3//TEST(compute, metal):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-metal -compute -output-using-type 4//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -output-using-type 5 6// METAL-NOT: struct emptyStruct 7struct emptyStruct 8{ 9 void set(RWStructuredBuffer<int> buffer, int value) {buffer[0] = value;} 10} 11 12 13struct MyStruct 14{ 15 RWStructuredBuffer<int> buffer; 16 int value; 17 void set() 18 { 19 e.set(buffer, value); 20 } 21 emptyStruct e; 22} 23 24//TEST_INPUT: set param = new MyStruct{ out ubuffer(data=[0]), 5, {}} 25ParameterBlock<MyStruct> param; 26 27// LIB: @computeMain 28[shader("compute")] 29[numthreads(1, 1, 1)] 30void computeMain( 31 uint tid: SV_DispatchThreadID, 32) 33{ 34 // BUF: 5 35 param.set(); 36}