yum-mirror/slang

Making it easier to work with shaders

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

Yong HeSupport different SPIRV versions. (#4254)c5a453e56

master
942 B24 linesraw
1// array-resource.slang
2
3// Test direct SPIR-V emit on arrays of buffers.
4
5//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry computeMain -stage compute -emit-spirv-directly
6//TEST_INPUT:set resultBuffer = out ubuffer(data=[0 0 0 0], stride=4)
7
8// Note: we can't run this test at the moment because gfx doesn't support allocating shader objects with unsized arrays.
9//TEST_DISABLED(compute, vulkan):COMPARE_COMPUTE_EX(filecheck-buffer=BUFFER):-vk -compute -output-using-type
10
11RWStructuredBuffer<uint> inputBuffers[];
12
13RWStructuredBuffer<uint> resultBuffer;
14
15//TEST_INPUT: set inputBuffers = {ubuffer(data=[1 0 0 0], stride=4), ubuffer(data=[2 0 0 0], stride=4)}
16
17[numthreads(4,1,1)]
18void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
19{
20    uint threadId = dispatchThreadID.x;
21    resultBuffer[threadId] = inputBuffers[0][threadId] + inputBuffers[1][threadId];
22    // CHECK: OpCapability RuntimeDescriptorArray
23    // BUFFER: 3
24}