|
A collection of functions used by cmds objects to do deferred cmd recording. More...
#include <ops.h>
Static Public Member Functions | |
static HGIGL_API HgiGLOpsFn | PushDebugGroup (const char *label) |
static HGIGL_API HgiGLOpsFn | PopDebugGroup () |
static HGIGL_API HgiGLOpsFn | CopyTextureGpuToCpu (HgiTextureGpuToCpuOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyTextureCpuToGpu (HgiTextureCpuToGpuOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyBufferGpuToGpu (HgiBufferGpuToGpuOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyBufferCpuToGpu (HgiBufferCpuToGpuOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyBufferGpuToCpu (HgiBufferGpuToCpuOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyTextureToBuffer (HgiTextureToBufferOp const ©Op) |
static HGIGL_API HgiGLOpsFn | CopyBufferToTexture (HgiBufferToTextureOp const ©Op) |
static HGIGL_API HgiGLOpsFn | ResolveFramebuffer (HgiGLDevice *device, HgiGraphicsCmdsDesc const &graphicsCmds) |
static HGIGL_API HgiGLOpsFn | SetViewport (GfVec4i const &vp) |
static HGIGL_API HgiGLOpsFn | SetScissor (GfVec4i const &sc) |
static HGIGL_API HgiGLOpsFn | BindPipeline (HgiGraphicsPipelineHandle pipeline) |
static HGIGL_API HgiGLOpsFn | BindPipeline (HgiComputePipelineHandle pipeline) |
static HGIGL_API HgiGLOpsFn | BindResources (HgiResourceBindingsHandle resources) |
static HGIGL_API HgiGLOpsFn | SetConstantValues (HgiGraphicsPipelineHandle pipeline, HgiShaderStage stages, uint32_t bindIndex, uint32_t byteSize, const void *data) |
static HGIGL_API HgiGLOpsFn | SetConstantValues (HgiComputePipelineHandle pipeline, uint32_t bindIndex, uint32_t byteSize, const void *data) |
static HGIGL_API HgiGLOpsFn | BindVertexBuffers (HgiVertexBufferBindingVector const &bindings) |
static HGIGL_API HgiGLOpsFn | Draw (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, uint32_t vertexCount, uint32_t baseVertex, uint32_t instanceCount, uint32_t baseInstance) |
static HGIGL_API HgiGLOpsFn | DrawIndirect (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride) |
static HGIGL_API HgiGLOpsFn | DrawIndexed (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &indexBuffer, uint32_t indexCount, uint32_t indexBufferByteOffset, uint32_t baseVertex, uint32_t instanceCount, uint32_t baseInstance) |
static HGIGL_API HgiGLOpsFn | DrawIndexedIndirect (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &indexBuffer, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride) |
static HGIGL_API HgiGLOpsFn | BindFramebufferOp (HgiGLDevice *device, HgiGraphicsCmdsDesc const &desc) |
static HGIGL_API HgiGLOpsFn | Dispatch (int dimX, int dimY) |
static HGIGL_API HgiGLOpsFn | FillBuffer (HgiBufferHandle const &buffer, uint8_t value) |
static HGIGL_API HgiGLOpsFn | GenerateMipMaps (HgiTextureHandle const &texture) |
static HGIGL_API HgiGLOpsFn | InsertMemoryBarrier (HgiMemoryBarrier barrier) |
A collection of functions used by cmds objects to do deferred cmd recording.
Modern API's support command buffer recording of gfx commands ('deferred'). Meaning: No commands are executed on the GPU until we Submit the cmd buffer.
OpenGL uses 'immediate' mode instead where gfx commands are immediately processed and given to the GPU at a time of the drivers choosing. We use 'Ops' functions to record our OpenGL function in a list and only execute them in OpenGL during the SubmitCmds phase.
This has two benefits: