Blender
V4.3
source
blender
gpu
vulkan
render_graph
nodes
vk_clear_attachments_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
9
#pragma once
10
11
#include "
render_graph/vk_resource_access_info.hh
"
12
#include "
vk_node_info.hh
"
13
14
namespace
blender::gpu::render_graph
{
15
19
struct
VKClearAttachmentsData
{
20
uint32_t
attachment_count
;
21
VkClearAttachment
attachments
[8];
22
VkClearRect
vk_clear_rect
;
23
};
24
25
class
VKClearAttachmentsNode
:
public
VKNodeInfo
<VKNodeType::CLEAR_ATTACHMENTS,
26
VKClearAttachmentsData,
27
VKClearAttachmentsData,
28
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT |
29
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT |
30
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
31
VKResourceType::IMAGE> {
32
public
:
40
template
<
typename
Node>
static
void
set_node_data
(
Node
&node,
const
CreateInfo
&create_info)
41
{
42
node.clear_attachments = create_info;
43
}
44
48
void
build_links
(
VKResourceStateTracker
&resources,
49
VKRenderGraphNodeLinks
&node_links,
50
const
CreateInfo
&create_info)
override
51
{
52
UNUSED_VARS
(resources, node_links, create_info);
53
}
54
58
void
build_commands
(
VKCommandBufferInterface
&command_buffer,
59
Data
&data,
60
VKBoundPipelines
&
/*r_bound_pipelines*/
)
override
61
{
62
command_buffer.
clear_attachments
(
63
data.attachment_count, data.attachments, 1, &data.vk_clear_rect);
64
}
65
};
66
}
// namespace blender::gpu::render_graph
UNUSED_VARS
#define UNUSED_VARS(...)
Definition
BLI_utildefines.h:533
blender::gpu::render_graph::VKClearAttachmentsNode
Definition
vk_clear_attachments_node.hh:31
blender::gpu::render_graph::VKClearAttachmentsNode::build_commands
void build_commands(VKCommandBufferInterface &command_buffer, Data &data, VKBoundPipelines &) override
Definition
vk_clear_attachments_node.hh:58
blender::gpu::render_graph::VKClearAttachmentsNode::build_links
void build_links(VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const CreateInfo &create_info) override
Definition
vk_clear_attachments_node.hh:48
blender::gpu::render_graph::VKClearAttachmentsNode::set_node_data
static void set_node_data(Node &node, const CreateInfo &create_info)
Definition
vk_clear_attachments_node.hh:40
blender::gpu::render_graph::VKCommandBufferInterface
Definition
vk_command_buffer_wrapper.hh:14
blender::gpu::render_graph::VKCommandBufferInterface::clear_attachments
virtual void clear_attachments(uint32_t attachment_count, const VkClearAttachment *p_attachments, uint32_t rect_count, const VkClearRect *p_rects)=0
blender::gpu::render_graph::VKNodeInfo
Definition
vk_node_info.hh:159
blender::gpu::render_graph::VKResourceStateTracker
Definition
vk_resource_state_tracker.hh:121
blender::gpu::render_graph
Definition
vk_begin_query_node.hh:13
uint32_t
unsigned int uint32_t
Definition
stdint.h:80
Node
Definition
graph/node.h:90
blender::gpu::render_graph::VKBoundPipelines
Definition
vk_pipeline_data.hh:74
blender::gpu::render_graph::VKClearAttachmentsData
Definition
vk_clear_attachments_node.hh:19
blender::gpu::render_graph::VKClearAttachmentsData::attachment_count
uint32_t attachment_count
Definition
vk_clear_attachments_node.hh:20
blender::gpu::render_graph::VKClearAttachmentsData::attachments
VkClearAttachment attachments[8]
Definition
vk_clear_attachments_node.hh:21
blender::gpu::render_graph::VKClearAttachmentsData::vk_clear_rect
VkClearRect vk_clear_rect
Definition
vk_clear_attachments_node.hh:22
blender::gpu::render_graph::VKRenderGraphNodeLinks
Definition
vk_render_graph_links.hh:68
vk_node_info.hh
vk_resource_access_info.hh
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0