11TEST(vk_render_graph, begin_clear_attachments_end_read_back)
19 VKRenderGraph render_graph(std::make_unique<CommandBufferLog>(
log), resources);
26 {
image, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_ASPECT_COLOR_BIT, 0});
29 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR;
31 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
41 render_graph.add_node(begin_rendering);
47 clear_attachments.
attachments[0].aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
48 clear_attachments.
attachments[0].clearValue.color.float32[0] = 0.2;
49 clear_attachments.
attachments[0].clearValue.color.float32[1] = 0.4;
50 clear_attachments.
attachments[0].clearValue.color.float32[2] = 0.6;
51 clear_attachments.
attachments[0].clearValue.color.float32[3] = 1.0;
52 clear_attachments.
attachments[0].colorAttachment = 0;
57 render_graph.add_node(clear_attachments);
62 render_graph.add_node(end_rendering);
69 copy_image_to_buffer.
region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
70 render_graph.add_node(copy_image_to_buffer);
76 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "
77 "dst_stage_mask=VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" +
79 " - image_barrier(src_access_mask=, "
80 "dst_access_mask=VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "
81 "old_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
82 "new_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, image=0x1, "
83 "subresource_range=" +
85 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, level_count=4294967295, "
86 "base_array_layer=0, layer_count=4294967295 )" +
89 EXPECT_EQ(
"begin_rendering(p_rendering_info=flags=, render_area=" +
endl() +
90 " offset=" +
endl() +
" x=0, y=0 , extent=" +
endl() +
91 " width=0, height=0 , layer_count=1, view_mask=0, color_attachment_count=1, "
92 "p_color_attachments=" +
94 " image_view=0x2, image_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "
95 "resolve_mode=VK_RESOLVE_MODE_NONE, resolve_image_view=0, "
96 "resolve_image_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
97 "load_op=VK_ATTACHMENT_LOAD_OP_DONT_CARE, store_op=VK_ATTACHMENT_STORE_OP_STORE" +
101 "clear_attachments( - attachment(aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, "
102 "color_attachment=0)" +
103 endl() +
" - rect(rect=" +
endl() +
" offset=" +
endl() +
104 " x=0, y=0 , extent=" +
endl() +
105 " width=1920, height=1080 , base_array_layer=0, layer_count=1)" +
endl() +
")",
109 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, "
110 "dst_stage_mask=VK_PIPELINE_STAGE_TRANSFER_BIT" +
112 " - image_barrier(src_access_mask=VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "
113 "dst_access_mask=VK_ACCESS_TRANSFER_READ_BIT, "
114 "old_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "
115 "new_layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, image=0x1, subresource_range=" +
117 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, level_count=4294967295, "
118 "base_array_layer=0, layer_count=4294967295 )" +
122 "copy_image_to_buffer(src_image=0x1, src_image_layout=VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, "
125 " - region(buffer_offset=0, buffer_row_length=0, buffer_image_height=0, "
126 "image_subresource=" +
128 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, mip_level=0, base_array_layer=0, "
129 "layer_count=0 , image_offset=" +
130 endl() +
" x=0, y=0, z=0 , image_extent=" +
endl() +
131 " width=0, height=0, depth=0 )" +
endl() +
")",
135TEST(vk_render_graph, begin_draw_end)
144 VKRenderGraph render_graph(std::make_unique<CommandBufferLog>(
log), resources);
149 access_info.
images.append(
150 {
image, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_ASPECT_COLOR_BIT, 0});
153 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR;
155 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
165 render_graph.add_node(begin_rendering);
180 render_graph.add_node(draw);
185 render_graph.add_node(end_rendering);
191 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "
192 "dst_stage_mask=VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" +
194 " - image_barrier(src_access_mask=, "
195 "dst_access_mask=VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "
196 "old_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
197 "new_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, image=0x1, subresource_range=" +
199 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, "
200 "level_count=4294967295, base_array_layer=0, layer_count=4294967295 )" +
203 EXPECT_EQ(
"begin_rendering(p_rendering_info=flags=, render_area=" +
endl() +
204 " offset=" +
endl() +
" x=0, y=0 , extent=" +
endl() +
205 " width=0, height=0 , layer_count=1, view_mask=0, "
206 "color_attachment_count=1, p_color_attachments=" +
208 " image_view=0x2, image_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "
209 "resolve_mode=VK_RESOLVE_MODE_NONE, resolve_image_view=0, "
210 "resolve_image_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
211 "load_op=VK_ATTACHMENT_LOAD_OP_DONT_CARE, store_op=VK_ATTACHMENT_STORE_OP_STORE" +
214 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline=0x3)",
216 EXPECT_EQ(
"draw(vertex_count=4, instance_count=1, first_vertex=0, first_instance=0)",
log[3]);
220TEST(vk_render_graph, begin_draw_end__layered)
229 VKRenderGraph render_graph(std::make_unique<CommandBufferLog>(
log), resources);
234 access_info.
images.append(
235 {
image, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_IMAGE_ASPECT_COLOR_BIT, 0});
238 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR;
240 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
250 render_graph.add_node(begin_rendering);
255 access_info.
images.append({
image, VK_ACCESS_SHADER_READ_BIT, VK_IMAGE_ASPECT_COLOR_BIT, 1});
266 render_graph.add_node(draw);
271 render_graph.add_node(end_rendering);
277 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, "
278 "dst_stage_mask=VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT" +
280 " - image_barrier(src_access_mask=, "
281 "dst_access_mask=VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "
282 "old_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
283 "new_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, image=0x1, subresource_range=" +
285 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, "
286 "level_count=4294967295, base_array_layer=0, layer_count=4294967295 )" +
290 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, "
291 "dst_stage_mask=VK_PIPELINE_STAGE_ALL_COMMANDS_BIT" +
293 " - image_barrier(src_access_mask=VK_ACCESS_TRANSFER_WRITE_BIT, "
294 "dst_access_mask=VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT, "
295 "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, "
296 "VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, "
297 "old_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "
298 "new_layout=VK_IMAGE_LAYOUT_GENERAL, "
299 "image=0x1, subresource_range=" +
301 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, level_count=4294967295, "
302 "base_array_layer=1, layer_count=0 )" +
305 EXPECT_EQ(
"begin_rendering(p_rendering_info=flags=, render_area=" +
endl() +
306 " offset=" +
endl() +
" x=0, y=0 , extent=" +
endl() +
307 " width=0, height=0 , layer_count=1, view_mask=0, "
308 "color_attachment_count=1, p_color_attachments=" +
310 " image_view=0x2, image_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "
311 "resolve_mode=VK_RESOLVE_MODE_NONE, resolve_image_view=0, "
312 "resolve_image_layout=VK_IMAGE_LAYOUT_UNDEFINED, "
313 "load_op=VK_ATTACHMENT_LOAD_OP_DONT_CARE, store_op=VK_ATTACHMENT_STORE_OP_STORE" +
316 EXPECT_EQ(
"bind_pipeline(pipeline_bind_point=VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline=0x3)",
318 EXPECT_EQ(
"draw(vertex_count=4, instance_count=1, first_vertex=0, first_instance=0)",
log[4]);
321 "pipeline_barrier(src_stage_mask=VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, "
322 "dst_stage_mask=VK_PIPELINE_STAGE_ALL_COMMANDS_BIT" +
324 " - image_barrier(src_access_mask=VK_ACCESS_SHADER_READ_BIT, "
325 "VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, "
326 "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, "
327 "VK_ACCESS_TRANSFER_WRITE_BIT, dst_access_mask=VK_ACCESS_SHADER_READ_BIT, "
328 "VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, "
329 "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT, "
330 "VK_ACCESS_TRANSFER_WRITE_BIT, old_layout=VK_IMAGE_LAYOUT_GENERAL, "
331 "new_layout=VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, image=0x1, subresource_range=" +
333 " aspect_mask=VK_IMAGE_ASPECT_COLOR_BIT, base_mip_level=0, level_count=4294967295, "
334 "base_array_layer=1, layer_count=0 )" +
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
input_tx image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "preview_img") .compute_source("compositor_compute_preview.glsl") .do_static_compilation(true)