Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
12
#include "
core/types.h
"
13
#include "
util/string.h
"
14
#include "
core/rttimacros.h
"
15
16
#define NEBULA_WHOLE_BUFFER_SIZE (~0ull)
17
#define NEBULA_ALL_MIPS (-1)
18
#define NEBULA_ALL_LAYERS (-1)
19
namespace
CoreGraphics
20
{
21
typedef
uint64_t
ConstantBufferOffset
;
22
23
union
InputAssemblyKey
24
{
25
struct
26
{
27
uint
topo
: 4;
28
bool
primRestart
: 1;
29
};
30
byte
key
;
31
32
void
operator=
(
const
InputAssemblyKey
& rhs) { this->key = rhs.
key
; }
33
bool
operator==
(
const
InputAssemblyKey
& rhs)
const
{
return
this->key == rhs.
key
; }
34
bool
operator!=
(
const
InputAssemblyKey
& rhs)
const
{
return
this->key != rhs.
key
; }
35
bool
operator>
(
const
InputAssemblyKey
& rhs)
const
{
return
this->key > rhs.
key
; }
36
bool
operator<
(
const
InputAssemblyKey
& rhs)
const
{
return
this->key < rhs.
key
; }
37
};
38
39
enum
QueueType
40
{
41
GraphicsQueueType
,
42
ComputeQueueType
,
43
TransferQueueType
,
44
SparseQueueType
,
45
46
NumQueueTypes
,
47
48
InvalidQueueType
49
};
50
51
enum
QueryType
52
{
53
OcclusionQueryType
,
54
StatisticsQueryType
,
55
TimestampsQueryType
,
56
NumQueryTypes
57
};
58
59
enum
ShaderVisibility
60
{
61
InvalidVisibility
= 0,
62
VertexShaderVisibility
= 1 << 0,
63
HullShaderVisibility
= 1 << 2,
64
DomainShaderVisibility
= 1 << 3,
65
GeometryShaderVisibility
= 1 << 4,
66
PixelShaderVisibility
= 1 << 5,
67
AllGraphicsVisibility
=
VertexShaderVisibility
|
HullShaderVisibility
|
DomainShaderVisibility
|
GeometryShaderVisibility
|
PixelShaderVisibility
,
68
TaskShaderVisibility
= 1 << 6,
69
MeshShaderVisibility
= 1 << 7,
70
ComputeShaderVisibility
= 1 << 8,
71
RayGenerationShaderVisibility
= 1 << 9,
72
RayAnyHitShaderVisibility
= 1 << 10,
73
RayClosestHitShaderVisibility
= 1 << 11,
74
RayMissShaderVisibility
= 1 << 12,
75
RayIntersectionShaderVisibility
= 1 << 13,
76
CallableShaderVisibility
= 1 << 14,
77
AllVisibility
= (1 << 15) - 1
78
};
79
__ImplementEnumBitOperators
(
CoreGraphics::ShaderVisibility
);
80
81
enum class
ImageBits
82
{
83
None
= 0,
84
Auto
= 1,
// Special value to be used only by framescript
85
ColorBits
= (1 << 1),
86
DepthBits = (1 << 2),
87
StencilBits
= (1 << 3),
88
MetaBits = (1 << 4),
89
Plane0Bits
= (1 << 5),
90
Plane1Bits = (1 << 6),
91
Plane2Bits
= (1 << 7)
92
};
93
__ImplementEnumBitOperators
(
CoreGraphics::ImageBits
);
94
__ImplementEnumComparisonOperators
(
CoreGraphics::ImageBits
);
95
96
enum class
ImageLayout
97
{
98
Undefined
,
99
General
,
100
ColorRenderTexture
,
101
DepthStencilRenderTexture
,
102
DepthStencilRead
,
103
ShaderRead
,
104
TransferSource
,
105
TransferDestination
,
106
Preinitialized
,
107
Present
108
};
109
110
enum
ShaderPipeline
111
{
112
InvalidPipeline
,
113
GraphicsPipeline
,
114
ComputePipeline
,
// Compute pipeline is not the compute queue, it's just resources available for compute shaders
115
RayTracingPipeline
116
};
117
118
//------------------------------------------------------------------------------
121
inline
ShaderVisibility
122
ShaderVisibilityFromString
(
const
Util::String
& str)
123
{
124
Util::Array<Util::String>
components = str.
Tokenize
(
"|"
);
125
CoreGraphics::ShaderVisibility
ret =
InvalidVisibility
;
126
IndexT
i;
127
for
(i = 0; i < components.
Size
(); i++)
128
{
129
const
Util::String
& component = components[i];
130
if
(component ==
"VS"
) ret |=
VertexShaderVisibility
;
131
else
if
(component ==
"HS"
) ret |=
HullShaderVisibility
;
132
else
if
(component ==
"DS"
) ret |=
DomainShaderVisibility
;
133
else
if
(component ==
"GS"
) ret |=
GeometryShaderVisibility
;
134
else
if
(component ==
"PS"
) ret |=
PixelShaderVisibility
;
135
else
if
(component ==
"CS"
) ret |=
ComputeShaderVisibility
;
136
else
if
(component ==
"TS"
) ret |=
TaskShaderVisibility
;
137
else
if
(component ==
"MS"
) ret |=
MeshShaderVisibility
;
138
else
if
(component ==
"RGS"
) ret |=
RayGenerationShaderVisibility
;
139
else
if
(component ==
"RAS"
) ret |=
RayAnyHitShaderVisibility
;
140
else
if
(component ==
"RCS"
) ret |=
RayClosestHitShaderVisibility
;
141
else
if
(component ==
"RMS"
) ret |=
RayMissShaderVisibility
;
142
else
if
(component ==
"RIS"
) ret |=
RayIntersectionShaderVisibility
;
143
else
if
(component ==
"CAS"
) ret |=
CallableShaderVisibility
;
144
}
145
146
return
ret;
147
}
148
149
150
//------------------------------------------------------------------------------
153
inline
QueueType
154
QueueTypeFromString
(
const
Util::String
& str)
155
{
156
if
(str ==
"Graphics"
)
return
GraphicsQueueType
;
157
else
if
(str ==
"Compute"
)
return
ComputeQueueType
;
158
else
if
(str ==
"Transfer"
)
return
TransferQueueType
;
159
else
if
(str ==
"Sparse"
)
return
SparseQueueType
;
160
return
GraphicsQueueType
;
161
}
162
163
//------------------------------------------------------------------------------
166
inline
const
char
*
167
QueueNameFromQueueType
(
const
QueueType
type)
168
{
169
switch
(type)
170
{
171
case
GraphicsQueueType
:
172
return
"Graphics"
;
173
case
ComputeQueueType
:
174
return
"Compute"
;
175
case
TransferQueueType
:
176
return
"Transfer"
;
177
case
SparseQueueType
:
178
return
"Sparse"
;
179
default
:
180
return
"Graphics"
;
181
}
182
}
183
184
185
enum class
BarrierDomain
186
{
187
Global
,
188
Pass
189
};
190
191
enum class
PipelineStage
192
{
193
InvalidStage
,
194
Top
,
// Top of pipe
195
Bottom
,
// Bottom of pipe
196
Indirect
,
// Indirect dispatch/draw fetching stage
197
Index
,
// Index fetch (automatically vertex shader)
198
Vertex,
// Vertex fetch stage (automatically vertex shader)
199
UniformGraphics
,
// Uniform read on graphics queue
200
UniformCompute
,
// Uniform read on compute queue
201
InputAttachment
,
// Input attachment read (automatically pixel shader)
202
ReadOnlyAccess
=
InputAttachment
,
// All of the above enums are read-only
203
VertexShaderRead
,
204
VertexShaderWrite
,
205
HullShaderRead
,
206
HullShaderWrite
,
207
DomainShaderRead
,
208
DomainShaderWrite
,
209
GeometryShaderRead
,
210
GeometryShaderWrite
,
211
PixelShaderRead
,
212
PixelShaderWrite
,
213
GraphicsShadersRead
,
214
GraphicsShadersWrite
,
215
ComputeShaderRead
,
216
ComputeShaderWrite
,
217
AllShadersRead
,
218
AllShadersWrite
,
219
ColorRead
,
// Color output read
220
ColorWrite
,
// Color output write
221
DepthStencilRead
,
// Depth-Stencil output read
222
DepthStencilWrite
,
// Depth-Stencil output write
223
RayTracingShaderRead
,
224
RayTracingShaderWrite
,
225
TaskShaderRead
,
226
TaskShaderWrite
,
227
MeshShaderRead
,
228
MeshShaderWrite
,
229
TransferRead
,
// Memory transfering read
230
TransferWrite
,
// Memory transfering write
231
HostRead
,
// Host operations read
232
HostWrite
,
// Host operations write
233
MemoryRead
,
// Memory operations read
234
MemoryWrite
,
// Memory operations write
235
AccelerationStructureRead
,
// Read acceleration structure
236
AccelerationStructureWrite
,
// Write acceleration structure
237
ImageInitial
,
// Special pipeline stage for initial images
238
Present
// Special pipeline stage for present images
239
};
240
241
__ImplementEnumBitOperators
(
PipelineStage
);
242
243
//------------------------------------------------------------------------------
246
inline
PipelineStage
247
PipelineStageFromString
(
const
Util::String
& str)
248
{
249
if
(str ==
"Top"
)
return
PipelineStage::Top
;
250
else
if
(str ==
"Bottom"
)
return
PipelineStage::Bottom
;
251
else
if
(str ==
"IndirectRead"
)
return
PipelineStage::Indirect
;
252
else
if
(str ==
"IndexRead"
)
return
PipelineStage::Index
;
253
else
if
(str ==
"VertexRead"
)
return
PipelineStage::Vertex
;
254
else
if
(str ==
"UniformGraphicsRead"
)
return
PipelineStage::UniformGraphics
;
255
else
if
(str ==
"UniformComputeRead"
)
return
PipelineStage::UniformCompute
;
256
else
if
(str ==
"InputAttachmentRead"
)
return
PipelineStage::InputAttachment
;
257
else
if
(str ==
"VertexShaderRead"
)
return
PipelineStage::VertexShaderRead
;
258
else
if
(str ==
"VertexShaderWrite"
)
return
PipelineStage::VertexShaderWrite
;
259
else
if
(str ==
"HullShaderRead"
)
return
PipelineStage::HullShaderRead
;
260
else
if
(str ==
"HullShaderWrite"
)
return
PipelineStage::HullShaderWrite
;
261
else
if
(str ==
"DomainShaderRead"
)
return
PipelineStage::DomainShaderRead
;
262
else
if
(str ==
"DomainShaderWrite"
)
return
PipelineStage::DomainShaderWrite
;
263
else
if
(str ==
"GeometryShaderRead"
)
return
PipelineStage::GeometryShaderRead
;
264
else
if
(str ==
"GeometryShaderWrite"
)
return
PipelineStage::GeometryShaderWrite
;
265
else
if
(str ==
"PixelShaderRead"
)
return
PipelineStage::PixelShaderRead
;
266
else
if
(str ==
"PixelShaderWrite"
)
return
PipelineStage::PixelShaderWrite
;
267
else
if
(str ==
"ComputeShaderRead"
)
return
PipelineStage::ComputeShaderRead
;
268
else
if
(str ==
"ComputeShaderWrite"
)
return
PipelineStage::ComputeShaderWrite
;
269
else
if
(str ==
"ColorAttachmentRead"
)
return
PipelineStage::ColorRead
;
270
else
if
(str ==
"ColorAttachmentWrite"
)
return
PipelineStage::ColorWrite
;
271
else
if
(str ==
"DepthAttachmentRead"
)
return
PipelineStage::DepthStencilRead
;
272
else
if
(str ==
"DepthAttachmentWrite"
)
return
PipelineStage::DepthStencilWrite
;
273
else
if
(str ==
"TransferRead"
)
return
PipelineStage::TransferRead
;
274
else
if
(str ==
"TransferWrite"
)
return
PipelineStage::TransferWrite
;
275
else
if
(str ==
"HostRead"
)
return
PipelineStage::HostRead
;
276
else
if
(str ==
"HostWrite"
)
return
PipelineStage::HostWrite
;
277
else
if
(str ==
"MemoryRead"
)
return
PipelineStage::MemoryRead
;
278
else
if
(str ==
"MemoryWrite"
)
return
PipelineStage::MemoryWrite
;
279
else
if
(str ==
"Present"
)
return
PipelineStage::Present
;
280
else
281
{
282
n_error
(
"Invalid pipeline stage '%s'\n"
, str.
AsCharPtr
());
283
return
PipelineStage::InvalidStage
;
284
}
285
}
286
287
//------------------------------------------------------------------------------
290
inline
bool
291
PipelineStageWrites
(
const
PipelineStage
stage)
292
{
293
switch
(stage)
294
{
295
case
PipelineStage::VertexShaderWrite
:
296
case
PipelineStage::HullShaderWrite
:
297
case
PipelineStage::DomainShaderWrite
:
298
case
PipelineStage::GeometryShaderWrite
:
299
case
PipelineStage::PixelShaderWrite
:
300
case
PipelineStage::ComputeShaderWrite
:
301
case
PipelineStage::AllShadersWrite
:
302
case
PipelineStage::ColorWrite
:
303
case
PipelineStage::DepthStencilWrite
:
304
case
PipelineStage::HostWrite
:
305
case
PipelineStage::MemoryWrite
:
306
case
PipelineStage::TransferWrite
:
307
return
true
;
308
default
:
309
return
false
;
310
}
311
return
false
;
312
}
313
314
315
//------------------------------------------------------------------------------
319
inline
PipelineStage
320
ConvertToQueue
(
const
CoreGraphics::PipelineStage
sourceStage,
const
CoreGraphics::QueueType
queue)
321
{
322
bool
isGraphics =
false
;
323
switch
(sourceStage)
324
{
325
case
PipelineStage::ColorWrite
:
326
case
PipelineStage::DepthStencilWrite
:
327
case
PipelineStage::UniformGraphics
:
328
case
PipelineStage::VertexShaderWrite
:
329
case
PipelineStage::HullShaderWrite
:
330
case
PipelineStage::DomainShaderWrite
:
331
case
PipelineStage::GeometryShaderWrite
:
332
case
PipelineStage::TaskShaderWrite
:
333
case
PipelineStage::PixelShaderWrite
:
334
case
PipelineStage::MeshShaderWrite
:
335
switch
(queue)
336
{
337
case
CoreGraphics::QueueType::GraphicsQueueType
:
338
return
sourceStage;
339
case
CoreGraphics::QueueType::ComputeQueueType
:
340
return
PipelineStage::ComputeShaderWrite
;
341
case
CoreGraphics::QueueType::TransferQueueType
:
342
case
CoreGraphics::QueueType::SparseQueueType
:
343
return
PipelineStage::TransferWrite
;
344
default
:
345
n_error
(
"Unhandled QueueType"
);
346
return
PipelineStage::InvalidStage
;
347
}
348
case
PipelineStage::ColorRead
:
349
case
PipelineStage::DepthStencilRead
:
350
case
PipelineStage::VertexShaderRead
:
351
case
PipelineStage::HullShaderRead
:
352
case
PipelineStage::DomainShaderRead
:
353
case
PipelineStage::GeometryShaderRead
:
354
case
PipelineStage::PixelShaderRead
:
355
case
PipelineStage::TaskShaderRead
:
356
case
PipelineStage::MeshShaderRead
:
357
switch
(queue)
358
{
359
case
CoreGraphics::QueueType::GraphicsQueueType
:
360
return
sourceStage;
361
case
CoreGraphics::QueueType::ComputeQueueType
:
362
return
PipelineStage::ComputeShaderRead
;
363
case
CoreGraphics::QueueType::TransferQueueType
:
364
case
CoreGraphics::QueueType::SparseQueueType
:
365
return
PipelineStage::TransferRead
;
366
default
:
367
n_error
(
"Unhandled QueueType"
);
368
return
PipelineStage::InvalidStage
;
369
}
370
case
PipelineStage::AccelerationStructureRead
:
371
case
PipelineStage::AccelerationStructureWrite
:
372
switch
(queue)
373
{
374
case
CoreGraphics::QueueType::GraphicsQueueType
:
375
case
CoreGraphics::QueueType::ComputeQueueType
:
376
return
sourceStage;
377
case
CoreGraphics::QueueType::TransferQueueType
:
378
case
CoreGraphics::QueueType::SparseQueueType
:
379
return
PipelineStage::TransferRead
;
380
default
:
381
n_error
(
"Unhandled QueueType"
);
382
return
PipelineStage::InvalidStage
;
383
}
384
default
:
385
return
sourceStage;
386
}
387
388
return
sourceStage;
389
}
390
391
}
// namespace CoreGraphics
392
393
394
#define SHADER_POSTEFFECT_DEFAULT_FEATURE_MASK "Alt0"
395
396
#if !PUBLIC_BUILD
397
#define NEBULA_GRAPHICS_DEBUG 1
398
#define NEBULA_MARKER_BLUE Math::vec4(0.8f, 0.8f, 1.0f, 1.0f)
399
#define NEBULA_MARKER_RED Math::vec4(1.0f, 0.8f, 0.8f, 1.0f)
400
#define NEBULA_MARKER_GREEN Math::vec4(0.8f, 1.0f, 0.8f, 1.0f)
401
#define NEBULA_MARKER_DARK_GREEN Math::vec4(0.6f, 0.8f, 0.6f, 1.0f)
402
#define NEBULA_MARKER_DARK_DARK_GREEN Math::vec4(0.5f, 0.7f, 0.5f, 1.0f)
403
#define NEBULA_MARKER_PINK Math::vec4(1.0f, 0.8f, 0.9f, 1.0f)
404
#define NEBULA_MARKER_PURPLE Math::vec4(0.9f, 0.7f, 0.9f, 1.0f)
405
#define NEBULA_MARKER_ORANGE Math::vec4(1.0f, 0.9f, 0.8f, 1.0f)
406
#define NEBULA_MARKER_TURQOISE Math::vec4(0.8f, 0.9f, 1.0f, 1.0f)
407
#define NEBULA_MARKER_GRAY Math::vec4(0.9f, 0.9f, 0.9f, 1.0f)
408
#define NEBULA_MARKER_BLACK Math::vec4(0.001f)
409
#define NEBULA_MARKER_WHITE Math::vec4(1)
410
411
#define NEBULA_MARKER_COMPUTE NEBULA_MARKER_BLUE
412
#define NEBULA_MARKER_GRAPHICS NEBULA_MARKER_GREEN
413
#define NEBULA_MARKER_TRANSFER NEBULA_MARKER_RED
414
415
#endif
416
417
//------------------------------------------------------------------------------
418
#if __VULKAN__
419
#define COREGRAPHICS_TRIANGLE_FRONT_FACE_CCW (1)
420
// define the same descriptor set slots as we do in the shaders
421
#define NEBULA_TICK_GROUP 0
// set per tick (once for all views) by the system
422
#define NEBULA_FRAME_GROUP 1
// set per frame (once per view) by the system
423
#define NEBULA_PASS_GROUP 2
// set per pass by the system
424
#define NEBULA_BATCH_GROUP 3
// set per batch (material settings or system stuff)
425
#define NEBULA_INSTANCE_GROUP 4
// set a batch-internal copy of some specific settings
426
#define NEBULA_SYSTEM_GROUP 5
// set a batch-internal copy of some specific settings
427
#define NEBULA_DYNAMIC_OFFSET_GROUP 6
// set once per shader and is offset for each instance
428
#define NEBULA_NUM_GROUPS (NEBULA_DYNAMIC_OFFSET_GROUP + 1)
429
430
#define MAX_INPUT_ATTACHMENTS 32
431
432
#define SHADER_MODEL_5 (1)
433
#ifdef _DEBUG
434
#define NEBULA_VULKAN_DEBUG (1)
435
#else
436
#define NEBULA_VULKAN_DEBUG (0)
437
#endif
438
#define PROJECTION_HANDEDNESS_LH (0)
439
#if __X64__
440
#define VK_DEVICE_SIZE_CONV(x) uint64_t(x)
441
#else
442
#define VK_DEVICE_SIZE_CONV(x) uint32_t(x)
443
#endif
444
#endif
445
//------------------------------------------------------------------------------
Pass
A pass describe a set of textures used for rendering.
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
Util::Array::Size
const SizeT Size() const
get number of elements in array
Definition
array.h:913
Util::String
Nebula's universal string class.
Definition
string.h:50
Util::String::AsCharPtr
const char * AsCharPtr() const
return contents as character pointer
Definition
string.h:577
Util::String::Tokenize
SizeT Tokenize(const String &whiteSpace, Array< String > &outTokens) const
tokenize string into a provided String array (faster if tokens array can be reused)
Definition
string.cc:193
n_error
void __cdecl n_error(const char *msg,...)
This function is called when a serious situation is encountered which requires abortion of the applic...
Definition
debug.cc:138
CoreGraphics
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition
accelerationstructure.h:24
CoreGraphics::ImageLayout
ImageLayout
Definition
config.h:97
CoreGraphics::ImageLayout::General
@ General
Definition
config.h:99
CoreGraphics::ImageLayout::ShaderRead
@ ShaderRead
Definition
config.h:103
CoreGraphics::ImageLayout::ColorRenderTexture
@ ColorRenderTexture
Definition
config.h:100
CoreGraphics::ImageLayout::DepthStencilRead
@ DepthStencilRead
Definition
config.h:102
CoreGraphics::ImageLayout::DepthStencilRenderTexture
@ DepthStencilRenderTexture
Definition
config.h:101
CoreGraphics::ImageLayout::Present
@ Present
Definition
config.h:107
CoreGraphics::ImageLayout::Undefined
@ Undefined
Definition
config.h:98
CoreGraphics::ImageLayout::Preinitialized
@ Preinitialized
Definition
config.h:106
CoreGraphics::ConstantBufferOffset
uint64_t ConstantBufferOffset
Definition
config.h:21
CoreGraphics::__ImplementEnumComparisonOperators
__ImplementEnumComparisonOperators(AccelerationStructureBuildFlags)
CoreGraphics::BufferUsage::Index
@ Index
Definition
buffer.h:44
CoreGraphics::BufferUsage::TransferSource
@ TransferSource
Definition
buffer.h:37
CoreGraphics::BufferUsage::TransferDestination
@ TransferDestination
Definition
buffer.h:38
CoreGraphics::QueryType
QueryType
Definition
config.h:52
CoreGraphics::TimestampsQueryType
@ TimestampsQueryType
Definition
config.h:55
CoreGraphics::NumQueryTypes
@ NumQueryTypes
Definition
config.h:56
CoreGraphics::StatisticsQueryType
@ StatisticsQueryType
Definition
config.h:54
CoreGraphics::OcclusionQueryType
@ OcclusionQueryType
Definition
config.h:53
CoreGraphics::QueueNameFromQueueType
const char * QueueNameFromQueueType(const QueueType type)
Definition
config.h:167
CoreGraphics::QueueType
QueueType
Definition
config.h:40
CoreGraphics::ComputeQueueType
@ ComputeQueueType
Definition
config.h:42
CoreGraphics::NumQueueTypes
@ NumQueueTypes
Definition
config.h:46
CoreGraphics::InvalidQueueType
@ InvalidQueueType
Definition
config.h:48
CoreGraphics::SparseQueueType
@ SparseQueueType
Definition
config.h:44
CoreGraphics::GraphicsQueueType
@ GraphicsQueueType
Definition
config.h:41
CoreGraphics::TransferQueueType
@ TransferQueueType
Definition
config.h:43
CoreGraphics::ShaderVisibility
ShaderVisibility
Definition
config.h:60
CoreGraphics::AllGraphicsVisibility
@ AllGraphicsVisibility
Definition
config.h:67
CoreGraphics::InvalidVisibility
@ InvalidVisibility
Definition
config.h:61
CoreGraphics::VertexShaderVisibility
@ VertexShaderVisibility
Definition
config.h:62
CoreGraphics::RayMissShaderVisibility
@ RayMissShaderVisibility
Definition
config.h:74
CoreGraphics::RayGenerationShaderVisibility
@ RayGenerationShaderVisibility
Definition
config.h:71
CoreGraphics::HullShaderVisibility
@ HullShaderVisibility
Definition
config.h:63
CoreGraphics::ComputeShaderVisibility
@ ComputeShaderVisibility
Definition
config.h:70
CoreGraphics::TaskShaderVisibility
@ TaskShaderVisibility
Definition
config.h:68
CoreGraphics::MeshShaderVisibility
@ MeshShaderVisibility
Definition
config.h:69
CoreGraphics::CallableShaderVisibility
@ CallableShaderVisibility
Definition
config.h:76
CoreGraphics::RayAnyHitShaderVisibility
@ RayAnyHitShaderVisibility
Definition
config.h:72
CoreGraphics::GeometryShaderVisibility
@ GeometryShaderVisibility
Definition
config.h:65
CoreGraphics::RayIntersectionShaderVisibility
@ RayIntersectionShaderVisibility
Definition
config.h:75
CoreGraphics::DomainShaderVisibility
@ DomainShaderVisibility
Definition
config.h:64
CoreGraphics::RayClosestHitShaderVisibility
@ RayClosestHitShaderVisibility
Definition
config.h:73
CoreGraphics::AllVisibility
@ AllVisibility
Definition
config.h:77
CoreGraphics::PixelShaderVisibility
@ PixelShaderVisibility
Definition
config.h:66
CoreGraphics::PipelineStageWrites
bool PipelineStageWrites(const PipelineStage stage)
Definition
config.h:291
CoreGraphics::PipelineStageFromString
PipelineStage PipelineStageFromString(const Util::String &str)
Definition
config.h:247
CoreGraphics::ShaderPipeline
ShaderPipeline
Definition
config.h:111
CoreGraphics::ComputePipeline
@ ComputePipeline
Definition
config.h:114
CoreGraphics::InvalidPipeline
@ InvalidPipeline
Definition
config.h:112
CoreGraphics::GraphicsPipeline
@ GraphicsPipeline
Definition
config.h:113
CoreGraphics::RayTracingPipeline
@ RayTracingPipeline
Definition
config.h:115
CoreGraphics::ImageBits
ImageBits
Definition
config.h:82
CoreGraphics::ImageBits::Auto
@ Auto
Definition
config.h:84
CoreGraphics::ImageBits::Plane2Bits
@ Plane2Bits
Definition
config.h:91
CoreGraphics::ImageBits::Plane0Bits
@ Plane0Bits
Definition
config.h:89
CoreGraphics::ImageBits::ColorBits
@ ColorBits
Definition
config.h:85
CoreGraphics::ImageBits::StencilBits
@ StencilBits
Definition
config.h:87
CoreGraphics::BarrierDomain
BarrierDomain
Definition
config.h:186
CoreGraphics::BarrierDomain::Global
@ Global
Definition
config.h:187
CoreGraphics::PipelineStage
PipelineStage
Definition
config.h:192
CoreGraphics::PipelineStage::VertexShaderWrite
@ VertexShaderWrite
Definition
config.h:204
CoreGraphics::PipelineStage::Indirect
@ Indirect
Definition
config.h:196
CoreGraphics::PipelineStage::HullShaderWrite
@ HullShaderWrite
Definition
config.h:206
CoreGraphics::PipelineStage::AllShadersWrite
@ AllShadersWrite
Definition
config.h:218
CoreGraphics::PipelineStage::InputAttachment
@ InputAttachment
Definition
config.h:201
CoreGraphics::PipelineStage::Bottom
@ Bottom
Definition
config.h:195
CoreGraphics::PipelineStage::ColorWrite
@ ColorWrite
Definition
config.h:220
CoreGraphics::PipelineStage::TaskShaderRead
@ TaskShaderRead
Definition
config.h:225
CoreGraphics::PipelineStage::MeshShaderWrite
@ MeshShaderWrite
Definition
config.h:228
CoreGraphics::PipelineStage::GeometryShaderWrite
@ GeometryShaderWrite
Definition
config.h:210
CoreGraphics::PipelineStage::AccelerationStructureRead
@ AccelerationStructureRead
Definition
config.h:235
CoreGraphics::PipelineStage::HostWrite
@ HostWrite
Definition
config.h:232
CoreGraphics::PipelineStage::VertexShaderRead
@ VertexShaderRead
Definition
config.h:203
CoreGraphics::PipelineStage::MemoryRead
@ MemoryRead
Definition
config.h:233
CoreGraphics::PipelineStage::TaskShaderWrite
@ TaskShaderWrite
Definition
config.h:226
CoreGraphics::PipelineStage::MemoryWrite
@ MemoryWrite
Definition
config.h:234
CoreGraphics::PipelineStage::HullShaderRead
@ HullShaderRead
Definition
config.h:205
CoreGraphics::PipelineStage::GeometryShaderRead
@ GeometryShaderRead
Definition
config.h:209
CoreGraphics::PipelineStage::ImageInitial
@ ImageInitial
Definition
config.h:237
CoreGraphics::PipelineStage::UniformGraphics
@ UniformGraphics
Definition
config.h:199
CoreGraphics::PipelineStage::RayTracingShaderWrite
@ RayTracingShaderWrite
Definition
config.h:224
CoreGraphics::PipelineStage::ComputeShaderWrite
@ ComputeShaderWrite
Definition
config.h:216
CoreGraphics::PipelineStage::Index
@ Index
Definition
config.h:197
CoreGraphics::PipelineStage::ColorRead
@ ColorRead
Definition
config.h:219
CoreGraphics::PipelineStage::HostRead
@ HostRead
Definition
config.h:231
CoreGraphics::PipelineStage::Top
@ Top
Definition
config.h:194
CoreGraphics::PipelineStage::DepthStencilRead
@ DepthStencilRead
Definition
config.h:221
CoreGraphics::PipelineStage::AllShadersRead
@ AllShadersRead
Definition
config.h:217
CoreGraphics::PipelineStage::DepthStencilWrite
@ DepthStencilWrite
Definition
config.h:222
CoreGraphics::PipelineStage::DomainShaderWrite
@ DomainShaderWrite
Definition
config.h:208
CoreGraphics::PipelineStage::Vertex
@ Vertex
Definition
config.h:198
CoreGraphics::PipelineStage::GraphicsShadersWrite
@ GraphicsShadersWrite
Definition
config.h:214
CoreGraphics::PipelineStage::TransferRead
@ TransferRead
Definition
config.h:229
CoreGraphics::PipelineStage::AccelerationStructureWrite
@ AccelerationStructureWrite
Definition
config.h:236
CoreGraphics::PipelineStage::InvalidStage
@ InvalidStage
Definition
config.h:193
CoreGraphics::PipelineStage::UniformCompute
@ UniformCompute
Definition
config.h:200
CoreGraphics::PipelineStage::GraphicsShadersRead
@ GraphicsShadersRead
Definition
config.h:213
CoreGraphics::PipelineStage::ReadOnlyAccess
@ ReadOnlyAccess
Definition
config.h:202
CoreGraphics::PipelineStage::PixelShaderWrite
@ PixelShaderWrite
Definition
config.h:212
CoreGraphics::PipelineStage::MeshShaderRead
@ MeshShaderRead
Definition
config.h:227
CoreGraphics::PipelineStage::Present
@ Present
Definition
config.h:238
CoreGraphics::PipelineStage::RayTracingShaderRead
@ RayTracingShaderRead
Definition
config.h:223
CoreGraphics::PipelineStage::DomainShaderRead
@ DomainShaderRead
Definition
config.h:207
CoreGraphics::PipelineStage::PixelShaderRead
@ PixelShaderRead
Definition
config.h:211
CoreGraphics::PipelineStage::ComputeShaderRead
@ ComputeShaderRead
Definition
config.h:215
CoreGraphics::PipelineStage::TransferWrite
@ TransferWrite
Definition
config.h:230
CoreGraphics::ConvertToQueue
PipelineStage ConvertToQueue(const CoreGraphics::PipelineStage sourceStage, const CoreGraphics::QueueType queue)
Demotes an input source stage to a QueueType.
Definition
config.h:320
CoreGraphics::QueueTypeFromString
QueueType QueueTypeFromString(const Util::String &str)
Definition
config.h:154
CoreGraphics::ShaderVisibilityFromString
ShaderVisibility ShaderVisibilityFromString(const Util::String &str)
Definition
config.h:122
Resources::None
@ None
Definition
resourceloader.h:51
System::__ImplementEnumBitOperators
__ImplementEnumBitOperators(System::Cpu::CoreId)
rttimacros.h
This defines the macros for Nebula's RTTI mechanism (__DeclareClass, __ImplementClass,...
string.h
CoreGraphics::InputAssemblyKey::[struct].__unnamed0__::primRestart
bool primRestart
CoreGraphics::InputAssemblyKey::[struct].__unnamed0__::topo
uint topo
types.h
uint
unsigned int uint
Definition
types.h:33
IndexT
int IndexT
Definition
types.h:41
CoreGraphics::InputAssemblyKey
Definition
config.h:24
CoreGraphics::InputAssemblyKey::key
byte key
Definition
config.h:30
CoreGraphics::InputAssemblyKey::operator=
void operator=(const InputAssemblyKey &rhs)
Definition
config.h:32
CoreGraphics::InputAssemblyKey::operator<
bool operator<(const InputAssemblyKey &rhs) const
Definition
config.h:36
CoreGraphics::InputAssemblyKey::operator!=
bool operator!=(const InputAssemblyKey &rhs) const
Definition
config.h:34
CoreGraphics::InputAssemblyKey::operator==
bool operator==(const InputAssemblyKey &rhs) const
Definition
config.h:33
CoreGraphics::InputAssemblyKey::operator>
bool operator>(const InputAssemblyKey &rhs) const
Definition
config.h:35
code
render
coregraphics
config.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.