blob: e7b7f8173ca38c0d7fb16aedcff34e8739a545df (
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
|
// byte-address-buffer-align-error.slang
//TEST:SIMPLE(filecheck=CHECK):-target glsl -entry computeMain -stage compute
//TEST:SIMPLE(filecheck=CHECK):-target hlsl -entry computeMain -stage compute
//TEST:SIMPLE(filecheck=CHECK):-target spirv -entry computeMain -stage compute
//TEST:SIMPLE(filecheck=CHECK):-target spirv -emit-spirv-directly -entry computeMain -stage compute
//TEST:SIMPLE(filecheck=CHECK):-target cuda -entry computeMain -stage compute
// Confirm compilation of `(RW)ByteAddressBuffer` with aligned load / stores to wider data types.
[vk::binding(2, 3)] RWByteAddressBuffer buffer;
struct Block {
float4 val[2];
};
[shader("compute")]
[numthreads(1,1,1)]
void computeMain(uint3 threadId : SV_DispatchThreadID)
{
// CHECK: error 41300: invalid alignment `{{.*}}` specified for the byte address buffer resource with the element size of `{{.*}}`
// CHECK: error 41300: invalid alignment `{{.*}}` specified for the byte address buffer resource with the element size of `{{.*}}`
buffer.Store<Block>(0, buffer.LoadAligned<Block>(1, 5));
buffer.Store<Block>(1, buffer.Load<Block>(0), 3);
}
|