Nebula
Loading...
Searching...
No Matches
vkpass.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "coregraphics/shader.h"
11#include "coregraphics/pass.h"
12#include "coregraphics/buffer.h"
14
15namespace Vulkan
16{
17
40
58
59enum
60{
65};
66
67typedef Ids::IdAllocator<
68 VkPassLoadInfo,
69 VkPassRuntimeInfo,
70 VkRenderPassBeginInfo,
71 Util::Array<uint32_t> // subpass attachments
74
76const VkRenderPassBeginInfo& PassGetVkRenderPassBeginInfo(const CoreGraphics::PassId id);
78const VkGraphicsPipelineCreateInfo& PassGetVkFramebufferInfo(const CoreGraphics::PassId id);
80const VkPipelineViewportStateCreateInfo& PassGetVkViewportInfo(const CoreGraphics::PassId id, uint32_t subpass);
83
85const VkDevice PassGetVkDevice(const CoreGraphics::PassId id);
87const VkFramebuffer PassGetVkFramebuffer(const CoreGraphics::PassId id);
89const VkRenderPass PassGetVkRenderPass(const CoreGraphics::PassId id);
90
91
93const VkRenderingInfo RenderPassGetVk(const CoreGraphics::RenderPassId id);
95const VkPipelineRenderingCreateInfo& RenderPassGetVkPipelineInfo(const CoreGraphics::RenderPassId id);
98
99enum
100{
109};
110
117
118typedef Ids::IdAllocator<
120 VkRenderingAttachmentInfo,
121 VkRenderingInfo,
122 VkPipelineRenderingCreateInfo,
123 VkPipelineViewportStateCreateInfo,
126 SizeT
128
129
130} // namespace Vulkan
An ID allocator associates an id with a slice in an N number of arrays.
Definition idallocator.h:39
Nebula's dynamic array class.
Definition array.h:60
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
A StringAtom.
Definition stringatom.h:22
PassRecordMode
Definition pass.h:93
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
const VkPipelineViewportStateCreateInfo & PassGetVkViewportInfo(const CoreGraphics::PassId id, uint32_t subpass)
get vk viewport info for subpass
Definition vkpass.cc:108
@ PassRender_PipelineInfo
Definition vkpass.h:104
@ PassRender_ShaderInterface
Definition vkpass.h:107
@ PassRender_DepthAttachment
Definition vkpass.h:102
@ PassRender_Attachments
Definition vkpass.h:101
@ PassRender_BeginInfo
Definition vkpass.h:103
@ PassRender_PipelineInfoColorFormats
Definition vkpass.h:106
@ PassRender_ViewportInfo
Definition vkpass.h:105
@ PassRender_Samples
Definition vkpass.h:108
const VkFramebuffer PassGetVkFramebuffer(const CoreGraphics::PassId id)
Get framebuffer.
Definition vkpass.cc:63
const SizeT PassGetVkNumAttachments(const CoreGraphics::PassId id)
get number of pass attachments
Definition vkpass.cc:45
Ids::IdAllocator< VkPassLoadInfo, VkPassRuntimeInfo, VkRenderPassBeginInfo, Util::Array< uint32_t > > VkPassAllocator
Definition vkpass.h:72
const VkDevice PassGetVkDevice(const CoreGraphics::PassId id)
Get device creating this pass.
Definition vkpass.cc:54
@ Pass_VkRenderPassBeginInfo
Definition vkpass.h:63
@ Pass_VkLoadInfo
Definition vkpass.h:61
@ Pass_VkRuntimeInfo
Definition vkpass.h:62
@ Pass_SubpassAttachments
Definition vkpass.h:64
VkPassAllocator passAllocator(0x000000FF)
Definition vkpass.h:73
Ids::IdAllocator< Util::FixedArray< VkRenderingAttachmentInfo >, VkRenderingAttachmentInfo, VkRenderingInfo, VkPipelineRenderingCreateInfo, VkPipelineViewportStateCreateInfo, Util::FixedArray< VkFormat >, RenderPassShaderInterface, SizeT > VkPassRenderAllocator
Definition vkpass.h:127
const VkPipelineRenderingCreateInfo & RenderPassGetVkPipelineInfo(const CoreGraphics::RenderPassId id)
Get pipeline create info.
Definition vkpass.cc:90
const VkRenderingInfo RenderPassGetVk(const CoreGraphics::RenderPassId id)
Get rendering info from render pass.
Definition vkpass.cc:81
const VkGraphicsPipelineCreateInfo & PassGetVkFramebufferInfo(const CoreGraphics::PassId id)
get vk framebuffer info
Definition vkpass.cc:36
const VkRenderPassBeginInfo & PassGetVkRenderPassBeginInfo(const CoreGraphics::PassId id)
get vk render pass
Definition vkpass.cc:27
const CoreGraphics::ResourceTableId RenderPassGetResourceTable(const CoreGraphics::RenderPassId id)
Get resource table for render pass.
Definition vkpass.cc:99
const VkRenderPass PassGetVkRenderPass(const CoreGraphics::PassId id)
Get pass.
Definition vkpass.cc:72
A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan).
A shader represents an entire shader resource, containing several stages and programs.
Definition buffer.h:23
Definition pass.h:28
Definition pass.h:29
Definition resourcetable.h:399
Definition resourcetable.h:95
Definition vkpass.h:112
CoreGraphics::BufferId constants
Definition vkpass.h:114
uint32_t renderTargetDimensionsOffset
Definition vkpass.h:115
CoreGraphics::ResourceTableId table
Definition vkpass.h:113
Definition vkpass.h:19
Util::Array< Math::vec4 > attachmentClears
Definition vkpass.h:27
Util::FixedArray< VkRect2D > rects
Definition vkpass.h:36
VkRect2D renderArea
Definition vkpass.h:33
Util::Array< CoreGraphics::AttachmentFlagBits > attachmentFlags
Definition vkpass.h:28
Util::FixedArray< VkClearValue > clearValues
Definition vkpass.h:38
VkRenderPass pass
Definition vkpass.h:35
Util::FixedArray< VkViewport > viewports
Definition vkpass.h:37
Util::StringAtom name
Definition vkpass.h:21
VkDevice dev
Definition vkpass.h:20
Util::Array< CoreGraphics::Subpass > subpasses
Definition vkpass.h:30
VkFramebuffer framebuffer
Definition vkpass.h:34
Util::Array< CoreGraphics::TextureViewId > attachments
Definition vkpass.h:26
Util::Array< bool > attachmentIsDepthStencil
Definition vkpass.h:29
Definition vkpass.h:42
CoreGraphics::ResourcePipelineId passPipelineLayout
Definition vkpass.h:53
IndexT renderTargetDimensionsVar
Definition vkpass.h:45
Util::FixedArray< VkPipelineViewportStateCreateInfo > subpassPipelineInfo
Definition vkpass.h:55
CoreGraphics::ResourceTableId passDescriptorSet
Definition vkpass.h:52
VkGraphicsPipelineCreateInfo framebufferPipelineInfo
Definition vkpass.h:47
CoreGraphics::BufferId passBlockBuffer
Definition vkpass.h:44
VkPipelineViewportStateCreateInfo viewportInfo
Definition vkpass.h:49
CoreGraphics::PassRecordMode recordMode
Definition vkpass.h:56
VkPipelineMultisampleStateCreateInfo multisampleInfo
Definition vkpass.h:48
uint32_t currentSubpassIndex
Definition vkpass.h:51
int SizeT
Definition types.h:42
int IndexT
Definition types.h:41