Blender V4.5
vk_end_rendering_node.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "vk_node_info.hh"
12
14
19 /* Render pass used (when dynamic rendering is not supported). */
20 VkRenderPass vk_render_pass;
21};
22
30class VKEndRenderingNode : public VKNodeInfo<VKNodeType::END_RENDERING,
31 VKEndRenderingData,
32 VKEndRenderingData,
33 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
34 VKResourceType::NONE> {
35 public:
43 template<typename Node, typename Storage>
44 void set_node_data(Node &node, Storage & /*storage*/, const CreateInfo &create_info)
45 {
46 node.end_rendering = create_info;
47 }
48
52 void build_links(VKResourceStateTracker & /*resources*/,
53 VKRenderGraphNodeLinks & /*node_links*/,
54 const CreateInfo & /*create_info*/) override
55 {
56 }
57
62 Data &data,
63 VKBoundPipelines & /*r_bound_pipelines*/) override
64 {
65 const bool is_dynamic_rendering = data.vk_render_pass == VK_NULL_HANDLE;
66 if (is_dynamic_rendering) {
67 command_buffer.end_rendering();
68 }
69 else {
70 command_buffer.end_render_pass();
71 }
72 }
73};
74} // namespace blender::gpu::render_graph
BMesh const char void * data
void build_links(VKResourceStateTracker &, VKRenderGraphNodeLinks &, const CreateInfo &) override
void build_commands(VKCommandBufferInterface &command_buffer, Data &data, VKBoundPipelines &) override
void set_node_data(Node &node, Storage &, const CreateInfo &create_info)