70 draw.clear_and_shrink();
111 template<
typename NodeInfo>
113 const typename NodeInfo::CreateInfo &create_info)
119 type = NodeInfo::node_type;
120 node_info.set_node_data(*
this, storage, create_info);
128 template<
typename NodeInfo>
131 const typename NodeInfo::CreateInfo &create_info)
136 node_info.build_links(resources, node_links, create_info);
148 return VK_PIPELINE_STAGE_NONE;
197 return VK_PIPELINE_STAGE_NONE;
214#define BUILD_COMMANDS_STORAGE(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME) \
216 NODE_CLASS node_info; \
217 node_info.build_commands( \
218 command_buffer, storage.ATTRIBUTE_NAME[storage_index], r_bound_pipelines); \
222#define BUILD_COMMANDS(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME) \
224 NODE_CLASS node_info; \
225 node_info.build_commands(command_buffer, ATTRIBUTE_NAME, r_bound_pipelines); \
259#undef BUILD_COMMANDS_STORAGE
270#define FREE_DATA_STORAGE(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME) \
272 NODE_CLASS node_info; \
273 node_info.free_data(storage.ATTRIBUTE_NAME[storage_index]); \
277#define FREE_DATA(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME) \
279 NODE_CLASS node_info; \
280 node_info.free_data(ATTRIBUTE_NAME); \
293#undef FREE_DATA_STORAGE
331 "VKRenderGraphNode should be kept small. Consider moving data to the "
332 "VKRenderGraphStorage class.");
#define BLI_assert_unreachable()
#define BLI_STATIC_ASSERT(a, msg)
unsigned long long int uint64_t
static constexpr VkPipelineStageFlags pipeline_stage
@ CLEAR_DEPTH_STENCIL_IMAGE
VKDispatchNode::Data dispatch
VKResetQueryPoolNode::Data reset_query_pool
VKUpdateBufferNode::Data update_buffer
VkPipelineStageFlags pipeline_stage_get() const
VKCopyBufferNode::Data copy_buffer
VKEndQueryNode::Data end_query
VKUpdateMipmapsNode::Data update_mipmaps
void build_links(VKResourceStateTracker &resources, VKRenderGraphNodeLinks &node_links, const typename NodeInfo::CreateInfo &create_info)
VKClearColorImageNode::Data clear_color_image
VKBeginQueryNode::Data begin_query
VKFillBufferNode::Data fill_buffer
VKDispatchIndirectNode::Data dispatch_indirect
void free_data(VKRenderGraphStorage &storage)
VKClearDepthStencilImageNode::Data clear_depth_stencil_image
void set_node_data(VKRenderGraphStorage &storage, const typename NodeInfo::CreateInfo &create_info)
VKEndRenderingNode::Data end_rendering
VKSynchronizationNode::Data synchronization
void build_commands(VKCommandBufferInterface &command_buffer, VKRenderGraphStorage &storage, VKBoundPipelines &r_bound_pipelines)
void reset(VKRenderGraphStorage &storage)
Vector< VKClearAttachmentsNode::Data, 1024 > clear_attachments
Vector< VKBlitImageNode::Data, 1024 > blit_image
Vector< VKCopyImageToBufferNode::Data, 1024 > copy_image_to_buffer
Vector< VKCopyBufferToImageNode::Data, 1024 > copy_buffer_to_image
Vector< VKDrawNode::Data, 1024 > draw
Vector< VKCopyImageNode::Data, 1024 > copy_image
Vector< VKDrawIndexedNode::Data, 1024 > draw_indexed
Vector< VKDrawIndirectNode::Data, 1024 > draw_indirect
Vector< VKDrawIndexedIndirectNode::Data, 1024 > draw_indexed_indirect
Vector< VKBeginRenderingNode::Data, 1024 > begin_rendering
#define FREE_DATA_STORAGE(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME)
#define BUILD_COMMANDS(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME)
#define BUILD_COMMANDS_STORAGE(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME)
#define FREE_DATA(NODE_TYPE, NODE_CLASS, ATTRIBUTE_NAME)