Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
pipeline.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
10
//------------------------------------------------------------------------------
11
#include "
shader.h
"
12
#include "
pass.h
"
13
namespace
CoreGraphics
14
{
15
16
ID_24_8_TYPE
(
PipelineId
);
17
18
struct
PipelineCreateInfo
19
{
20
CoreGraphics::ShaderProgramId
shader
;
21
CoreGraphics::PassId
pass
;
22
uint
subpass
;
23
CoreGraphics::RenderPassId
renderPass
;
24
CoreGraphics::InputAssemblyKey
inputAssembly
;
25
bool
ignoreCache
=
false
;
26
};
27
29
PipelineId
CreateGraphicsPipeline
(
const
PipelineCreateInfo
& info);
31
void
DestroyGraphicsPipeline
(
const
PipelineId
pipeline);
32
33
struct
PipelineRayTracingTable
34
{
35
CoreGraphics::PipelineId
pipeline
;
36
CoreGraphics::BufferId
raygenBindingBuffer
,
missBindingBuffer
,
hitBindingBuffer
,
callableBindingBuffer
;
37
CoreGraphics::RayDispatchTable
table
;
38
};
39
41
const
PipelineRayTracingTable
CreateRaytracingPipeline
(
const
Util::Array<CoreGraphics::ShaderProgramId>
programs,
const
CoreGraphics::QueueType
queueType =
CoreGraphics::QueueType::GraphicsQueueType
);
43
void
DestroyRaytracingPipeline
(
const
PipelineRayTracingTable
& table);
44
45
}
// namespace CoreGraphics
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
ID_24_8_TYPE
#define ID_24_8_TYPE(x)
Definition
id.h:132
CoreGraphics
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition
accelerationstructure.h:24
CoreGraphics::DestroyRaytracingPipeline
void DestroyRaytracingPipeline(const PipelineRayTracingTable &table)
Destroy raytracing pipeline.
Definition
vkpipeline.cc:505
CoreGraphics::CreateRaytracingPipeline
const PipelineRayTracingTable CreateRaytracingPipeline(const Util::Array< CoreGraphics::ShaderProgramId > programs, const CoreGraphics::QueueType queueType=CoreGraphics::QueueType::GraphicsQueueType)
Create raytacing pipeline using multiple shader programs.
Definition
vkpipeline.cc:198
CoreGraphics::QueueType
QueueType
Definition
config.h:40
CoreGraphics::GraphicsQueueType
@ GraphicsQueueType
Definition
config.h:41
CoreGraphics::CreateGraphicsPipeline
PipelineId CreateGraphicsPipeline(const PipelineCreateInfo &info)
Create new pipeline.
Definition
vkpipeline.cc:46
CoreGraphics::DestroyGraphicsPipeline
void DestroyGraphicsPipeline(const PipelineId pipeline)
Destroy pipeline.
Definition
vkpipeline.cc:187
pass.h
shader.h
A shader represents an entire shader resource, containing several stages and programs.
CoreGraphics::BufferId
Definition
buffer.h:23
CoreGraphics::PassId
Definition
pass.h:28
CoreGraphics::PipelineCreateInfo
Definition
pipeline.h:19
CoreGraphics::PipelineCreateInfo::shader
CoreGraphics::ShaderProgramId shader
Definition
pipeline.h:20
CoreGraphics::PipelineCreateInfo::ignoreCache
bool ignoreCache
Definition
pipeline.h:25
CoreGraphics::PipelineCreateInfo::renderPass
CoreGraphics::RenderPassId renderPass
Definition
pipeline.h:23
CoreGraphics::PipelineCreateInfo::subpass
uint subpass
Definition
pipeline.h:22
CoreGraphics::PipelineCreateInfo::inputAssembly
CoreGraphics::InputAssemblyKey inputAssembly
Definition
pipeline.h:24
CoreGraphics::PipelineCreateInfo::pass
CoreGraphics::PassId pass
Definition
pipeline.h:21
CoreGraphics::PipelineId
Definition
pipeline.h:16
CoreGraphics::PipelineRayTracingTable
Definition
pipeline.h:34
CoreGraphics::PipelineRayTracingTable::table
CoreGraphics::RayDispatchTable table
Definition
pipeline.h:37
CoreGraphics::PipelineRayTracingTable::raygenBindingBuffer
CoreGraphics::BufferId raygenBindingBuffer
Definition
pipeline.h:36
CoreGraphics::PipelineRayTracingTable::missBindingBuffer
CoreGraphics::BufferId missBindingBuffer
Definition
pipeline.h:36
CoreGraphics::PipelineRayTracingTable::callableBindingBuffer
CoreGraphics::BufferId callableBindingBuffer
Definition
pipeline.h:36
CoreGraphics::PipelineRayTracingTable::pipeline
CoreGraphics::PipelineId pipeline
Definition
pipeline.h:35
CoreGraphics::PipelineRayTracingTable::hitBindingBuffer
CoreGraphics::BufferId hitBindingBuffer
Definition
pipeline.h:36
CoreGraphics::RayDispatchTable
Definition
commandbuffer.h:333
CoreGraphics::RenderPassId
Definition
pass.h:29
uint
unsigned int uint
Definition
types.h:33
CoreGraphics::InputAssemblyKey
Definition
config.h:24
code
render
coregraphics
pipeline.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.