Nebula
Loading...
Searching...
No Matches
commandbuffer.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "ids/id.h"
11#include "util/stack.h"
12#include "coregraphics/config.h"
14#include "util/fixedarray.h"
15#include "coregraphics/config.h"
16#include "math/rectangle.h"
18#include "ids/idallocator.h"
19#include "coregraphics/memory.h"
20#include "math/vec4.h"
21
22namespace CoreGraphics
23{
24
25struct BufferId;
26struct TextureId;
27struct ResourceTableId;
28struct VertexLayoutId;
29class PrimitiveGroup;
30struct ShaderProgramId;
31struct BarrierId;
32struct EventId;
33struct PassId;
34struct RenderPassId;
35struct PipelineId;
36struct BlasId;
37struct TlasId;
38
42
44{
46 , Occlusion = 0x1
47 , Statistics = 0x2
48 , Timestamps = 0x4
49 , NumBits = 3
50};
53
65
68
77
79{
80 size_t offset;
81 uint rowLength = 0; // for buffer to image copies
82 uint imageHeight = 0; // for buffer to image copies
83};
84
85#ifdef NEBULA_ENABLE_PROFILING
86struct FrameProfilingMarker
87{
89 Math::vec4 color;
90 Util::String name;
91 IndexT gpuBegin;
92 IndexT gpuEnd;
93 uint64_t start;
94 uint64_t duration;
95 uint64_t cpuBegin;
97};
98#endif
99
100//------------------------------------------------------------------------------
104
106{
107#if NEBULA_GRAPHICS_DEBUG
108 const char* name;
109#endif
111 bool resetable : 1; // Allow buffers created from this pool to be resetable
112 bool shortlived : 1; // Hint if the buffers allocated from this pool will be short lived
113
115 :
117 name(nullptr),
118 #endif
120 resetable(false),
121 shortlived(false)
122 {};
123};
124
126const CmdBufferPoolId CreateCmdBufferPool(const CmdBufferPoolCreateInfo& info);
128void DestroyCmdBufferPool(const CmdBufferPoolId pool);
129
131{
132 bool subBuffer : 1; // create buffer to be executed on another command buffer (subBuffer must be 0 on the other buffer)
136
137#if NEBULA_GRAPHICS_DEBUG
138 const char* name;
139#endif
140
142 : subBuffer(false)
143 , pool(InvalidCmdBufferPoolId)
147 , name(nullptr)
148#endif
149 {};
150};
151
152#if NEBULA_GRAPHICS_DEBUG
153#define NEBULA_GRAPHICS_DEBUG_SET_NAME(cmd, x) cmd.name = x
154#else
155#define NEBULA_GRAPHICS_DEBUG_SET_NAME(cmd, x)
156#endif
157
159{
160 bool submitOnce : 1;
163};
164
166{
167 bool allowRelease : 1; // release resources when clearing (don't use if buffer converges in size)
168};
169
175
178
182void DestroyCmdBuffer(const CmdBufferId id);
185
187void CmdBeginRecord(const CmdBufferId id, const CmdBufferBeginInfo& info);
189void CmdEndRecord(const CmdBufferId id);
190
192void CmdReset(const CmdBufferId id, const CmdBufferClearInfo& info);
193
195void CmdSetVertexBuffer(const CmdBufferId id, IndexT streamIndex, const CoreGraphics::BufferId& buffer, size_t bufferOffset);
199void CmdSetIndexBuffer(const CmdBufferId id, const IndexType::Code indexType, const CoreGraphics::BufferId& buffer, size_t bufferOffset);
202
204void CmdSetShaderProgram(const CmdBufferId id, const CoreGraphics::ShaderProgramId pro, const CoreGraphics::QueueType queue, bool bindGlobals = true);
206void CmdSetResourceTable(const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, const Util::FixedArray<uint, true>& offsets = nullptr);
208void CmdSetResourceTable(const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, uint32_t numOffsets, uint32_t* offsets);
210void CmdPushConstants(const CmdBufferId id, ShaderPipeline pipeline, uint offset, uint size, const void* data);
214void CmdSetGraphicsPipeline(const CmdBufferId buf, const PipelineId pipeline);
216void CmdSetRayTracingPipeline(const CmdBufferId buf, const PipelineId pipeline, const CoreGraphics::QueueType queue);
217
219void CmdBarrier(
220 const CmdBufferId id,
224 const IndexT fromQueue = InvalidIndex,
225 const IndexT toQueue = InvalidIndex,
226 const char* name = nullptr
227);
229void CmdBarrier(
230 const CmdBufferId id,
235 const IndexT fromQueue = InvalidIndex,
236 const IndexT toQueue = InvalidIndex,
237 const char* name = nullptr
238);
240void CmdBarrier(
241 const CmdBufferId id,
246 const IndexT fromQueue = InvalidIndex,
247 const IndexT toQueue = InvalidIndex,
248 const char* name = nullptr
249);
251void CmdBarrier(
252 const CmdBufferId id,
257 const IndexT fromQueue = InvalidIndex,
258 const IndexT toQueue = InvalidIndex,
259 const char* name = nullptr
260);
262void CmdBarrier(
263 const CmdBufferId id,
270 const IndexT fromQueue = InvalidIndex,
271 const IndexT toQueue = InvalidIndex,
272 const char* name = nullptr
273);
274
276void CmdHandover(
277 const CmdBufferId from,
278 const CmdBufferId to,
283 const IndexT fromQueue = InvalidIndex,
284 const IndexT toQueue = InvalidIndex,
285 const char* name = nullptr
286);
287
288
290void CmdBarrier(const CmdBufferId id, const CoreGraphics::BarrierId barrier);
294void CmdWaitEvent(
295 const CmdBufferId id
296 , const EventId ev
297 , const CoreGraphics::PipelineStage waitStage
298 , const CoreGraphics::PipelineStage signalStage
299);
302
304void CmdBeginPass(const CmdBufferId id, const CoreGraphics::PassId pass);
306void CmdNextSubpass(const CmdBufferId id);
308void CmdEndPass(const CmdBufferId id);
312void CmdEndRenderPass(const CmdBufferId id);
314void CmdDraw(const CmdBufferId id, const CoreGraphics::PrimitiveGroup& pg);
316void CmdDraw(const CmdBufferId id, SizeT numInstances, const CoreGraphics::PrimitiveGroup& pg);
318void CmdDraw(const CmdBufferId id, SizeT numInstances, IndexT baseInstance, const CoreGraphics::PrimitiveGroup& pg);
320void CmdDrawIndirect(const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride);
322void CmdDrawIndirectIndexed(const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride);
324void CmdDispatch(const CmdBufferId id, int dimX, int dimY, int dimZ);
326void CmdResolve(const CmdBufferId id, const CoreGraphics::TextureId source, const CoreGraphics::TextureCopy sourceCopy, const CoreGraphics::TextureId dest, const CoreGraphics::TextureCopy destCopy);
328void CmdBuildBlas(const CmdBufferId id, const CoreGraphics::BlasId blas);
330void CmdBuildTlas(const CmdBufferId id, const CoreGraphics::TlasId tlas);
331
333{
334 struct Entry
335 {
336 CoreGraphics::DeviceAddress baseAddress;
337 CoreGraphics::DeviceSize entrySize;
339 };
340
342};
343
344void CmdRaysDispatch(const CmdBufferId id, const RayDispatchTable& table, int dimX, int dimY, int dimZ);
346void CmdDrawMeshlets(const CmdBufferId id, int dimX, int dimY, int dimZ);
347
349void CmdCopy(
350 const CmdBufferId id
351 , const CoreGraphics::TextureId fromTexture
353 , const CoreGraphics::TextureId toTexture
355);
357void CmdCopy(
358 const CmdBufferId id
359 , const CoreGraphics::TextureId fromTexture
361 , const CoreGraphics::BufferId toBuffer
363);
365void CmdCopy(
366 const CmdBufferId id
367 , const CoreGraphics::BufferId fromBuffer
369 , const CoreGraphics::BufferId toBuffer
371 , const size_t size
372);
374void CmdCopy(
375 const CmdBufferId id
376 , const CoreGraphics::BufferId fromBuffer
378 , const CoreGraphics::TextureId toTexture
380);
382void CmdBlit(
383 const CmdBufferId id
384 , const CoreGraphics::TextureId fromTexture
385 , const CoreGraphics::TextureCopy& from
386 , const CoreGraphics::TextureId toTexture
387 , const CoreGraphics::TextureCopy& to
388);
389
391void CmdSetViewports(const CmdBufferId id, const Util::FixedArray<Math::rectangle<int>>& viewports);
395void CmdSetViewport(const CmdBufferId id, const Math::rectangle<int>& rect, int index);
397void CmdSetScissorRect(const CmdBufferId id, const Math::rectangle<int>& rect, int index);
399void CmdSetStencilRef(const CmdBufferId id, const uint frontRef, const uint backRef);
401void CmdSetStencilReadMask(const CmdBufferId id, const uint readMask);
403void CmdSetStencilWriteMask(const CmdBufferId id, const uint writeMask);
404
406void CmdUpdateBuffer(
407 const CmdBufferId id
408 , const CoreGraphics::BufferId buffer
409 , size_t offset
410 , size_t size
411 , const void* data
412);
413
418
423
424#if NEBULA_GRAPHICS_DEBUG
426void CmdBeginMarker(const CmdBufferId id, const Math::vec4& color, const char* name);
428void CmdEndMarker(const CmdBufferId id);
430void CmdInsertMarker(const CmdBufferId id, const Math::vec4& color, const char* name);
431#else
432inline void CmdBeginMarker(const CmdBufferId id, const Math::vec4& color, const char* name){}
433inline void CmdEndMarker(const CmdBufferId id){}
434inline void CmdInsertMarker(const CmdBufferId id, const Math::vec4& color, const char* name){}
435#endif
436
438void CmdFinishQueries(const CmdBufferId id);
439
440#if NEBULA_ENABLE_PROFILING
442bool CmdRecordsMarkers(const CmdBufferId id);
444Util::Array<CoreGraphics::FrameProfilingMarker>&& CmdMoveProfilingMarkers(const CmdBufferId id);
446uint CmdGetMarkerOffset(const CmdBufferId id);
447#endif
448
449#if NEBULA_GRAPHICS_DEBUG
450struct CmdMarkerScope
451{
452 const CmdBufferId id;
453
454 CmdMarkerScope(const CmdBufferId id, const Math::vec4& color, const char* name)
455 : id(id)
456 {
457 CoreGraphics::CmdBeginMarker(id, color, name);
458 }
459 ~CmdMarkerScope()
460 {
462 }
463};
464
465#endif
466
467#if NEBULA_GRAPHICS_DEBUG
468 #define N_CMD_SCOPE(buf, color, name) CoreGraphics::CmdMarkerScope __##cmdscope(buf, color, name)
469#else
470 #define N_CMD_SCOPE(x, y, z)
471#endif
472
473
474} // namespace CoreGraphics
475
Code
index types enum
Definition indextype.h:22
Defines a group of primitives as a subset of a vertex buffer and index buffer plus the primitive topo...
Definition primitivegroup.h:20
Code
enumeration
Definition primitivetopology.h:23
A 2d rectangle class.
Definition rectangle.h:20
Nebula's dynamic array class.
Definition array.h:60
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
Nebula's stack class (a FILO container).
Definition stack.h:19
#define _DECL_ACQUIRE_RELEASE(ty)
Definition idallocator.h:87
#define ID_24_8_TYPE(x)
Definition id.h:132
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition accelerationstructure.h:24
void CmdSetIndexBuffer(const CmdBufferId id, const IndexType::Code indexType, const CoreGraphics::BufferId &buffer, size_t bufferOffset)
Set index buffer.
Definition vkcommandbuffer.cc:397
void CmdStartPipelineQueries(const CmdBufferId id)
Start pipeline statistics.
Definition vkcommandbuffer.cc:1589
const CmdBufferId CreateCmdBuffer(const CmdBufferCreateInfo &info)
create new command buffer
Definition vkcommandbuffer.cc:154
void CmdSetStencilRef(const CmdBufferId id, const uint frontRef, const uint backRef)
Set the stencil reference values.
Definition vkcommandbuffer.cc:1513
void CmdDispatch(const CmdBufferId id, int dimX, int dimY, int dimZ)
Perform computation.
Definition vkcommandbuffer.cc:1156
void CmdSetViewport(const CmdBufferId id, const Math::rectangle< int > &rect, int index)
Sets a viewport for a certain index.
Definition vkcommandbuffer.cc:1477
void CmdSetVertexBuffer(const CmdBufferId id, IndexT streamIndex, const CoreGraphics::BufferId &buffer, size_t bufferOffset)
Set vertex buffer.
Definition vkcommandbuffer.cc:363
void CmdUpdateBuffer(const CmdBufferId id, const CoreGraphics::BufferId buffer, size_t offset, size_t size, const void *data)
Update buffer using memory pointer in command buffer.
Definition vkcommandbuffer.cc:1551
void CmdBuildTlas(const CmdBufferId id, const CoreGraphics::TlasId tlas)
Build TLAS.
Definition vkcommandbuffer.cc:1209
void CmdDraw(const CmdBufferId id, const CoreGraphics::PrimitiveGroup &pg)
Draw primitives.
Definition vkcommandbuffer.cc:1097
void CmdDrawMeshlets(const CmdBufferId id, int dimX, int dimY, int dimZ)
Draw meshlets.
Definition vkcommandbuffer.cc:1258
void CmdPushConstants(const CmdBufferId id, ShaderPipeline pipeline, uint offset, uint size, const void *data)
Set push constants.
Definition vkcommandbuffer.cc:565
void CmdBeginPass(const CmdBufferId id, const CoreGraphics::PassId pass)
Begin pass.
Definition vkcommandbuffer.cc:1023
void CmdSetResourceTable(const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, const Util::FixedArray< uint, true > &offsets=nullptr)
Set resource table.
Definition vkcommandbuffer.cc:532
void CmdCopy(const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &from, const CoreGraphics::TextureId toTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &to)
Copy between textures.
Definition vkcommandbuffer.cc:1268
void CmdSetPrimitiveTopology(const CmdBufferId id, const CoreGraphics::PrimitiveTopology::Code topo)
Set the type of topology used.
Definition vkcommandbuffer.cc:431
QueueType
Definition config.h:40
@ InvalidQueueType
Definition config.h:48
@ GraphicsQueueType
Definition config.h:41
void CmdSetStencilWriteMask(const CmdBufferId id, const uint writeMask)
Set the stencil write mask.
Definition vkcommandbuffer.cc:1541
void CmdEndOcclusionQueries(const CmdBufferId id)
End occlusion queries.
Definition vkcommandbuffer.cc:1575
void CmdWaitEvent(const CmdBufferId id, const EventId ev, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage)
Signals an event.
Definition vkcommandbuffer.cc:989
void CmdSetStencilReadMask(const CmdBufferId id, const uint readMask)
Set the stencil read mask (compare mask(.
Definition vkcommandbuffer.cc:1531
void CmdBlit(const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const CoreGraphics::TextureCopy &from, const CoreGraphics::TextureId toTexture, const CoreGraphics::TextureCopy &to)
Blit textures.
Definition vkcommandbuffer.cc:1402
void CmdBuildBlas(const CmdBufferId id, const CoreGraphics::BlasId blas)
Build BLAS.
Definition vkcommandbuffer.cc:1196
void CmdSetViewports(const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &viewports)
Set viewport array.
Definition vkcommandbuffer.cc:1437
void CmdSetScissorRect(const CmdBufferId id, const Math::rectangle< int > &rect, int index)
Sets a scissor rect for a certain index.
Definition vkcommandbuffer.cc:1496
void CmdDrawIndirect(const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride)
Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each...
Definition vkcommandbuffer.cc:1136
CmdPipelineBuildBits
Definition commandbuffer.h:55
@ ShaderInfoSet
Definition commandbuffer.h:57
@ PipelineBuilt
Definition commandbuffer.h:63
@ AllInfoSet
Definition commandbuffer.h:61
@ FramebufferLayoutInfoSet
Definition commandbuffer.h:58
@ InputAssemblyInfoSet
Definition commandbuffer.h:59
@ NoInfoSet
Definition commandbuffer.h:56
void CmdBeginRecord(const CmdBufferId id, const CmdBufferBeginInfo &info)
begin recording to command buffer
Definition vkcommandbuffer.cc:309
const CmdBufferPoolId CreateCmdBufferPool(const CmdBufferPoolCreateInfo &info)
create new command buffer pool
Definition vkcommandbuffer.cc:104
void CmdEndRenderPass(const CmdBufferId id)
End render pass.
Definition vkcommandbuffer.cc:1085
void CmdReset(const CmdBufferId id, const CmdBufferClearInfo &info)
clear the command buffer to be empty
Definition vkcommandbuffer.cc:351
void CmdEndRecord(const CmdBufferId id)
end recording command buffer, it may be submitted after this is done
Definition vkcommandbuffer.cc:341
void CmdHandover(const CmdBufferId from, const CmdBufferId to, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, const Util::FixedArray< TextureBarrierInfo, true > &textures, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
Handover.
Definition vkcommandbuffer.cc:825
void DeferredDestroyCmdBuffer(const CmdBufferId id)
Issue command buffer for deletion (happens when GPU is finished with it).
Definition vkcommandbuffer.cc:280
void CmdSetScissors(const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &rects)
Set scissor array.
Definition vkcommandbuffer.cc:1458
void CmdResolve(const CmdBufferId id, const CoreGraphics::TextureId source, const CoreGraphics::TextureCopy sourceCopy, const CoreGraphics::TextureId dest, const CoreGraphics::TextureCopy destCopy)
Resolve MSAA source to non-MSAA target.
Definition vkcommandbuffer.cc:1166
void CmdEndMarker(const CmdBufferId id)
Definition commandbuffer.h:433
void CmdStartOcclusionQueries(const CmdBufferId id)
Start occlusion queries.
Definition vkcommandbuffer.cc:1561
ShaderPipeline
Definition config.h:111
void CmdNextSubpass(const CmdBufferId id)
Progress to next subpass.
Definition vkcommandbuffer.cc:1047
void DestroyCmdBuffer(const CmdBufferId id)
Destroy the command buffer immediately (use with caution as buffer might be in use by GPU).
Definition vkcommandbuffer.cc:249
void CmdFinishQueries(const CmdBufferId id)
Finish queries.
Definition vkcommandbuffer.cc:1747
void CmdDrawIndirectIndexed(const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride)
Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each...
Definition vkcommandbuffer.cc:1146
void CmdSetGraphicsPipeline(const CmdBufferId id)
Create (if necessary) and bind pipeline based on state thus far.
Definition vkcommandbuffer.cc:610
void CmdResetEvent(const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage)
Signals an event.
Definition vkcommandbuffer.cc:1012
ImageBits
Definition config.h:82
@ ColorBits
Definition config.h:85
CmdBufferQueryBits
Definition commandbuffer.h:44
@ Occlusion
Definition commandbuffer.h:46
@ NoQueries
Definition commandbuffer.h:45
@ Statistics
Definition commandbuffer.h:47
@ NumBits
Definition commandbuffer.h:49
@ Timestamps
Definition commandbuffer.h:48
void CmdRaysDispatch(const CmdBufferId id, const RayDispatchTable &table, int dimX, int dimY, int dimZ)
Fire rays.
Definition vkcommandbuffer.cc:1222
void CmdEndPipelineQueries(const CmdBufferId id)
End pipeline statistics.
Definition vkcommandbuffer.cc:1603
void CmdSignalEvent(const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage)
Signals an event.
Definition vkcommandbuffer.cc:978
void CmdBeginRenderPass(const CmdBufferId id, const CoreGraphics::RenderPassId pass)
Begin render pass.
Definition vkcommandbuffer.cc:1071
void CmdSetVertexLayout(const CmdBufferId id, const CoreGraphics::VertexLayoutId &vl)
Set vertex layout.
Definition vkcommandbuffer.cc:379
BarrierDomain
Definition config.h:186
void CmdSetShaderProgram(const CmdBufferId id, const CoreGraphics::ShaderProgramId pro, const CoreGraphics::QueueType queue, bool bindGlobals=true)
Set shader program.
Definition vkcommandbuffer.cc:451
PipelineStage
Definition config.h:192
void CmdSetRayTracingPipeline(const CmdBufferId buf, const PipelineId pipeline, const CoreGraphics::QueueType queue)
Set ray tracing pipeline.
Definition vkcommandbuffer.cc:683
void DestroyCmdBufferPool(const CmdBufferPoolId pool)
destroy command buffer pool
Definition vkcommandbuffer.cc:144
void CmdInsertMarker(const CmdBufferId id, const Math::vec4 &color, const char *name)
Definition commandbuffer.h:434
void CmdEndPass(const CmdBufferId id)
End pass.
Definition vkcommandbuffer.cc:1059
void CmdBarrier(const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const IndexT fromQueue, const IndexT toQueue, const char *name)
Insert pipeline barrier.
Definition commandbuffer.cc:14
void CmdBeginMarker(const CmdBufferId id, const Math::vec4 &color, const char *name)
Definition commandbuffer.h:432
Compile time configuration options for the CoreGraphics subsystem.
#define NEBULA_GRAPHICS_DEBUG
Definition config.h:397
Graphics memory interface.
#define __ImplementEnumComparisonOperators(type)
#define __ImplementEnumBitOperators(type)
Definition barrier.h:21
Definition accelerationstructure.h:48
Definition barrier.h:140
Definition commandbuffer.h:79
uint rowLength
Definition commandbuffer.h:81
size_t offset
Definition commandbuffer.h:80
uint imageHeight
Definition commandbuffer.h:82
Definition buffer.h:23
Definition commandbuffer.h:159
bool submitDuringPass
Definition commandbuffer.h:161
bool submitOnce
Definition commandbuffer.h:160
bool resubmittable
Definition commandbuffer.h:162
Definition commandbuffer.h:166
bool allowRelease
Definition commandbuffer.h:167
Definition commandbuffer.h:131
CmdBufferQueryBits queryTypes
Definition commandbuffer.h:135
bool subBuffer
Definition commandbuffer.h:132
CmdBufferPoolId pool
Definition commandbuffer.h:133
CmdBufferCreateInfo()
Definition commandbuffer.h:141
QueueType usage
Definition commandbuffer.h:134
Definition commandbuffer.h:176
Definition commandbuffer.h:171
Util::Stack< CoreGraphics::FrameProfilingMarker > markerStack
Definition commandbuffer.h:172
Util::Array< CoreGraphics::FrameProfilingMarker > finishedMarkers
Definition commandbuffer.h:173
CoreGraphics::QueueType queue
Definition commandbuffer.h:110
bool resetable
Definition commandbuffer.h:111
CmdBufferPoolCreateInfo()
Definition commandbuffer.h:114
bool shortlived
Definition commandbuffer.h:112
Definition commandbuffer.h:103
Definition event.h:24
Definition pass.h:28
Definition pipeline.h:16
Definition commandbuffer.h:335
ubyte numEntries
Definition commandbuffer.h:338
CoreGraphics::DeviceAddress baseAddress
Definition commandbuffer.h:336
CoreGraphics::DeviceSize entrySize
Definition commandbuffer.h:337
Definition commandbuffer.h:333
Entry missEntry
Definition commandbuffer.h:341
Entry hitEntry
Definition commandbuffer.h:341
Entry genEntry
Definition commandbuffer.h:341
Entry callableEntry
Definition commandbuffer.h:341
Definition pass.h:29
Definition resourcetable.h:95
Definition barrier.h:134
struct for texture copies
Definition commandbuffer.h:71
ImageBits bits
Definition commandbuffer.h:75
uint mip
Definition commandbuffer.h:73
Math::rectangle< SizeT > region
Definition commandbuffer.h:72
uint layer
Definition commandbuffer.h:74
texture type
Definition texture.h:25
Definition accelerationstructure.h:98
Definition vertexlayout.h:16
A 4D vector.
Definition vec4.h:24
Nebula's universal string class.
Definition String.cs:8
static const int InvalidIndex
Definition types.h:47
#define N_BIT(x)
Definition types.h:52
unsigned char ubyte
Definition types.h:36
int SizeT
Definition types.h:42
unsigned int uint
Definition types.h:33
int IndexT
Definition types.h:41