@@ -25,38 +25,47 @@ TEST_F(CommandGraphTest, AccessorModeRegression) {
25
25
buffer<int > BufferC{range<1 >{16 }};
26
26
buffer<int > BufferD{range<1 >{16 }};
27
27
buffer<int > BufferE{range<1 >{16 }};
28
- Graph.begin_recording (Queue);
29
28
30
- auto EventA = Queue.submit ([&](handler &CGH) {
31
- auto AccA = BufferA.get_access <access_mode::read>(CGH);
32
- auto AccB = BufferB.get_access <access_mode::read>(CGH);
33
- auto AccC = BufferC.get_access <access_mode::write>(CGH);
34
- CGH.single_task <TestKernel<>>([]() {});
35
- });
36
- auto EventB = Queue.submit ([&](handler &CGH) {
37
- auto AccA = BufferA.get_access <access_mode::read>(CGH);
38
- auto AccB = BufferB.get_access <access_mode::read>(CGH);
39
- auto AccD = BufferD.get_access <access_mode::write>(CGH);
40
- CGH.single_task <TestKernel<>>([]() {});
41
- });
42
- auto EventC = Queue.submit ([&](handler &CGH) {
43
- auto AccA = BufferA.get_access <access_mode::read>(CGH);
44
- auto AccB = BufferB.get_access <access_mode::read>(CGH);
45
- auto AccE = BufferE.get_access <access_mode::write>(CGH);
46
- CGH.single_task <TestKernel<>>([]() {});
47
- });
29
+ {
30
+ // Buffers must outlive graph
31
+ experimental::command_graph ScopedGraph{
32
+ Queue.get_context (),
33
+ Dev,
34
+ {experimental::property::graph::assume_buffer_outlives_graph{}}};
48
35
49
- Graph.end_recording (Queue);
36
+ ScopedGraph.begin_recording (Queue);
37
+
38
+ auto EventA = Queue.submit ([&](handler &CGH) {
39
+ auto AccA = BufferA.get_access <access_mode::read>(CGH);
40
+ auto AccB = BufferB.get_access <access_mode::read>(CGH);
41
+ auto AccC = BufferC.get_access <access_mode::write>(CGH);
42
+ CGH.single_task <TestKernel<>>([]() {});
43
+ });
44
+ auto EventB = Queue.submit ([&](handler &CGH) {
45
+ auto AccA = BufferA.get_access <access_mode::read>(CGH);
46
+ auto AccB = BufferB.get_access <access_mode::read>(CGH);
47
+ auto AccD = BufferD.get_access <access_mode::write>(CGH);
48
+ CGH.single_task <TestKernel<>>([]() {});
49
+ });
50
+ auto EventC = Queue.submit ([&](handler &CGH) {
51
+ auto AccA = BufferA.get_access <access_mode::read>(CGH);
52
+ auto AccB = BufferB.get_access <access_mode::read>(CGH);
53
+ auto AccE = BufferE.get_access <access_mode::write>(CGH);
54
+ CGH.single_task <TestKernel<>>([]() {});
55
+ });
56
+
57
+ ScopedGraph.end_recording (Queue);
50
58
51
- experimental::node NodeA = experimental::node::get_node_from_event (EventA);
52
- EXPECT_EQ (NodeA.get_predecessors ().size (), 0ul );
53
- EXPECT_EQ (NodeA.get_successors ().size (), 0ul );
54
- experimental::node NodeB = experimental::node::get_node_from_event (EventB);
55
- EXPECT_EQ (NodeB.get_predecessors ().size (), 0ul );
56
- EXPECT_EQ (NodeB.get_successors ().size (), 0ul );
57
- experimental::node NodeC = experimental::node::get_node_from_event (EventC);
58
- EXPECT_EQ (NodeC.get_predecessors ().size (), 0ul );
59
- EXPECT_EQ (NodeC.get_successors ().size (), 0ul );
59
+ experimental::node NodeA = experimental::node::get_node_from_event (EventA);
60
+ EXPECT_EQ (NodeA.get_predecessors ().size (), 0ul );
61
+ EXPECT_EQ (NodeA.get_successors ().size (), 0ul );
62
+ experimental::node NodeB = experimental::node::get_node_from_event (EventB);
63
+ EXPECT_EQ (NodeB.get_predecessors ().size (), 0ul );
64
+ EXPECT_EQ (NodeB.get_successors ().size (), 0ul );
65
+ experimental::node NodeC = experimental::node::get_node_from_event (EventC);
66
+ EXPECT_EQ (NodeC.get_predecessors ().size (), 0ul );
67
+ EXPECT_EQ (NodeC.get_successors ().size (), 0ul );
68
+ }
60
69
}
61
70
62
71
TEST_F (CommandGraphTest, QueueRecordBarrierMultipleGraph) {
0 commit comments