|
Nebula
|
#include "ids/id.h"#include "util/stack.h"#include "coregraphics/config.h"#include "coregraphics/primitivetopology.h"#include "util/fixedarray.h"#include "math/rectangle.h"#include "coregraphics/indextype.h"#include "ids/idallocator.h"#include "coregraphics/memory.h"#include "math/vec4.h"Go to the source code of this file.
Classes | |
| struct | CoreGraphics::TextureCopy |
| struct for texture copies More... | |
| struct | CoreGraphics::BufferCopy |
| struct | CoreGraphics::CmdBufferPoolId |
| struct | CoreGraphics::CmdBufferPoolCreateInfo |
| struct | CoreGraphics::CmdBufferCreateInfo |
| struct | CoreGraphics::CmdBufferBeginInfo |
| struct | CoreGraphics::CmdBufferClearInfo |
| struct | CoreGraphics::CmdBufferMarkerBundle |
| struct | CoreGraphics::CmdBufferId |
| struct | CoreGraphics::RayDispatchTable |
| struct | CoreGraphics::RayDispatchTable::Entry |
Namespaces | |
| namespace | CoreGraphics |
| Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH. | |
Macros | |
| #define | NEBULA_GRAPHICS_DEBUG_SET_NAME(cmd, x) |
| #define | N_CMD_SCOPE(x, y, z) |
Enumerations | |
| enum | CoreGraphics::CmdBufferQueryBits { CoreGraphics::NoQueries = 0x0 , CoreGraphics::Occlusion = 0x1 , CoreGraphics::Statistics = 0x2 , CoreGraphics::Timestamps = 0x4 , CoreGraphics::NumBits = 3 } |
| enum class | CoreGraphics::CmdPipelineBuildBits : uint { CoreGraphics::NoInfoSet = 0 , CoreGraphics::ShaderInfoSet = N_BIT(0) , CoreGraphics::FramebufferLayoutInfoSet = N_BIT(1) , CoreGraphics::InputAssemblyInfoSet = N_BIT(2) , CoreGraphics::AllInfoSet = ShaderInfoSet | FramebufferLayoutInfoSet | InputAssemblyInfoSet , CoreGraphics::PipelineBuilt = N_BIT(3) } |
Functions | |
| CoreGraphics::__ImplementEnumBitOperators (CmdBufferQueryBits) | |
| CoreGraphics::__ImplementEnumComparisonOperators (CmdBufferQueryBits) | |
| CoreGraphics::__ImplementEnumBitOperators (CmdPipelineBuildBits) | |
| CoreGraphics::__ImplementEnumComparisonOperators (CmdPipelineBuildBits) | |
| const CmdBufferPoolId | CoreGraphics::CreateCmdBufferPool (const CmdBufferPoolCreateInfo &info) |
| create new command buffer pool | |
| void | CoreGraphics::DestroyCmdBufferPool (const CmdBufferPoolId pool) |
| destroy command buffer pool | |
| CoreGraphics::_DECL_ACQUIRE_RELEASE (CmdBufferId) | |
| const CmdBufferId | CoreGraphics::CreateCmdBuffer (const CmdBufferCreateInfo &info) |
| create new command buffer | |
| void | CoreGraphics::DestroyCmdBuffer (const CmdBufferId id) |
| Destroy the command buffer immediately (use with caution as buffer might be in use by GPU). | |
| void | CoreGraphics::DeferredDestroyCmdBuffer (const CmdBufferId id) |
| Issue command buffer for deletion (happens when GPU is finished with it). | |
| void | CoreGraphics::CmdBeginRecord (const CmdBufferId id, const CmdBufferBeginInfo &info) |
| begin recording to command buffer | |
| void | CoreGraphics::CmdEndRecord (const CmdBufferId id) |
| end recording command buffer, it may be submitted after this is done | |
| void | CoreGraphics::CmdReset (const CmdBufferId id, const CmdBufferClearInfo &info) |
| clear the command buffer to be empty | |
| void | CoreGraphics::CmdSetVertexBuffer (const CmdBufferId id, IndexT streamIndex, const CoreGraphics::BufferId &buffer, size_t bufferOffset) |
| Set vertex buffer. | |
| void | CoreGraphics::CmdSetVertexLayout (const CmdBufferId id, const CoreGraphics::VertexLayoutId &vl) |
| Set vertex layout. | |
| void | CoreGraphics::CmdSetIndexBuffer (const CmdBufferId id, const IndexType::Code indexType, const CoreGraphics::BufferId &buffer, size_t bufferOffset) |
| Set index buffer. | |
| void | CoreGraphics::CmdSetPrimitiveTopology (const CmdBufferId id, const CoreGraphics::PrimitiveTopology::Code topo) |
| Set the type of topology used. | |
| void | CoreGraphics::CmdSetShaderProgram (const CmdBufferId id, const CoreGraphics::ShaderProgramId pro, const CoreGraphics::QueueType queue, bool bindGlobals=true) |
| Set shader program. | |
| void | CoreGraphics::CmdSetResourceTable (const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, const Util::FixedArray< uint, true > &offsets=nullptr) |
| Set resource table. | |
| void | CoreGraphics::CmdSetResourceTable (const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, uint32_t numOffsets, uint32_t *offsets) |
| Set resource table using raw offsets. | |
| void | CoreGraphics::CmdPushConstants (const CmdBufferId id, ShaderPipeline pipeline, uint offset, uint size, const void *data) |
| Set push constants. | |
| void | CoreGraphics::CmdSetGraphicsPipeline (const CmdBufferId id) |
| Create (if necessary) and bind pipeline based on state thus far. | |
| void | CoreGraphics::CmdSetGraphicsPipeline (const CmdBufferId buf, const PipelineId pipeline) |
| Set graphics pipeline directly. | |
| void | CoreGraphics::CmdSetRayTracingPipeline (const CmdBufferId buf, const PipelineId pipeline, const CoreGraphics::QueueType queue) |
| Set ray tracing pipeline. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr) |
| Insert pipeline barrier. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr) |
| Insert pipeline barrier. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr) |
| Insert pipeline barrier. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< AccelerationStructureBarrierInfo, true > &accelerationStructures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr) |
| Insert pipeline barrier. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const Util::FixedArray< AccelerationStructureBarrierInfo, true > &accelerationStructures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr) |
| Insert pipeline barrier. | |
| void | CoreGraphics::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. | |
| void | CoreGraphics::CmdBarrier (const CmdBufferId id, const CoreGraphics::BarrierId barrier) |
| Insert execution barrier. | |
| void | CoreGraphics::CmdSignalEvent (const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage) |
| Signals an event. | |
| void | CoreGraphics::CmdWaitEvent (const CmdBufferId id, const EventId ev, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage) |
| Signals an event. | |
| void | CoreGraphics::CmdResetEvent (const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage) |
| Signals an event. | |
| void | CoreGraphics::CmdBeginPass (const CmdBufferId id, const CoreGraphics::PassId pass) |
| Begin pass. | |
| void | CoreGraphics::CmdNextSubpass (const CmdBufferId id) |
| Progress to next subpass. | |
| void | CoreGraphics::CmdEndPass (const CmdBufferId id) |
| End pass. | |
| void | CoreGraphics::CmdBeginRenderPass (const CmdBufferId id, const CoreGraphics::RenderPassId pass) |
| Begin render pass. | |
| void | CoreGraphics::CmdEndRenderPass (const CmdBufferId id) |
| End render pass. | |
| void | CoreGraphics::CmdDraw (const CmdBufferId id, const CoreGraphics::PrimitiveGroup &pg) |
| Draw primitives. | |
| void | CoreGraphics::CmdDraw (const CmdBufferId id, SizeT numInstances, const CoreGraphics::PrimitiveGroup &pg) |
| Draw primitives instanced. | |
| void | CoreGraphics::CmdDraw (const CmdBufferId id, SizeT numInstances, IndexT baseInstance, const CoreGraphics::PrimitiveGroup &pg) |
| Draw primitives instanced with base instance. | |
| void | CoreGraphics::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 call. | |
| void | CoreGraphics::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 call. | |
| void | CoreGraphics::CmdDispatch (const CmdBufferId id, int dimX, int dimY, int dimZ) |
| Perform computation. | |
| void | CoreGraphics::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. | |
| void | CoreGraphics::CmdBuildBlas (const CmdBufferId id, const CoreGraphics::BlasId blas) |
| Build BLAS. | |
| void | CoreGraphics::CmdBuildTlas (const CmdBufferId id, const CoreGraphics::TlasId tlas) |
| Build TLAS. | |
| void | CoreGraphics::CmdRaysDispatch (const CmdBufferId id, const RayDispatchTable &table, int dimX, int dimY, int dimZ) |
| Fire rays. | |
| void | CoreGraphics::CmdDrawMeshlets (const CmdBufferId id, int dimX, int dimY, int dimZ) |
| Draw meshlets. | |
| void | CoreGraphics::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. | |
| void | CoreGraphics::CmdCopy (const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &from, const CoreGraphics::BufferId toBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &to) |
| Copy from texture to buffer. | |
| void | CoreGraphics::CmdCopy (const CmdBufferId id, const CoreGraphics::BufferId fromBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &from, const CoreGraphics::BufferId toBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &to, const size_t size) |
| Copy between buffers. | |
| void | CoreGraphics::CmdCopy (const CmdBufferId id, const CoreGraphics::BufferId fromBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &from, const CoreGraphics::TextureId toTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &to) |
| Copy from buffer to texture. | |
| void | CoreGraphics::CmdBlit (const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const CoreGraphics::TextureCopy &from, const CoreGraphics::TextureId toTexture, const CoreGraphics::TextureCopy &to) |
| Blit textures. | |
| void | CoreGraphics::CmdSetViewports (const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &viewports) |
| Set viewport array. | |
| void | CoreGraphics::CmdSetScissors (const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &rects) |
| Set scissor array. | |
| void | CoreGraphics::CmdSetViewport (const CmdBufferId id, const Math::rectangle< int > &rect, int index) |
| Sets a viewport for a certain index. | |
| void | CoreGraphics::CmdSetScissorRect (const CmdBufferId id, const Math::rectangle< int > &rect, int index) |
| Sets a scissor rect for a certain index. | |
| void | CoreGraphics::CmdSetStencilRef (const CmdBufferId id, const uint frontRef, const uint backRef) |
| Set the stencil reference values. | |
| void | CoreGraphics::CmdSetStencilReadMask (const CmdBufferId id, const uint readMask) |
| Set the stencil read mask (compare mask(. | |
| void | CoreGraphics::CmdSetStencilWriteMask (const CmdBufferId id, const uint writeMask) |
| Set the stencil write mask. | |
| void | CoreGraphics::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. | |
| void | CoreGraphics::CmdStartOcclusionQueries (const CmdBufferId id) |
| Start occlusion queries. | |
| void | CoreGraphics::CmdEndOcclusionQueries (const CmdBufferId id) |
| End occlusion queries. | |
| void | CoreGraphics::CmdStartPipelineQueries (const CmdBufferId id) |
| Start pipeline statistics. | |
| void | CoreGraphics::CmdEndPipelineQueries (const CmdBufferId id) |
| End pipeline statistics. | |
| void | CoreGraphics::CmdBeginMarker (const CmdBufferId id, const Math::vec4 &color, const char *name) |
| void | CoreGraphics::CmdEndMarker (const CmdBufferId id) |
| void | CoreGraphics::CmdInsertMarker (const CmdBufferId id, const Math::vec4 &color, const char *name) |
| void | CoreGraphics::CmdFinishQueries (const CmdBufferId id) |
| Finish queries. | |
| #define N_CMD_SCOPE | ( | x, | |
| y, | |||
| z ) |
| #define NEBULA_GRAPHICS_DEBUG_SET_NAME | ( | cmd, | |
| x ) |