summaryrefslogtreecommitdiff
path: root/tests/glsl-intrinsic/array-length.slang
blob: e5b96a148c1f6638b64891f19d4e50f920867332 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-vk -compute -shaderobj  -allow-glsl
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-slang -compute -shaderobj -render-feature hardware-device -allow-glsl
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-metal -compute -shaderobj -allow-glsl
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cpu -compute -shaderobj -allow-glsl
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-wgpu -compute -shaderobj -allow-glsl
//TEST(compute):COMPARE_COMPUTE_EX(filecheck-buffer=BUF):-cuda -compute -g0 -allow-glsl

//TEST_INPUT:ubuffer(data=[0 0 0 0 0], stride=4):out,name outputBuffer
RWStructuredBuffer<int> outputBuffer;

//
// Tests GLSL array.length() syntax.
//

[shader("compute")]
[numthreads(1, 1, 1)]
void computeMain()
{
    int myArray[4] = {4, 3, 2, 1};
    outputBuffer[0] = myArray[0];
    outputBuffer[1] = myArray[1];
    outputBuffer[2] = myArray[2];
    outputBuffer[3] = myArray[3];
    outputBuffer[4] = myArray.length();

    // BUF: 4
    // BUF-NEXT: 3
    // BUF-NEXT: 2
    // BUF-NEXT: 1
    // BUF-NEXT: 4
}