yum-mirror/slang

Making it easier to work with shaders

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

Yong HeAdd per-buffer data layout control. (#3551)23c65b873

master
738 B26 linesraw
1//TEST(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=CHECK): -vk -compute
2
3float getData<L:IBufferDataLayout>(StructuredBuffer<float3, L> p, int index)
4{
5    return p[index].x;
6}
7
8// GLSL: layout({{.*}}scalar{{.*}})
9
10//TEST_INPUT:set scalarBuffer = ubuffer(data=[1 2 3 4 5 6], stride=12)
11StructuredBuffer<float3, ScalarDataLayout> scalarBuffer;
12//TEST_INPUT:set outputBuffer = out ubuffer(data=[0 0 0 0 0 0], stride=12)
13RWStructuredBuffer<float3, ScalarDataLayout> outputBuffer;
14
15[numthreads(1,1,1)]
16void computeMain()
17{
18    // CHECK: 1
19    // CHECK: 1
20    // CHECK: 1
21    // CHECK: 4
22    // CHECK: 4
23    // CHECK: 4
24    outputBuffer[0] = float3(getData(scalarBuffer, 0));
25    outputBuffer[1] = float3(getData(scalarBuffer, 1));
26}