yum-mirror/slang

Making it easier to work with shaders

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

ArielG-NV[CBP] Pointer frontend changes + groupshared pointer support (#7848)7758625d3

master
789 B30 linesraw
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}