|
Blender V5.0
|
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) } |
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 53 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 44 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 68 of file vk_resource_state_tracker.hh.
| blender::gpu::render_graph::BLI_STATIC_ASSERT | ( | sizeof(VKRenderGraphNode)<= | 96, |
| "VKRenderGraphNode should be kept small. Consider moving data to the " "VKRenderGraphStorage class." | ) |
| BLI_INLINE std::string & blender::gpu::render_graph::endl | ( | ) |
Definition at line 16 of file vk_render_graph_test_types.hh.
References BLI_INLINE, and endl().
Referenced by endl(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), and TEST_P().
| blender::gpu::render_graph::ENUM_OPERATORS | ( | VKResourceType | , |
| VKResourceType::BUFFER | ) |
References BUFFER.
| blender::gpu::render_graph::INSTANTIATE_TEST_SUITE_P | ( | VKRenderGraphTestRender | , |
| ::testing::Values(true, false) | ) |
| blender::gpu::render_graph::INSTANTIATE_TEST_SUITE_P | ( | VKRenderGraphTestScheduler | , |
| ::testing::Values(true, false) | ) |
| 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, BLI_INLINE, ELEM, END_RENDERING, and node_type_is_within_rendering().
| 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 BLI_INLINE, 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, BLI_INLINE, 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.
|
inlinestatic |
Definition at line 547 of file vk_render_graph_test_types.hh.
References blender::gpu::render_graph::VKCommandBuilder::build_nodes(), blender::gpu::render_graph::VKCommandBuilder::record_commands(), and blender::gpu::render_graph::VKScheduler::select_nodes().
Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), TEST_P(), and TEST_P().
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestCompute | , |
| dispatch_dispatch_read_back | ) |
Test that the descriptor sets are updated once when chaining dispatching.
Definition at line 45 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| 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 103 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| dispatch_dispatch_read_back_with_changing_pipelines | ) |
Test that the descriptor sets are updated when chaining dispatching with different pipelines.
Definition at line 165 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| 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 226 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| dispatch_indirect_dispatch_indirect_read_back | ) |
Definition at line 332 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| dispatch_indirect_read_back | ) |
Test dispatch indirect
Definition at line 292 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestCompute | , |
| dispatch_read_back | ) |
Definition at line 13 of file vk_render_graph_test_compute.cc.
References 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, submit(), 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_F | ( | VKRenderGraphTestPresent | , |
| clear_and_present | ) |
Definition at line 43 of file vk_render_graph_test_present.cc.
References endl(), EXPECT_EQ(), log, submit(), blender::gpu::render_graph::VKClearColorImageData::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, and blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout.
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestPresent | , |
| transfer_and_present | ) |
Definition at line 13 of file vk_render_graph_test_present.cc.
References endl(), EXPECT_EQ(), log, submit(), blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, and blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout.
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| 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 242 of file vk_render_graph_test_transfer.cc.
References blender::gpu::render_graph::VKCopyImageToBufferData::dst_buffer, endl(), EXPECT_EQ(), log, blender::gpu::render_graph::VKCopyImageToBufferCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageToBufferData::region, blender::gpu::render_graph::VKCopyImageToBufferData::src_image, submit(), blender::gpu::render_graph::VKClearColorImageData::vk_clear_color_value, blender::gpu::render_graph::VKClearColorImageData::vk_image, and blender::gpu::render_graph::VKCopyImageToBufferCreateInfo::vk_image_aspects.
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| 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 101 of file vk_render_graph_test_transfer.cc.
References 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::VKCopyImageToBufferCreateInfo::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, submit(), blender::gpu::render_graph::VKClearColorImageData::vk_clear_color_value, blender::gpu::render_graph::VKClearColorImageData::vk_image, blender::gpu::render_graph::VKCopyImageCreateInfo::vk_image_aspect, and blender::gpu::render_graph::VKCopyImageToBufferCreateInfo::vk_image_aspects.
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| copy_buffer_modify_data | ) |
Modify a previous added copy buffer command.
Definition at line 347 of file vk_render_graph_test_transfer.cc.
References endl(), EXPECT_EQ(), log, blender::gpu::render_graph::VKCopyBufferData::region, and submit().
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| fill_and_read_back | ) |
Fill a single buffer and read it back.
Definition at line 16 of file vk_render_graph_test_transfer.cc.
References EXPECT_EQ(), log, and submit().
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| 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 73 of file vk_render_graph_test_transfer.cc.
References endl(), EXPECT_EQ(), log, and submit().
| blender::gpu::render_graph::TEST_F | ( | VKRenderGraphTestTransfer | , |
| fill_transfer_and_read_back | ) |
Fill a single buffer, copy it to a staging buffer and read the staging buffer back.
Definition at line 32 of file vk_render_graph_test_transfer.cc.
References 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 submit().
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestRender | , |
| begin_clear_attachments_end_read_back | ) |
Definition at line 13 of file vk_render_graph_test_render.cc.
References 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(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageToBufferCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageToBufferData::region, blender::gpu::render_graph::VKCopyImageToBufferData::src_image, submit(), blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, blender::gpu::render_graph::VKCopyImageToBufferCreateInfo::vk_image_aspects, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestRender | , |
| begin_draw_end | ) |
Definition at line 139 of file vk_render_graph_test_render.cc.
References blender::gpu::render_graph::VKBeginRenderingData::color_attachments, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, submit(), and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestRender | , |
| begin_draw_end__layered | ) |
Definition at line 224 of file vk_render_graph_test_render.cc.
References blender::gpu::render_graph::VKBeginRenderingData::color_attachments, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, submit(), and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| begin_clear_attachments_copy_buffer_clear_attachments_end | ) |
Definition at line 379 of file vk_render_graph_test_scheduler.cc.
References 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(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, submit(), blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| begin_clear_attachments_copy_buffer_end | ) |
Definition at line 121 of file vk_render_graph_test_scheduler.cc.
References 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(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, submit(), blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| begin_copy_buffer_clear_attachments_end | ) |
Definition at line 250 of file vk_render_graph_test_scheduler.cc.
References 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(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, submit(), blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| 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 537 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyImageData::dst_image, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageData::region, blender::gpu::render_graph::VKCopyImageData::src_image, submit(), blender::gpu::render_graph::VKCopyImageCreateInfo::vk_image_aspect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| begin_draw_copy_to_attachment_draw_end | ) |
When drawing, copying and continue drawing to an attachment, the attachment layout should be transitioned.
This case happens when updating the swap-chain image with the result of editors.
Definition at line 953 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyImageData::dst_image, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageCreateInfo::node_data, blender::gpu::render_graph::VKCopyImageData::region, blender::gpu::render_graph::VKCopyImageData::src_image, submit(), blender::gpu::render_graph::VKCopyImageCreateInfo::vk_image_aspect, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| begin_rendering_copy_buffer_end_rendering | ) |
Copy buffer should be done after the end rendering.
Definition at line 14 of file vk_render_graph_test_scheduler.cc.
References blender::gpu::render_graph::VKBeginRenderingData::color_attachments, blender::gpu::render_graph::VKCopyBufferData::dst_buffer, endl(), EXPECT_EQ(), blender::gpu::render_graph::VKResourceAccessInfo::images, log, blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, blender::gpu::render_graph::VKCopyBufferData::src_buffer, submit(), blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_aspect, blender::gpu::render_graph::VKSynchronizationCreateInfo::vk_image_layout, and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| blender::gpu::render_graph::TEST_P | ( | VKRenderGraphTestScheduler | , |
| 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 722 of file vk_render_graph_test_scheduler.cc.
References 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::VKResourceAccessInfo::images, log, MEM_callocN(), blender::gpu::render_graph::VKBeginRenderingCreateInfo::node_data, submit(), and blender::gpu::render_graph::VKBeginRenderingData::vk_rendering_info.
| 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 123 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 115 of file vk_pipeline_data.cc.
References blender::gpu::render_graph::VKIndexBufferBinding::buffer, blender::gpu::render_graph::VKResourceStateTracker::get_buffer(), blender::gpu::render_graph::VKRenderGraphNodeLinks::inputs, and resource.
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 42 of file vk_pipeline_data.cc.
References blender::assign_if_different(), blender::gpu::render_graph::VKCommandBufferInterface::bind_descriptor_buffers(), blender::gpu::render_graph::VKCommandBufferInterface::bind_descriptor_sets(), blender::gpu::render_graph::VKCommandBufferInterface::bind_pipeline(), blender::gpu::render_graph::VKBoundPipeline::descriptor_buffer_device_address, blender::gpu::render_graph::VKPipelineData::descriptor_buffer_device_address, blender::gpu::render_graph::VKBoundPipeline::descriptor_buffer_offset, blender::gpu::render_graph::VKPipelineData::descriptor_buffer_offset, 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::VKCommandBufferInterface::set_descriptor_buffer_offsets(), 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(), blender::gpu::render_graph::VKDrawNode::set_node_data(), and vk_pipeline_data_copy().
|
inlinestatic |
Definition at line 140 of file vk_pipeline_data.hh.
References blender::gpu::render_graph::VKPipelineDataGraphics::pipeline_data, and vk_pipeline_data_copy().
| void blender::gpu::render_graph::vk_pipeline_data_free | ( | VKPipelineData & | data | ) |
Free localized data created by vk_pipeline_data_copy.
Definition at line 107 of file vk_pipeline_data.cc.
References data, and MEM_freeN().
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(), blender::gpu::render_graph::VKDrawNode::free_data(), and vk_pipeline_data_free().
|
inlinestatic |
Definition at line 179 of file vk_pipeline_data.hh.
References data, and vk_pipeline_data_free().
| void blender::gpu::render_graph::vk_pipeline_dynamic_graphics_build_commands | ( | VKCommandBufferInterface & | command_buffer, |
| const VKViewportData & | viewport, | ||
| const std::optional< float > | line_width, | ||
| VKBoundPipelines & | r_bound_pipelines ) |
Record commands that update the dynamic state.
Definition at line 26 of file vk_pipeline_data.cc.
References blender::assign_if_different(), blender::gpu::render_graph::VKBoundPipelines::graphics, blender::gpu::render_graph::VKBoundPipelines::line_width, blender::gpu::render_graph::VKViewportData::scissors, blender::gpu::render_graph::VKCommandBufferInterface::set_line_width(), blender::gpu::render_graph::VKCommandBufferInterface::set_scissor(), blender::gpu::render_graph::VKCommandBufferInterface::set_viewport(), blender::gpu::render_graph::VKBoundPipelines::viewport_state, and blender::gpu::render_graph::VKViewportData::viewports.
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_commands | ( | VKCommandBufferInterface & | command_buffer, |
| const VKVertexBufferBindings & | vertex_buffer_bindings, | ||
| VKVertexBufferBindings & | r_bound_vertex_buffers ) |
Definition at line 146 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 133 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(), blender::gpu::render_graph::VKRenderGraphNodeLinks::inputs, and resource.
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 53 of file vk_resource_access_info.cc.
Referenced by blender::gpu::render_graph::VKResourceAccessInfo::build_links().