52 resources.add_buffer(buffer);
56 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
64 render_graph->add_node(dispatch_info);
68 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
76 render_graph->add_node(dispatch_info);
78 submit(render_graph, command_buffer);
80 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x2)",
83 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x3, "
84 "p_descriptor_sets=0x4)",
86 EXPECT_EQ(
"dispatch(group_count_x=1, group_count_y=1, group_count_z=1)",
log[2]);
88 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "
89 "dst_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
91 " - buffer_barrier(src_access_mask=VK_ACCESS_SHADER_WRITE_BIT, "
92 "dst_access_mask=VK_ACCESS_SHADER_WRITE_BIT, buffer=0x1, offset=0, "
93 "size=18446744073709551615)" +
96 EXPECT_EQ(
"dispatch(group_count_x=2, group_count_y=2, group_count_z=2)",
log[4]);
111 resources.add_buffer(buffer);
115 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
123 render_graph->add_node(dispatch_info);
127 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
135 render_graph->add_node(dispatch_info);
137 submit(render_graph, command_buffer);
139 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x2)",
142 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x3, "
143 "p_descriptor_sets=0x4)",
145 EXPECT_EQ(
"dispatch(group_count_x=1, group_count_y=1, group_count_z=1)",
log[2]);
147 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "
148 "dst_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
150 " - buffer_barrier(src_access_mask=VK_ACCESS_SHADER_WRITE_BIT, "
151 "dst_access_mask=VK_ACCESS_SHADER_WRITE_BIT, buffer=0x1, offset=0, "
152 "size=18446744073709551615)" +
156 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x3, "
157 "p_descriptor_sets=0x5)",
159 EXPECT_EQ(
"dispatch(group_count_x=2, group_count_y=2, group_count_z=2)",
log[5]);
173 resources.add_buffer(buffer);
177 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
185 render_graph->add_node(dispatch_info);
189 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
197 render_graph->add_node(dispatch_info);
199 submit(render_graph, command_buffer);
201 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x2)",
204 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x4, "
205 "p_descriptor_sets=0x5)",
207 EXPECT_EQ(
"dispatch(group_count_x=1, group_count_y=1, group_count_z=1)",
log[2]);
209 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "
210 "dst_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
212 " - buffer_barrier(src_access_mask=VK_ACCESS_SHADER_WRITE_BIT, "
213 "dst_access_mask=VK_ACCESS_SHADER_WRITE_BIT, buffer=0x1, offset=0, "
214 "size=18446744073709551615)" +
217 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x3)",
219 EXPECT_EQ(
"dispatch(group_count_x=2, group_count_y=2, group_count_z=2)",
log[5]);
227 dispatch_dispatch_read_back_with_changing_pipelines_descriptor_sets)
236 resources.add_buffer(buffer);
240 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
248 render_graph->add_node(dispatch_info);
252 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
260 render_graph->add_node(dispatch_info);
262 submit(render_graph, command_buffer);
264 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x2)",
267 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x4, "
268 "p_descriptor_sets=0x5)",
270 EXPECT_EQ(
"dispatch(group_count_x=1, group_count_y=1, group_count_z=1)",
log[2]);
272 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "
273 "dst_stage_mask=VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
275 " - buffer_barrier(src_access_mask=VK_ACCESS_SHADER_WRITE_BIT, "
276 "dst_access_mask=VK_ACCESS_SHADER_WRITE_BIT, buffer=0x1, offset=0, "
277 "size=18446744073709551615)" +
280 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x3)",
283 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x4, "
284 "p_descriptor_sets=0x6)",
286 EXPECT_EQ(
"dispatch(group_count_x=2, group_count_y=2, group_count_z=2)",
log[6]);
300 resources.add_buffer(buffer);
301 resources.add_buffer(command_buffer);
304 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
311 render_graph->add_node(dispatch_indirect_info);
312 submit(render_graph, this->command_buffer);
315 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "
316 "dst_stage_mask=VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
318 " - buffer_barrier(src_access_mask=, "
319 "dst_access_mask=VK_ACCESS_INDIRECT_COMMAND_READ_BIT, buffer=0x2, offset=0, "
320 "size=18446744073709551615)" +
323 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x3)",
326 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x4, "
327 "p_descriptor_sets=0x5)",
329 EXPECT_EQ(
"dispatch_indirect(buffer=0x2, offset=0)",
log[3]);
340 resources.add_buffer(buffer);
341 resources.add_buffer(command_buffer);
345 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
353 render_graph->add_node(dispatch_indirect_info);
357 access_info.
buffers.append({buffer, VK_ACCESS_SHADER_WRITE_BIT});
365 render_graph->add_node(dispatch_indirect_info);
367 submit(render_graph, this->command_buffer);
371 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "
372 "dst_stage_mask=VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
374 " - buffer_barrier(src_access_mask=, "
375 "dst_access_mask=VK_ACCESS_INDIRECT_COMMAND_READ_BIT, buffer=0x2, offset=0, "
376 "size=18446744073709551615)" +
379 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, pipeline=0x3)",
382 "bind_descriptor_sets(pipeline_bind_point=VK_PIPELINE_BIND_POINT_COMPUTE, layout=0x4, "
383 "p_descriptor_sets=0x5)",
385 EXPECT_EQ(
"dispatch_indirect(buffer=0x2, offset=0)",
log[3]);
387 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, "
388 "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, "
389 "dst_stage_mask=VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT" +
391 " - buffer_barrier(src_access_mask=VK_ACCESS_SHADER_WRITE_BIT, "
392 "dst_access_mask=VK_ACCESS_SHADER_WRITE_BIT, buffer=0x1, offset=0, "
393 "size=18446744073709551615)" +
396 EXPECT_EQ(
"dispatch_indirect(buffer=0x2, offset=12)",
log[5]);
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)