| OpenGL | FrameGraph |
|---|---|
| glBufferData, glBufferSubData | UpdateBuffer task |
| glTexImage*, glTexSubImage*, glCompressedTexImage*. glCompressedTexSubImage* | UpdateImage task |
| OpenGL | FrameGraph |
|---|---|
| glMapBuffer, glMapBufferRange | FrameGraph::UpdateHostBuffer or FrameGraph::MapBufferRange |
| OpenGL | FrameGraph |
|---|---|
| glGetBufferSubData | ReadBuffer task |
| glGetTextureSubImage | ReadImage task |
| glGetCompressedTextureSubImage | ReadImage task |
| OpenGL | FrameGraph |
|---|---|
| glCopyBufferSubData | CopyBuffer task |
| glCopyImageSubData | CopyImage task |
| glBindBuffer(GL_PIXEL_UNPACK_BUFFER, ...) + glTexSubImage* | CopyBufferToImage task |
| glBindBuffer(GL_PIXEL_PACK_BUFFER, ...) + glGetTextureSubImage | CopyImageToBuffer task |
| glClearBufferData | FillBuffer task |
| glClearTexImage, glClearTexSubImage | ClearColorImage or ClearDepthStencilImage tasks |
| glBlitFramebuffer | BlitImage or ResolveImage tasks |
| OpenGL | FrameGraph |
|---|---|
| glCreateFramebuffers, glCreateRenderbuffers | FrameGraph::CreateRenderPass |
| glFramebufferTexture* | RenderPassDesc::AddTarget |
| glClear, glClearColor, glClearDepth, glClearBuffer*, glClearNamedFramebuffer* | clearValue parameter in RenderPassDesc::AddTarget |
| glInvalidateFramebuffer | storeOp parameter with EAttachmentStoreOp::Invalidate in RenderPassDesc::AddTarget |
| OpenGL | FrameGraph |
|---|---|
| color | |
| glBlendColor | RenderPassDesc::SetBlendColor |
| glBlendEquation*, glBlendEquationSeparate* | RenderPassDesc::AddColorBuffer or DrawTask::AddColorBuffer |
| glBlendFunc*, glBlendFuncSeparate* | RenderPassDesc::AddColorBuffer or DrawTask::AddColorBuffer |
| glColorMask | RenderPassDesc::AddColorBuffer or DrawTask::AddColorBuffer |
| glLogicOp | RenderPassDesc::SetLogicOp |
| depth | |
| glEnable(GL_DEPTH_TEST) | RenderPassDesc::SetDepthTestEnabled or DrawTask::SetDepthTestEnabled |
| glDepthMask | RenderPassDesc::SetDepthWriteEnabled or DrawTask::SetDepthWriteEnabled |
| glDepthFunc | RenderPassDesc::SetDepthCompareOp or DrawTask::SetDepthCompareOp |
| stencil | |
| glEnable(GL_STENCIL_TEST) | RenderPassDesc::SetStencilTestEnabled or DrawTask::SetStencilTestEnabled |
| glStencilOp, glStencilOpSeparate | RenderPassDesc::SetStencilFrontFaceFailOp, SetStencilFrontFaceDepthFailOp, SetStencilFrontFacePassOp, SetStencilBackFaceFailOp, SetStencilBackFaceDepthFailOp, SetStencilBackFacePassOp |
| glStencilOp | DrawTask::SetStencilFailOp, SetStencilDepthFailOp, SetStencilPassOp |
| glStencilFunc, glStencilFuncSeparate | RenderPassDesc::SetStencilFrontFaceCompareOp, SetStencilFrontFaceReference, SetStencilFrontFaceCompareMask |
| glStencilFunc | DrawTask::SetStencilRef, SetStencilCompareMask |
| glStencilMask, glStencilMaskSeparate | RenderPassDesc::SetStencilFrontFaceWriteMask, SetStencilBackFaceWriteMask |
| glStencilMask | DrawTask::SetStencilWriteMask |
| rasterizer | |
| glEnable(GL_DEPTH_CLAMP) | RenderPassDesc::SetDepthClampEnabled |
| glPolygonOffset | RenderPassDesc::SetDepthBias or SetDepthBiasConstFactor, SetDepthBiasClamp, SetDepthBiasSlopeFactor |
| glPolygonMode | RenderPassDesc::SetPolygonMode |
| glLineWidth | RenderPassDesc::SetLineWidth |
| glEnable(GL_RASTERIZER_DISCARD) | RenderPassDesc::SetRasterizerDiscard or DrawTask::SetRasterizerDiscard |
| glCullFace | RenderPassDesc::SetCullMode or DrawTask::SetCullMode |
| glFrontFace | RenderPassDesc::SetFrontFaceCCW or DrawTask::SetFrontFaceCCW |
| multisample | |
| glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE) | RenderPassDesc::SetAlphaToCoverageEnabled |
| glEnable(GL_SAMPLE_ALPHA_TO_ONE) | RenderPassDesc::SetAlphaToOneEnabled |
| glEnable(GL_SAMPLE_SHADING) | RenderPassDesc::SetSampleShadingEnabled |
| glSampleMaski | RenderPassDesc::SetSampleMask, second parameter in SetMultiSamples |
| glMinSampleShading | RenderPassDesc::SetMinSampleShading |
| viewport & scissor | |
| glViewport*, glDepthRange* | RenderPassDesc::AddViewport |
| glScissor* | DrawTask::AddScissor |
DrawTask - may be any of DrawVertices, DrawIndexed, DrawVerticesIndirect, DrawIndexedIndirect, DrawMeshes, DrawMeshesIndirect.
| OpenGL | FrameGraph |
|---|---|
| glDrawArrays, glDrawArraysInstanced, glDrawArraysInstancedBaseInstance | DrawVertices task |
| glDrawElements, glDrawElementsInstanced, glDrawElementsBaseVertex | DrawIndexed task |
| glDrawElementsInstancedBaseInstance, glDrawElementsInstancedBaseVertex | DrawIndexed task |
| glDrawElementsInstancedBaseVertexBaseInstance | DrawIndexed task |
| glDrawRangeElements, glDrawRangeElementsBaseVertex | DrawIndexed task |
| glDrawArraysIndirect | DrawVerticesInstanced task |
| glDrawElementsIndirect | DrawIndexedInstanced task |
| glMultiDrawArrays | DrawVertices task |
| glMultiDrawArraysIndirect, glMultiDrawElementsIndirect | none |
| glMultiDrawElements, glMultiDrawElementsBaseVertex | DrawIndexed task |
| OpenGL | FrameGraph |
|---|---|
| glDispatchCompute | DispatchCompute task |
| glDispatchComputeIndirect | DispatchComputeIndirect task |
| OpenGL | FrameGraph |
|---|---|
| glUniform* | not supported, use DrawTask::AddPushConstant instead |
| glUniformBlockBinding | not supported |
| glBindBufferBase, glBindBufferRange | PipelineResources::BindBuffer |
| glBindTextureUnit | PipelineResources::BindTexture |
| glBindImageTexture | PipelineResources::BindImage |
| glBindSampler | PipelineResources::BindSampler, BindTexture |
use DrawTask::AddResources, RenderPassDesc::AddResources or ComputeTask::AddResources for applying uniforms to draw/compute command.
| OpenGL | FrameGraph |
|---|---|
| glBindVertexArray | DrawTask::SetVertexInput |
| glBindVertexBuffer | DrawTask::AddBuffer |
| glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ...) | DrawTask::SetIndexBuffer |
DrawTask - may be any of DrawVertices, DrawIndexed, DrawVerticesIndirect, DrawIndexedIndirect.
| OpenGL | FrameGraph |
|---|---|
| glFenceSync + glClientWaitSync | FrameGraph::Wait for command buffers |
| glFenceSync + glWaitSync | add dependency between command buffers by specializing dependsOn parameter in FrameGraph::Begin or by calling CommandBuffer::AddDependency |
| glTextureBarrier | placed automaticaly |
| glFlush | FrameGraph::Flush |
| glFinish | FrameGraph::WaitIdle |