16#define NEBULA_WHOLE_BUFFER_SIZE (~0ull)
17#define NEBULA_ALL_MIPS (-1)
18#define NEBULA_ALL_LAYERS (-1)
127 for (i = 0; i < components.
Size(); i++)
319 bool isGraphics =
false;
380#define SHADER_POSTEFFECT_DEFAULT_FEATURE_MASK "Alt0"
383#define NEBULA_GRAPHICS_DEBUG 1
384#define NEBULA_MARKER_BLUE Math::vec4(0.8f, 0.8f, 1.0f, 1.0f)
385#define NEBULA_MARKER_RED Math::vec4(1.0f, 0.8f, 0.8f, 1.0f)
386#define NEBULA_MARKER_GREEN Math::vec4(0.8f, 1.0f, 0.8f, 1.0f)
387#define NEBULA_MARKER_DARK_GREEN Math::vec4(0.6f, 0.8f, 0.6f, 1.0f)
388#define NEBULA_MARKER_DARK_DARK_GREEN Math::vec4(0.5f, 0.7f, 0.5f, 1.0f)
389#define NEBULA_MARKER_PINK Math::vec4(1.0f, 0.8f, 0.9f, 1.0f)
390#define NEBULA_MARKER_PURPLE Math::vec4(0.9f, 0.7f, 0.9f, 1.0f)
391#define NEBULA_MARKER_ORANGE Math::vec4(1.0f, 0.9f, 0.8f, 1.0f)
392#define NEBULA_MARKER_TURQOISE Math::vec4(0.8f, 0.9f, 1.0f, 1.0f)
393#define NEBULA_MARKER_GRAY Math::vec4(0.9f, 0.9f, 0.9f, 1.0f)
394#define NEBULA_MARKER_BLACK Math::vec4(0.001f)
395#define NEBULA_MARKER_WHITE Math::vec4(1)
397#define NEBULA_MARKER_COMPUTE NEBULA_MARKER_BLUE
398#define NEBULA_MARKER_GRAPHICS NEBULA_MARKER_GREEN
399#define NEBULA_MARKER_TRANSFER NEBULA_MARKER_RED
405 #define COREGRAPHICS_TRIANGLE_FRONT_FACE_CCW (1)
407 #define NEBULA_TICK_GROUP 0
408 #define NEBULA_FRAME_GROUP 1
409 #define NEBULA_PASS_GROUP 2
410 #define NEBULA_BATCH_GROUP 3
411 #define NEBULA_INSTANCE_GROUP 4
412 #define NEBULA_SYSTEM_GROUP 5
413 #define NEBULA_DYNAMIC_OFFSET_GROUP 6
414 #define NEBULA_NUM_GROUPS (NEBULA_DYNAMIC_OFFSET_GROUP + 1)
416 #define MAX_INPUT_ATTACHMENTS 32
418 #define SHADER_MODEL_5 (1)
420 #define NEBULA_VULKAN_DEBUG (1)
422 #define NEBULA_VULKAN_DEBUG (0)
424 #define PROJECTION_HANDEDNESS_LH (0)
426 #define VK_DEVICE_SIZE_CONV(x) uint64_t(x)
428 #define VK_DEVICE_SIZE_CONV(x) uint32_t(x)
Nebula's dynamic array class.
Definition array.h:60
const SizeT Size() const
get number of elements in array
Definition array.h:880
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
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition accelerationstructure.h:24
ImageLayout
Definition config.h:97
@ General
Definition config.h:99
@ ShaderRead
Definition config.h:103
@ ColorRenderTexture
Definition config.h:100
@ TransferSource
Definition config.h:104
@ TransferDestination
Definition config.h:105
@ DepthStencilRead
Definition config.h:102
@ DepthStencilRenderTexture
Definition config.h:101
@ Present
Definition config.h:107
@ Undefined
Definition config.h:98
@ Preinitialized
Definition config.h:106
QueryType
Definition config.h:52
@ TimestampsQueryType
Definition config.h:55
@ NumQueryTypes
Definition config.h:56
@ StatisticsQueryType
Definition config.h:54
@ OcclusionQueryType
Definition config.h:53
const char * QueueNameFromQueueType(const QueueType type)
Definition config.h:166
QueueType
Definition config.h:40
@ ComputeQueueType
Definition config.h:42
@ NumQueueTypes
Definition config.h:46
@ InvalidQueueType
Definition config.h:48
@ SparseQueueType
Definition config.h:44
@ GraphicsQueueType
Definition config.h:41
@ TransferQueueType
Definition config.h:43
ShaderVisibility
Definition config.h:60
@ AllGraphicsVisibility
Definition config.h:67
@ InvalidVisibility
Definition config.h:61
@ VertexShaderVisibility
Definition config.h:62
@ RayMissShaderVisibility
Definition config.h:74
@ RayGenerationShaderVisibility
Definition config.h:71
@ HullShaderVisibility
Definition config.h:63
@ ComputeShaderVisibility
Definition config.h:70
@ TaskShaderVisibility
Definition config.h:68
@ MeshShaderVisibility
Definition config.h:69
@ CallableShaderVisibility
Definition config.h:76
@ RayAnyHitShaderVisibility
Definition config.h:72
@ GeometryShaderVisibility
Definition config.h:65
@ RayIntersectionShaderVisibility
Definition config.h:75
@ DomainShaderVisibility
Definition config.h:64
@ RayClosestHitShaderVisibility
Definition config.h:73
@ AllVisibility
Definition config.h:77
@ PixelShaderVisibility
Definition config.h:66
bool PipelineStageWrites(const PipelineStage stage)
Definition config.h:290
PipelineStage PipelineStageFromString(const Util::String &str)
Definition config.h:246
uint64 ConstantBufferOffset
Definition config.h:21
ShaderPipeline
Definition config.h:111
@ ComputePipeline
Definition config.h:114
@ InvalidPipeline
Definition config.h:112
@ GraphicsPipeline
Definition config.h:113
@ RayTracingPipeline
Definition config.h:115
ImageBits
Definition config.h:82
@ Auto
Definition config.h:84
@ Plane2Bits
Definition config.h:91
@ DepthBits
Definition config.h:86
@ Plane1Bits
Definition config.h:90
@ MetaBits
Definition config.h:88
@ Plane0Bits
Definition config.h:89
@ ColorBits
Definition config.h:85
@ StencilBits
Definition config.h:87
BarrierDomain
Definition config.h:185
@ Global
Definition config.h:186
@ Pass
Definition config.h:187
PipelineStage
Definition config.h:191
@ VertexShaderWrite
Definition config.h:203
@ Indirect
Definition config.h:195
@ HullShaderWrite
Definition config.h:205
@ AllShadersWrite
Definition config.h:217
@ InputAttachment
Definition config.h:200
@ Bottom
Definition config.h:194
@ ColorWrite
Definition config.h:219
@ TaskShaderRead
Definition config.h:224
@ MeshShaderWrite
Definition config.h:227
@ GeometryShaderWrite
Definition config.h:209
@ AccelerationStructureRead
Definition config.h:234
@ HostWrite
Definition config.h:231
@ VertexShaderRead
Definition config.h:202
@ MemoryRead
Definition config.h:232
@ TaskShaderWrite
Definition config.h:225
@ MemoryWrite
Definition config.h:233
@ HullShaderRead
Definition config.h:204
@ GeometryShaderRead
Definition config.h:208
@ ImageInitial
Definition config.h:236
@ UniformGraphics
Definition config.h:198
@ RayTracingShaderWrite
Definition config.h:223
@ ComputeShaderWrite
Definition config.h:215
@ Index
Definition config.h:196
@ ColorRead
Definition config.h:218
@ HostRead
Definition config.h:230
@ Top
Definition config.h:193
@ DepthStencilRead
Definition config.h:220
@ AllShadersRead
Definition config.h:216
@ DepthStencilWrite
Definition config.h:221
@ DomainShaderWrite
Definition config.h:207
@ Vertex
Definition config.h:197
@ GraphicsShadersWrite
Definition config.h:213
@ TransferRead
Definition config.h:228
@ AccelerationStructureWrite
Definition config.h:235
@ InvalidStage
Definition config.h:192
@ UniformCompute
Definition config.h:199
@ GraphicsShadersRead
Definition config.h:212
@ ReadOnlyAccess
Definition config.h:201
@ PixelShaderWrite
Definition config.h:211
@ MeshShaderRead
Definition config.h:226
@ Present
Definition config.h:237
@ RayTracingShaderRead
Definition config.h:222
@ DomainShaderRead
Definition config.h:206
@ PixelShaderRead
Definition config.h:210
@ ComputeShaderRead
Definition config.h:214
@ TransferWrite
Definition config.h:229
PipelineStage ConvertToQueue(const CoreGraphics::PipelineStage sourceStage, const CoreGraphics::QueueType queue)
Demotes an input source stage to a QueueType.
Definition config.h:317
QueueType QueueTypeFromString(const Util::String &str)
Definition config.h:153
ShaderVisibility ShaderVisibilityFromString(const Util::String &str)
Definition config.h:122
static constexpr Id24 Index(const Id32 id)
Definition idgenerationpool.h:70
@ None
Definition resourceloader.h:51
#define __ImplementEnumComparisonOperators(type)
#define __ImplementEnumBitOperators(type)
This defines the macros for Nebula's RTTI mechanism (__DeclareClass, __ImplementClass,...
Nebula's universal string class.
Definition String.cs:8
const char * AsCharPtr() const
return contents as character pointer
Definition string.h:542
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:203
unsigned int uint
Definition types.h:31
uint64_t uint64
Definition types.h:36
int IndexT
Definition types.h:48