@@ -25,38 +25,47 @@ TEST_F(CommandGraphTest, AccessorModeRegression) {
2525 buffer<int > BufferC{range<1 >{16 }};
2626 buffer<int > BufferD{range<1 >{16 }};
2727 buffer<int > BufferE{range<1 >{16 }};
28- Graph.begin_recording (Queue);
2928
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{}}};
4835
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);
5058
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+ }
6069}
6170
6271TEST_F (CommandGraphTest, QueueRecordBarrierMultipleGraph) {
0 commit comments