3
3
4
4
5
5
StructuredBuffer<float > Buf : register (t10);
6
+ RWStructuredBuffer <float > Buf2 : register (u5, space1);
6
7
7
8
#ifndef SPIRV
8
- // NOTE: SPIRV codegen for resource types with counter variable is not yet implemented
9
- RWStructuredBuffer <float > Buf2 : register (u5, space1);
9
+ // NOTE: SPIRV codegen for these resource types is not implemented yet.
10
10
AppendStructuredBuffer <float > Buf3 : register (u3);
11
11
ConsumeStructuredBuffer <float > Buf4 : register (u4);
12
12
RasterizerOrderedStructuredBuffer <float > Buf5 : register (u1, space2);
@@ -19,10 +19,11 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
19
19
// CHECK-DXIL: %"class.hlsl::RasterizerOrderedStructuredBuffer" = type { target("dx.RawBuffer", float, 1, 1) }
20
20
21
21
// CHECK-SPIRV: %"class.hlsl::StructuredBuffer" = type { target("spirv.VulkanBuffer", [0 x float], 12, 0) }
22
+ // CHECK-SPIRV: %"class.hlsl::RWStructuredBuffer" = type { target("spirv.VulkanBuffer", [0 x float], 12, 1) }
22
23
23
24
24
25
// CHECK: @_ZL3Buf = internal global %"class.hlsl::StructuredBuffer" poison
25
- // CHECK-DXIL : @_ZL4Buf2 = internal global %"class.hlsl::RWStructuredBuffer" poison, align 4
26
+ // CHECK: @_ZL4Buf2 = internal global %"class.hlsl::RWStructuredBuffer" poison
26
27
// CHECK-DXIL: @_ZL4Buf3 = internal global %"class.hlsl::AppendStructuredBuffer" poison, align 4
27
28
// CHECK-DXIL: @_ZL4Buf4 = internal global %"class.hlsl::ConsumeStructuredBuffer" poison, align 4
28
29
// CHECK-DXIL: @_ZL4Buf5 = internal global %"class.hlsl::RasterizerOrderedStructuredBuffer" poison, align 4
@@ -33,9 +34,11 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
33
34
// CHECK-SPIRV: [[H:%.*]] = call target("spirv.VulkanBuffer", [0 x float], 12, 0) @llvm.spv.resource.handlefrombinding.tspirv.VulkanBuffer_a0f32_12_0t(i32 0, i32 10, i32 1, i32 0, i1 false)
34
35
// CHECK-SPIRV: store target("spirv.VulkanBuffer", [0 x float], 12, 0) [[H]], ptr @_ZL3Buf, align 8
35
36
36
- // CHECK-DXIL : define internal void @_init_resource__ZL4Buf2()
37
+ // CHECK: define internal void @_init_resource__ZL4Buf2()
37
38
// CHECK-DXIL: [[H:%.*]] = call target("dx.RawBuffer", float, 1, 0) @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_1_0t(i32 1, i32 5, i32 1, i32 0, i1 false)
38
39
// CHECK-DXIL: store target("dx.RawBuffer", float, 1, 0) [[H]], ptr @_ZL4Buf2, align 4
40
+ // CHECK-SPIRV: [[H:%.*]] = call target("spirv.VulkanBuffer", [0 x float], 12, 1) @llvm.spv.resource.handlefrombinding.tspirv.VulkanBuffer_a0f32_12_1t(i32 1, i32 5, i32 1, i32 0, i1 false)
41
+ // CHECK-SPIRV: store target("spirv.VulkanBuffer", [0 x float], 12, 1) [[H]], ptr @_ZL4Buf2, align 8
39
42
40
43
// CHECK-DXIL: define internal void @_init_resource__ZL4Buf3()
41
44
// CHECK-DXIL: [[H:%.*]] = call target("dx.RawBuffer", float, 1, 0) @llvm.dx.resource.handlefrombinding.tdx.RawBuffer_f32_1_0t(i32 0, i32 3, i32 1, i32 0, i1 false)
@@ -61,7 +64,7 @@ RasterizerOrderedStructuredBuffer<float> Buf5 : register(u1, space2);
61
64
62
65
// CHECK: define {{.*}} void @_GLOBAL__sub_I_StructuredBuffers_constructors.hlsl()
63
66
// CHECK: call {{.*}} @_init_resource__ZL3Buf()
64
- // CHECK-DXIL : call void @_init_resource__ZL4Buf2()
67
+ // CHECK: call {{.*}} @_init_resource__ZL4Buf2()
65
68
// CHECK-DXIL: call void @_init_resource__ZL4Buf3()
66
69
// CHECK-DXIL: call void @_init_resource__ZL4Buf4()
67
70
// CHECK-DXIL: call void @_init_resource__ZL4Buf5()
0 commit comments