|
Blender V4.3
|
#include <vk_command_builder.hh>
Public Member Functions | |
| VKCommandBuilder () | |
Build nodes | |
| void | build_nodes (VKRenderGraph &render_graph, VKCommandBufferInterface &command_buffer, Span< NodeHandle > node_handles) |
Build the command buffer for sending to the device queue.
Determine which nodes needs to be scheduled, Then for each node generate the needed pipeline barriers and commands.
Definition at line 33 of file vk_command_builder.hh.
| blender::gpu::render_graph::VKCommandBuilder::VKCommandBuilder | ( | ) |
Definition at line 14 of file vk_command_builder.cc.
| void blender::gpu::render_graph::VKCommandBuilder::build_nodes | ( | VKRenderGraph & | render_graph, |
| VKCommandBufferInterface & | command_buffer, | ||
| Span< NodeHandle > | node_handles ) |
Build the commands of the nodes provided by the node_handles parameter. The commands are recorded into the given command_buffer.
Pre-condition:
command_buffer must not be in initial state according to https://docs.vulkan.org/spec/latest/chapters/cmdbuffers.html#commandbuffers-lifecyclePost-condition:
command_buffer will be in executable state according to https://docs.vulkan.org/spec/latest/chapters/cmdbuffers.html#commandbuffers-lifecycle Definition at line 48 of file vk_command_builder.cc.
References blender::gpu::render_graph::VKCommandBufferInterface::begin_recording(), blender::gpu::render_graph::BEGIN_RENDERING, blender::IndexRange::drop_front(), blender::gpu::render_graph::VKCommandBufferInterface::end_recording(), blender::IndexRange::first(), blender::IndexRange::index_range(), blender::IndexRange::is_empty(), blender::gpu::render_graph::node_type_is_rendering(), blender::gpu::render_graph::VKResourceStateTracker::reset_image_layouts(), blender::IndexRange::size(), and blender::IndexRange::slice().
Referenced by blender::gpu::render_graph::VKRenderGraph::submit_buffer_for_read(), blender::gpu::render_graph::VKRenderGraph::submit_for_present(), and blender::gpu::render_graph::VKRenderGraph::submit_synchronization_event().
| int64_t blender::gpu::render_graph::VKCommandBuilder::active_debug_group_id = -1 |
Index of the active debug_group. Points to an element in VKRenderGraph.debug_.used_groups.
Definition at line 64 of file vk_command_builder.hh.
| VKBoundPipelines blender::gpu::render_graph::VKCommandBuilder::active_pipelines |
State of the bound pipelines during command building.
Definition at line 48 of file vk_command_builder.hh.
| int blender::gpu::render_graph::VKCommandBuilder::debug_level = 0 |
Current level of debug groups. (number of nested debug groups).
Definition at line 66 of file vk_command_builder.hh.
| VkPipelineStageFlags blender::gpu::render_graph::VKCommandBuilder::dst_stage_mask = VK_PIPELINE_STAGE_NONE |
Definition at line 58 of file vk_command_builder.hh.
| Set<VkImage> blender::gpu::render_graph::VKCommandBuilder::layered_attachments |
All layered attachments of the last rendering scope (VKNodeType::BEGIN_RENDERING).
when binding layer from these images we expect that they aren't used as attachment and can be transitioned into a different image layout. These image layouts are stored in layered_bindings.
Definition at line 75 of file vk_command_builder.hh.
| Vector<LayeredImageBinding> blender::gpu::render_graph::VKCommandBuilder::layered_bindings |
Definition at line 77 of file vk_command_builder.hh.
| VkPipelineStageFlags blender::gpu::render_graph::VKCommandBuilder::src_stage_mask = VK_PIPELINE_STAGE_NONE |
When building memory barriers we need to track the src_stage_mask and dst_stage_mask and pass them to https://docs.vulkan.org/spec/latest/chapters/synchronization.html#vkCmdPipelineBarrier
NOTE: Only valid between reset_barriers and send_pipeline_barriers.
Definition at line 57 of file vk_command_builder.hh.