|
Blender V4.3
|
Typedefs | |
| using | NodeHandle = uint64_t |
| using | ResourceHandle = uint64_t |
| using | ModificationStamp = uint64_t |
Enumerations | |
| enum class | VKNodeType { UNUSED , BEGIN_QUERY , BEGIN_RENDERING , BLIT_IMAGE , CLEAR_ATTACHMENTS , CLEAR_COLOR_IMAGE , CLEAR_DEPTH_STENCIL_IMAGE , COPY_BUFFER , COPY_IMAGE , COPY_IMAGE_TO_BUFFER , COPY_BUFFER_TO_IMAGE , DISPATCH , DISPATCH_INDIRECT , DRAW , DRAW_INDEXED , DRAW_INDEXED_INDIRECT , DRAW_INDIRECT , END_QUERY , END_RENDERING , FILL_BUFFER , RESET_QUERY_POOL , SYNCHRONIZATION , UPDATE_BUFFER , UPDATE_MIPMAPS } |
| enum class | VKResourceType { NONE = (0 << 0) , IMAGE = (1 << 0) , BUFFER = (1 << 1) } |
| enum class | ResourceOwner { APPLICATION , SWAP_CHAIN } |
Functions | |
| BLI_INLINE std::ostream & | operator<< (std::ostream &os, const VKNodeType node_type) |
| BLI_INLINE bool | node_type_is_within_rendering (VKNodeType node_type) |
| BLI_INLINE bool | node_type_is_rendering (VKNodeType node_type) |
| void | vk_pipeline_data_copy (VKPipelineData &dst, const VKPipelineData &src) |
| void | vk_pipeline_data_build_commands (VKCommandBufferInterface &command_buffer, const VKPipelineData &pipeline_data, VKBoundPipeline &r_bound_pipeline, VkPipelineBindPoint vk_pipeline_bind_point, VkShaderStageFlags vk_shader_stage_flags) |
| void | vk_pipeline_data_free (VKPipelineData &data) |
| void | vk_index_buffer_binding_build_links (VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const VKIndexBufferBinding &index_buffer_binding) |
| void | vk_index_buffer_binding_build_commands (VKCommandBufferInterface &command_buffer, const VKIndexBufferBinding &index_buffer_binding, VKIndexBufferBinding &r_bound_index_buffer) |
| void | vk_vertex_buffer_bindings_build_links (VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const VKVertexBufferBindings &vertex_buffers) |
| void | vk_vertex_buffer_bindings_build_commands (VKCommandBufferInterface &command_buffer, const VKVertexBufferBindings &vertex_buffer_bindings, VKVertexBufferBindings &r_bound_vertex_buffers) |
| TEST (vk_render_graph, dispatch_read_back) | |
| TEST (vk_render_graph, dispatch_dispatch_read_back) | |
| TEST (vk_render_graph, dispatch_dispatch_read_back_with_changing_descriptor_sets) | |
| TEST (vk_render_graph, dispatch_dispatch_read_back_with_changing_pipelines) | |
| TEST (vk_render_graph, dispatch_dispatch_read_back_with_changing_pipelines_descriptor_sets) | |
| TEST (vk_render_graph, dispatch_indirect_read_back) | |
| TEST (vk_render_graph, dispatch_indirect_dispatch_indirect_read_back) | |
| TEST (vk_render_graph, transfer_and_present) | |
| TEST (vk_render_graph, clear_and_present) | |
| TEST (vk_render_graph, begin_clear_attachments_end_read_back) | |
| TEST (vk_render_graph, begin_draw_end) | |
| TEST (vk_render_graph, begin_draw_end__layered) | |
| TEST (vk_render_graph, begin_rendering_copy_buffer_end_rendering) | |
| TEST (vk_render_graph, begin_clear_attachments_copy_buffer_end) | |
| TEST (vk_render_graph, begin_copy_buffer_clear_attachments_end) | |
| TEST (vk_render_graph, begin_clear_attachments_copy_buffer_clear_attachments_end) | |
| TEST (vk_render_graph, begin_draw_copy_framebuffer_draw_end) | |
| TEST (vk_render_graph, begin_update_draw_update_draw_update_draw_end) | |
| TEST (vk_render_graph, fill_and_read_back) | |
| TEST (vk_render_graph, fill_transfer_and_read_back) | |
| TEST (vk_render_graph, fill_fill_read_back) | |
| TEST (vk_render_graph, clear_clear_copy_and_read_back) | |
| TEST (vk_render_graph, clear_blit_copy_and_read_back) | |
| BLI_INLINE std::string & | endl () |
| ENUM_OPERATORS (VKResourceType, VKResourceType::BUFFER) | |
Variables | |
| static constexpr VkAccessFlags | VK_ACCESS_WRITE_MASK |
Enable VK_RESOURCE_STATE_TRACKER_VALIDATION to perform a consistency check on the state. The consistency check is time consuming and should only be turned on when needed.
ModificationStamp is used to track resource modifications.
When a resource is modified it will generate a new stamp by incrementing the previous stamp with 1. Consecutive reads should use this new stamp. The stamp stays active until the next modification to the resources is added to any render graph.
Definition at line 54 of file vk_resource_state_tracker.hh.
Index of a node inside the render graph.
Definition at line 40 of file vk_render_graph_node.hh.
Definition at line 45 of file vk_resource_state_tracker.hh.
|
strong |
Resources can have deviations in its lifetime based on who owns it.
Definition at line 75 of file vk_resource_state_tracker.hh.
|
strong |
Type of nodes of the render graph.
Definition at line 22 of file vk_node_info.hh.
|
strong |
Enum containing the different resource types that are being tracked.
| Enumerator | |
|---|---|
| NONE | |
| IMAGE | |
| BUFFER | |
Definition at line 69 of file vk_resource_state_tracker.hh.
| BLI_INLINE std::string & blender::gpu::render_graph::endl | ( | ) |
| blender::gpu::render_graph::ENUM_OPERATORS | ( | VKResourceType | , |
| VKResourceType::BUFFER | ) |
| BLI_INLINE bool blender::gpu::render_graph::node_type_is_rendering | ( | VKNodeType | node_type | ) |
Definition at line 138 of file vk_node_info.hh.
References BEGIN_RENDERING, ELEM, END_RENDERING, and node_type_is_within_rendering().
Referenced by blender::gpu::render_graph::VKCommandBuilder::build_nodes().
| BLI_INLINE bool blender::gpu::render_graph::node_type_is_within_rendering | ( | VKNodeType | node_type | ) |
Definition at line 128 of file vk_node_info.hh.
References CLEAR_ATTACHMENTS, DRAW, DRAW_INDEXED, DRAW_INDEXED_INDIRECT, DRAW_INDIRECT, and ELEM.
Referenced by node_type_is_rendering().
| BLI_INLINE std::ostream & blender::gpu::render_graph::operator<< | ( | std::ostream & | os, |
| const VKNodeType | node_type ) |
Definition at line 49 of file vk_node_info.hh.
References BEGIN_QUERY, BEGIN_RENDERING, BLIT_IMAGE, CLEAR_ATTACHMENTS, CLEAR_COLOR_IMAGE, CLEAR_DEPTH_STENCIL_IMAGE, COPY_BUFFER, COPY_BUFFER_TO_IMAGE, COPY_IMAGE, COPY_IMAGE_TO_BUFFER, DISPATCH, DISPATCH_INDIRECT, DRAW, DRAW_INDEXED, DRAW_INDEXED_INDIRECT, DRAW_INDIRECT, END_QUERY, END_RENDERING, FILL_BUFFER, RESET_QUERY_POOL, SYNCHRONIZATION, UNUSED, UPDATE_BUFFER, and UPDATE_MIPMAPS.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_clear_attachments_copy_buffer_clear_attachments_end | ) |
Definition at line 360 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), blender::gpu::render_graph::VKClearAttachmentsData::attachment_count, blender::gpu::render_graph::VKClearAttachmentsData::attachments, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), image(), blender::gpu::render_graph::VKResourceAccessInfo::images, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, blender::gpu::render_graph::VKRenderGraph::submit_for_present(), SWAP_CHAIN, blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_clear_attachments_copy_buffer_end | ) |
Definition at line 114 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), blender::gpu::render_graph::VKClearAttachmentsData::attachment_count, blender::gpu::render_graph::VKClearAttachmentsData::attachments, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), image(), blender::gpu::render_graph::VKResourceAccessInfo::images, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, blender::gpu::render_graph::VKRenderGraph::submit_for_present(), SWAP_CHAIN, blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_clear_attachments_end_read_back | ) |
Definition at line 11 of file vk_render_graph_test_render.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKClearAttachmentsData::attachment_count, blender::gpu::render_graph::VKClearAttachmentsData::attachments, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyImageToBufferData::dst_buffer, endl(), EXPECT_EQ(), image(), blender::gpu::render_graph::VKResourceAccessInfo::images, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageToBufferData::region, blender::gpu::render_graph::VKCopyImageToBufferData::src_image, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_copy_buffer_clear_attachments_end | ) |
Definition at line 237 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), blender::gpu::render_graph::VKClearAttachmentsData::attachment_count, blender::gpu::render_graph::VKClearAttachmentsData::attachments, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), image(), blender::gpu::render_graph::VKResourceAccessInfo::images, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, blender::gpu::render_graph::VKRenderGraph::submit_for_present(), SWAP_CHAIN, blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_draw_copy_framebuffer_draw_end | ) |
When copying the frame buffer content between two draw calls we should not move the command.
This happens in EEVEE where the feedback radiance is copied before the world background is added to the combined texture.
Definition at line 529 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyImageData::dst_image, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDrawData::first_instance, blender::gpu::render_graph::VKDrawData::first_vertex, blender::gpu::render_graph::VKResourceAccessInfo::images, blender::gpu::render_graph::VKDrawData::instance_count, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageCreateInfo::node_data, blender::gpu::render_graph::VKDrawCreateInfo::node_data, blender::gpu::render_graph::VKDrawData::pipeline_data, blender::gpu::render_graph::VKPipelineData::push_constants_data, blender::gpu::render_graph::VKPipelineData::push_constants_size, blender::gpu::render_graph::VKCopyImageData::region, blender::gpu::render_graph::VKCopyImageData::src_image, blender::gpu::render_graph::VKRenderGraph::submit(), blender::gpu::render_graph::VKDrawData::vertex_count, blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKCopyImageCreateInfo::vk_image_aspect, blender::gpu::render_graph::VKPipelineData::vk_pipeline, blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_draw_end | ) |
Definition at line 135 of file vk_render_graph_test_render.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDrawData::first_instance, blender::gpu::render_graph::VKDrawData::first_vertex, image(), blender::gpu::render_graph::VKResourceAccessInfo::images, blender::gpu::render_graph::VKDrawData::instance_count, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKDrawCreateInfo::node_data, blender::gpu::render_graph::VKDrawData::pipeline_data, blender::gpu::render_graph::VKPipelineData::push_constants_data, blender::gpu::render_graph::VKPipelineData::push_constants_size, blender::gpu::render_graph::VKRenderGraph::submit(), blender::gpu::render_graph::VKDrawData::vertex_count, blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_draw_end__layered | ) |
Definition at line 220 of file vk_render_graph_test_render.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDrawData::first_instance, blender::gpu::render_graph::VKDrawData::first_vertex, image(), blender::gpu::render_graph::VKResourceAccessInfo::images, blender::gpu::render_graph::VKDrawData::instance_count, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKDrawCreateInfo::node_data, blender::gpu::render_graph::VKDrawData::pipeline_data, blender::gpu::render_graph::VKPipelineData::push_constants_data, blender::gpu::render_graph::VKPipelineData::push_constants_size, blender::gpu::render_graph::VKRenderGraph::submit(), blender::gpu::render_graph::VKDrawData::vertex_count, blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_rendering_copy_buffer_end_rendering | ) |
Copy buffer should be done after the end rendering.
Definition at line 12 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), image(), blender::gpu::render_graph::VKResourceAccessInfo::images, log(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, blender::gpu::render_graph::VKRenderGraph::submit_for_present(), SWAP_CHAIN, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| begin_update_draw_update_draw_update_draw_end | ) |
Update buffers can be moved to before the rendering scope as when the destination buffer isn't used.
Definition at line 705 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKUpdateBufferData::data, blender::gpu::render_graph::VKUpdateBufferData::data_size, blender::gpu::render_graph::VKUpdateBufferData::dst_buffer, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDrawData::first_instance, blender::gpu::render_graph::VKDrawData::first_vertex, image(), blender::gpu::render_graph::VKResourceAccessInfo::images, blender::gpu::render_graph::VKDrawData::instance_count, log(), MEM_callocN, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKDrawCreateInfo::node_data, blender::gpu::render_graph::VKDrawData::pipeline_data, blender::gpu::render_graph::VKPipelineData::push_constants_data, blender::gpu::render_graph::VKPipelineData::push_constants_size, blender::gpu::render_graph::VKRenderGraph::submit(), blender::gpu::render_graph::VKDrawData::vertex_count, blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| clear_and_present | ) |
Definition at line 38 of file vk_render_graph_test_present.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_image(), endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKRenderGraph::submit_for_present(), SWAP_CHAIN, and blender::gpu::render_graph::VKClearColorImageData::vk_image.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| clear_blit_copy_and_read_back | ) |
Clear an image, blit it to another image, copy to a staging buffer and read back.
Definition at line 250 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKCopyImageToBufferData::dst_buffer, endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKCopyImageToBufferData::region, blender::gpu::render_graph::VKCopyImageToBufferData::src_image, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKClearColorImageData::vk_clear_color_value, and blender::gpu::render_graph::VKClearColorImageData::vk_image.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| clear_clear_copy_and_read_back | ) |
Fill a single buffer, copy it to a staging buffer and read the staging buffer back.
Definition at line 108 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceStateTracker::add_image(), APPLICATION, blender::gpu::render_graph::VKCopyImageToBufferData::dst_buffer, blender::gpu::render_graph::VKCopyImageData::dst_image, endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKCopyImageCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageData::region, blender::gpu::render_graph::VKCopyImageToBufferData::region, blender::gpu::render_graph::VKCopyImageData::src_image, blender::gpu::render_graph::VKCopyImageToBufferData::src_image, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKClearColorImageData::vk_clear_color_value, blender::gpu::render_graph::VKClearColorImageData::vk_image, and blender::gpu::render_graph::VKCopyImageCreateInfo::vk_image_aspect.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_dispatch_read_back | ) |
Test that the descriptor sets are updated once when chaining dispatching.
Definition at line 46 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, log(), blender::gpu::render_graph::VKDispatchData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_dispatch_read_back_with_changing_descriptor_sets | ) |
Test that the descriptor sets are updated when chaining dispatching with different descriptor sets.
Definition at line 107 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, log(), blender::gpu::render_graph::VKDispatchData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_dispatch_read_back_with_changing_pipelines | ) |
Test that the descriptor sets are updated when chaining dispatching with different pipelines.
Definition at line 172 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, log(), blender::gpu::render_graph::VKDispatchData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_dispatch_read_back_with_changing_pipelines_descriptor_sets | ) |
Test that the descriptor sets are updated when chaining dispatching with different pipelines and descriptor sets.
Definition at line 236 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, log(), blender::gpu::render_graph::VKDispatchData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_indirect_dispatch_indirect_read_back | ) |
Definition at line 347 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKDispatchIndirectData::buffer, blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchIndirectCreateInfo::dispatch_indirect_node, endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKDispatchIndirectData::offset, blender::gpu::render_graph::VKDispatchIndirectData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_indirect_read_back | ) |
Test dispatch indirect
Definition at line 304 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKDispatchIndirectData::buffer, blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchIndirectCreateInfo::dispatch_indirect_node, endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKDispatchIndirectData::offset, blender::gpu::render_graph::VKDispatchIndirectData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| dispatch_read_back | ) |
Definition at line 11 of file vk_render_graph_test_compute.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKResourceAccessInfo::buffers, blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, EXPECT_EQ(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, log(), blender::gpu::render_graph::VKDispatchData::pipeline_data, blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| fill_and_read_back | ) |
Fill a single buffer and read it back.
Definition at line 14 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), EXPECT_EQ(), log(), and blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read().
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| fill_fill_read_back | ) |
Fill a buffer twice, before reading back.
Between the two fills a write->write barrier should be created.
Definition at line 77 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), endl(), EXPECT_EQ(), log(), and blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read().
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| fill_transfer_and_read_back | ) |
Fill a single buffer, copy it to a staging buffer and read the staging buffer back.
Definition at line 33 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_buffer(), blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKCopyBufferData::region, blender::gpu::render_graph::VKCopyBufferData::src_buffer, and blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read().
| blender::gpu::render_graph::TEST | ( | vk_render_graph | , |
| transfer_and_present | ) |
Definition at line 11 of file vk_render_graph_test_present.cc.
References blender::gpu::render_graph::VKResourceStateTracker::add_image(), endl(), EXPECT_EQ(), log(), blender::gpu::render_graph::VKRenderGraph::submit_for_present(), and SWAP_CHAIN.
| void blender::gpu::render_graph::vk_index_buffer_binding_build_commands | ( | VKCommandBufferInterface & | command_buffer, |
| const VKIndexBufferBinding & | index_buffer_binding, | ||
| VKIndexBufferBinding & | r_bound_index_buffer ) |
Definition at line 70 of file vk_pipeline_data.cc.
References blender::assign_if_different(), blender::gpu::render_graph::VKCommandBufferInterface::bind_index_buffer(), blender::gpu::render_graph::VKIndexBufferBinding::buffer, and blender::gpu::render_graph::VKIndexBufferBinding::index_type.
Referenced by blender::gpu::render_graph::VKDrawIndexedIndirectNode::build_commands(), and blender::gpu::render_graph::VKDrawIndexedNode::build_commands().
| void blender::gpu::render_graph::vk_index_buffer_binding_build_links | ( | VKResourceStateTracker & | resources, |
| VKRenderGraphNodeLinks & | node_links, | ||
| const VKIndexBufferBinding & | index_buffer_binding ) |
Definition at line 62 of file vk_pipeline_data.cc.
References blender::gpu::render_graph::VKIndexBufferBinding::buffer, blender::gpu::render_graph::VKResourceStateTracker::get_buffer(), and blender::gpu::render_graph::VKRenderGraphNodeLinks::inputs.
Referenced by blender::gpu::render_graph::VKDrawIndexedIndirectNode::build_links(), and blender::gpu::render_graph::VKDrawIndexedNode::build_links().
| void blender::gpu::render_graph::vk_pipeline_data_build_commands | ( | VKCommandBufferInterface & | command_buffer, |
| const VKPipelineData & | pipeline_data, | ||
| VKBoundPipeline & | r_bound_pipeline, | ||
| VkPipelineBindPoint | vk_pipeline_bind_point, | ||
| VkShaderStageFlags | vk_shader_stage_flags ) |
Record the commands to the given command buffer to bind the descriptor set, pipeline and push constants.
Descriptor set and pipeline are only bound, when they are different than the last bound. The r_bound_pipelines are checked to identify if they are the last bound. Descriptor set and pipeline are bound at the given pipeline bind point.
Any available push constants in the pipeline data always update the shader stages provided by vk_shader_stage_flags.
Definition at line 26 of file vk_pipeline_data.cc.
References blender::assign_if_different(), blender::gpu::render_graph::VKCommandBufferInterface::bind_descriptor_sets(), blender::gpu::render_graph::VKCommandBufferInterface::bind_pipeline(), blender::gpu::render_graph::VKCommandBufferInterface::push_constants(), blender::gpu::render_graph::VKPipelineData::push_constants_data, blender::gpu::render_graph::VKPipelineData::push_constants_size, blender::gpu::render_graph::VKBoundPipeline::vk_descriptor_set, blender::gpu::render_graph::VKPipelineData::vk_descriptor_set, blender::gpu::render_graph::VKBoundPipeline::vk_pipeline, blender::gpu::render_graph::VKPipelineData::vk_pipeline, and blender::gpu::render_graph::VKPipelineData::vk_pipeline_layout.
Referenced by blender::gpu::render_graph::VKDispatchIndirectNode::build_commands(), blender::gpu::render_graph::VKDispatchNode::build_commands(), blender::gpu::render_graph::VKDrawIndexedIndirectNode::build_commands(), blender::gpu::render_graph::VKDrawIndexedNode::build_commands(), blender::gpu::render_graph::VKDrawIndirectNode::build_commands(), and blender::gpu::render_graph::VKDrawNode::build_commands().
| void blender::gpu::render_graph::vk_pipeline_data_copy | ( | VKPipelineData & | dst, |
| const VKPipelineData & | src ) |
Copy src pipeline data into dst. The push_constant_data will be duplicated and needs to be freed using vk_pipeline_data_free.
Memory duplication isn't used as push_constant_data in the src doesn't need to be allocated via guardedalloc.
Definition at line 14 of file vk_pipeline_data.cc.
References BLI_assert, data, MEM_mallocN, blender::gpu::render_graph::VKPipelineData::push_constants_data, and blender::gpu::render_graph::VKPipelineData::push_constants_size.
Referenced by blender::gpu::render_graph::VKDispatchIndirectNode::set_node_data(), blender::gpu::render_graph::VKDispatchNode::set_node_data(), blender::gpu::render_graph::VKDrawIndexedIndirectNode::set_node_data(), blender::gpu::render_graph::VKDrawIndexedNode::set_node_data(), blender::gpu::render_graph::VKDrawIndirectNode::set_node_data(), and blender::gpu::render_graph::VKDrawNode::set_node_data().
| void blender::gpu::render_graph::vk_pipeline_data_free | ( | VKPipelineData & | data | ) |
Free localized data created by vk_pipeline_data_copy.
Definition at line 57 of file vk_pipeline_data.cc.
References MEM_SAFE_FREE.
Referenced by blender::gpu::render_graph::VKDispatchIndirectNode::free_data(), blender::gpu::render_graph::VKDispatchNode::free_data(), blender::gpu::render_graph::VKDrawIndexedIndirectNode::free_data(), blender::gpu::render_graph::VKDrawIndexedNode::free_data(), blender::gpu::render_graph::VKDrawIndirectNode::free_data(), and blender::gpu::render_graph::VKDrawNode::free_data().
| void blender::gpu::render_graph::vk_vertex_buffer_bindings_build_commands | ( | VKCommandBufferInterface & | command_buffer, |
| const VKVertexBufferBindings & | vertex_buffer_bindings, | ||
| VKVertexBufferBindings & | r_bound_vertex_buffers ) |
Definition at line 92 of file vk_pipeline_data.cc.
References blender::assign_if_different(), blender::gpu::render_graph::VKCommandBufferInterface::bind_vertex_buffers(), blender::gpu::render_graph::VKVertexBufferBindings::buffer, blender::gpu::render_graph::VKVertexBufferBindings::buffer_count, and blender::gpu::render_graph::VKVertexBufferBindings::offset.
Referenced by blender::gpu::render_graph::VKDrawIndexedIndirectNode::build_commands(), blender::gpu::render_graph::VKDrawIndexedNode::build_commands(), blender::gpu::render_graph::VKDrawIndirectNode::build_commands(), and blender::gpu::render_graph::VKDrawNode::build_commands().
| void blender::gpu::render_graph::vk_vertex_buffer_bindings_build_links | ( | VKResourceStateTracker & | resources, |
| VKRenderGraphNodeLinks & | node_links, | ||
| const VKVertexBufferBindings & | vertex_buffers ) |
Definition at line 80 of file vk_pipeline_data.cc.
References blender::gpu::render_graph::VKVertexBufferBindings::buffer, blender::gpu::render_graph::VKVertexBufferBindings::buffer_count, blender::gpu::render_graph::VKResourceStateTracker::get_buffer(), and blender::gpu::render_graph::VKRenderGraphNodeLinks::inputs.
Referenced by blender::gpu::render_graph::VKDrawIndexedIndirectNode::build_links(), blender::gpu::render_graph::VKDrawIndexedNode::build_links(), blender::gpu::render_graph::VKDrawIndirectNode::build_links(), and blender::gpu::render_graph::VKDrawNode::build_links().
|
staticconstexpr |
Which access flags are considered for write access.
Definition at line 46 of file vk_resource_access_info.cc.
Referenced by blender::gpu::render_graph::VKResourceAccessInfo::build_links().