summaryrefslogtreecommitdiffstats
path: root/tests/cross-compile/rw-buffer.slang
blob: 7cd04e93fb061888c905fd2faf9ff5dc49d1683e (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
// rw-buffer.slang

// Confirm that writing into a `RWBuffer` generates appropriate GLSL/SPIR-V.

//TEST:SIMPLE(filecheck=CHECK): -profile ps_5_0 -entry main -target spirv-assembly
//TEST:SIMPLE(filecheck=CHECK): -profile ps_5_0 -entry main -target spirv-assembly -emit-spirv-directly

RWBuffer<float> buffer;
Buffer<float> inBuffer;

float4 main(float u : U, int idx : IDX) : SV_Target
{
    // CHECK-DAG: OpImageQuerySize

    // CHECK-DAG: OpImageRead

    // CHECK-DAG: OpImageFetch

    // CHECK-DAG: OpImageWrite

    uint s1, s2;
    buffer.GetDimensions(s1);
    buffer.GetDimensions(s2);

	buffer[idx] = buffer[idx] + inBuffer[idx] + s1 + s2;
	return u;
}