yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
7758625d3
master
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK):-vk -output-using-type -emit-spirv-directly 2 3// Tests if we handle passing groupshared address-space pointers correctly to a function 4// when that data-type needs legalization (Data -> Data_natural due to `lower-buffer-element-type`). 5// CHECK: 1 6// CHECK-NEXT: 2 7// CHECK-NEXT: 0 8 9struct Data 10{ 11 int value1; 12 int value2; 13} 14 15//TEST_INPUT:ubuffer(data=[0 0 0], stride=4):out,name=outputBuffer 16uniform int* outputBuffer; 17groupshared Data shared; 18 19void foo(Ptr<Data, Access::ReadWrite, AddressSpace::GroupShared> ptr) 20{ 21 outputBuffer[0] = ptr.value1; 22 outputBuffer[1] = ptr.value2; 23} 24 25[numthreads(3, 1, 1)] 26void computeMain(uint3 group_thread_id: SV_GroupThreadID) 27{ 28 shared = Data(1, 2); 29 foo(__getAddress(shared)); 30}