Skip to content

Commit ada5df7

Browse files
committed
[ser] Add barrier_sm69 rdat test with REORDER_SCOPE
1 parent f14637e commit ada5df7

File tree

1 file changed

+156
-0
lines changed

1 file changed

+156
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
// RUN: %dxilver 1.9 | %dxc -T lib_6_9 %s | %D3DReflect %s | %FileCheck %s -check-prefixes=RDAT
2+
3+
// Check that stage flags are set correctly still for different barrier modes in SM 6.9.
4+
5+
// RDAT: FunctionTable[{{.*}}] = {
6+
7+
RWByteAddressBuffer BAB : register(u1, space0);
8+
9+
// RDAT-LABEL: UnmangledName: "node_barrier"
10+
// RDAT: FeatureInfo1: 0
11+
// RDAT: FeatureInfo2: (Opt_RequiresGroup)
12+
// RDAT: ShaderStageFlag: (Node)
13+
// RDAT: MinShaderTarget: 0xf0068
14+
15+
[shader("node")]
16+
[NodeLaunch("broadcasting")]
17+
[NodeDispatchGrid(1, 1, 1)]
18+
[NumThreads(1,1,1)]
19+
void node_barrier() {
20+
GroupMemoryBarrierWithGroupSync();
21+
BAB.Store(0, 0);
22+
}
23+
24+
// RDAT-LABEL: UnmangledName: "fn_barrier_device1"
25+
// RDAT: FeatureInfo1: 0
26+
// RDAT: FeatureInfo2: 0
27+
// RDAT: ShaderStageFlag: (Pixel | Vertex | Geometry | Hull | Domain | Compute | Library | RayGeneration | Intersection | AnyHit | ClosestHit | Miss | Callable | Mesh | Amplification | Node)
28+
// RDAT: MinShaderTarget: 0x60060
29+
30+
[noinline] export
31+
void fn_barrier_device1() {
32+
Barrier(UAV_MEMORY, DEVICE_SCOPE);
33+
}
34+
35+
// RDAT-LABEL: UnmangledName: "fn_barrier_device2"
36+
// RDAT: FeatureInfo1: 0
37+
// RDAT: FeatureInfo2: 0
38+
// RDAT: ShaderStageFlag: (Pixel | Vertex | Geometry | Hull | Domain | Compute | Library | RayGeneration | Intersection | AnyHit | ClosestHit | Miss | Callable | Mesh | Amplification | Node)
39+
// RDAT: MinShaderTarget: 0x60068
40+
41+
[noinline] export
42+
void fn_barrier_device2() {
43+
Barrier(BAB, DEVICE_SCOPE);
44+
}
45+
46+
// RDAT-LABEL: UnmangledName: "fn_barrier_group1"
47+
// RDAT: FeatureInfo1: 0
48+
// RDAT: FeatureInfo2: (Opt_RequiresGroup)
49+
// RDAT: ShaderStageFlag: (Compute | Library | Mesh | Amplification | Node)
50+
// RDAT: MinShaderTarget: 0x60060
51+
52+
[noinline] export
53+
void fn_barrier_group1() {
54+
Barrier(GROUP_SHARED_MEMORY, GROUP_SYNC | GROUP_SCOPE);
55+
}
56+
57+
// RDAT-LABEL: UnmangledName: "fn_barrier_group2"
58+
// RDAT: FeatureInfo1: 0
59+
// RDAT: FeatureInfo2: (Opt_RequiresGroup)
60+
// RDAT: ShaderStageFlag: (Compute | Library | Mesh | Amplification | Node)
61+
// RDAT: MinShaderTarget: 0x60068
62+
63+
[noinline] export
64+
void fn_barrier_group2() {
65+
Barrier(BAB, GROUP_SYNC | GROUP_SCOPE);
66+
}
67+
68+
// RDAT-LABEL: UnmangledName: "fn_barrier_node1"
69+
// RDAT: FeatureInfo1: 0
70+
// RDAT: FeatureInfo2: 0
71+
// RDAT: ShaderStageFlag: (Library | Node)
72+
// RDAT: MinShaderTarget: 0x60068
73+
74+
[noinline] export
75+
void fn_barrier_node1() {
76+
Barrier(NODE_INPUT_MEMORY, DEVICE_SCOPE);
77+
}
78+
79+
// RDAT-LABEL: UnmangledName: "fn_barrier_node_group1"
80+
// RDAT: FeatureInfo1: 0
81+
// RDAT: FeatureInfo2: (Opt_RequiresGroup)
82+
// RDAT: ShaderStageFlag: (Library | Node)
83+
// RDAT: MinShaderTarget: 0x60068
84+
85+
[noinline] export
86+
void fn_barrier_node_group1() {
87+
Barrier(NODE_INPUT_MEMORY, GROUP_SYNC | GROUP_SCOPE);
88+
}
89+
90+
// RDAT-LABEL: UnmangledName: "fn_barrier_reorder"
91+
// RDAT: FeatureInfo1: 0
92+
// RDAT: FeatureInfo2: 0
93+
// RDAT: ShaderStageFlag: (Library | RayGeneration)
94+
// RDAT: MinShaderTarget: 0x60069
95+
96+
[noinline] export
97+
void fn_barrier_reorder() {
98+
Barrier(UAV_MEMORY, REORDER_SCOPE);
99+
}
100+
101+
// RDAT-LABEL: UnmangledName: "node_barrier_device_in_call"
102+
// RDAT: FeatureInfo1: 0
103+
// RDAT: FeatureInfo2: 0
104+
// RDAT: ShaderStageFlag: (Node)
105+
// RDAT: MinShaderTarget: 0xf0068
106+
107+
[shader("node")]
108+
[NodeLaunch("broadcasting")]
109+
[NodeDispatchGrid(1, 1, 1)]
110+
[NumThreads(1,1,1)]
111+
void node_barrier_device_in_call() {
112+
fn_barrier_device1();
113+
BAB.Store(0, 0);
114+
}
115+
116+
// RDAT-LABEL: UnmangledName: "node_barrier_node_in_call"
117+
// RDAT: FeatureInfo1: 0
118+
// RDAT: FeatureInfo2: 0
119+
// RDAT: ShaderStageFlag: (Node)
120+
// RDAT: MinShaderTarget: 0xf0068
121+
122+
[shader("node")]
123+
[NodeLaunch("broadcasting")]
124+
[NodeDispatchGrid(1, 1, 1)]
125+
[NumThreads(1,1,1)]
126+
void node_barrier_node_in_call() {
127+
fn_barrier_node1();
128+
BAB.Store(0, 0);
129+
}
130+
131+
// RDAT-LABEL: UnmangledName: "node_barrier_node_group_in_call"
132+
// RDAT: FeatureInfo1: 0
133+
// RDAT: FeatureInfo2: (Opt_RequiresGroup)
134+
// RDAT: ShaderStageFlag: (Node)
135+
// RDAT: MinShaderTarget: 0xf0068
136+
137+
[shader("node")]
138+
[NodeLaunch("broadcasting")]
139+
[NodeDispatchGrid(1, 1, 1)]
140+
[NumThreads(1,1,1)]
141+
void node_barrier_node_group_in_call() {
142+
fn_barrier_node_group1();
143+
BAB.Store(0, 0);
144+
}
145+
146+
// RDAT-LABEL: UnmangledName: "rg_barrier_reorder_in_call"
147+
// RDAT: FeatureInfo1: 0
148+
// RDAT: FeatureInfo2: 0
149+
// RDAT: ShaderStageFlag: (RayGeneration)
150+
// RDAT: MinShaderTarget: 0x70069
151+
152+
[shader("raygeneration")]
153+
void rg_barrier_reorder_in_call() {
154+
fn_barrier_reorder();
155+
BAB.Store(0, 0);
156+
}

0 commit comments

Comments
 (0)