![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qrhimetal_p.h>
Classes | |
| struct | TessDrawArgs |
Static Public Member Functions | |
| static bool | probe (QRhiMetalInitParams *params) |
| static QRhiSwapChainProxyData | updateSwapChainProxyData (QWindow *window) |
| Static Public Member Functions inherited from QRhiImplementation | |
| static QRhiImplementation * | newInstance (QRhi::Implementation impl, QRhiInitParams *params, QRhiNativeHandles *importDevice) |
| static const QRhiShaderResourceBinding::Data * | shaderResourceBindingData (const QRhiShaderResourceBinding &binding) |
| static QRhiShaderResourceBinding::Data * | shaderResourceBindingData (QRhiShaderResourceBinding &binding) |
| static bool | sortedBindingLessThan (const QRhiShaderResourceBinding &a, const QRhiShaderResourceBinding &b) |
Public Attributes | |
| QRhi::Flags | rhiFlags |
| bool | importedDevice = false |
| bool | importedCmdQueue = false |
| QMetalSwapChain * | currentSwapChain = nullptr |
| QSet< QMetalSwapChain * > | swapchains |
| QRhiMetalNativeHandles | nativeHandlesStruct |
| QRhiDriverInfo | driverInfoStruct |
| quint32 | osMajor = 0 |
| quint32 | osMinor = 0 |
| struct { | |
| int maxTextureSize = 4096 | |
| bool baseVertexAndInstance = true | |
| QVector< int > supportedSampleCounts | |
| bool isAppleGPU = false | |
| int maxThreadGroupSize = 512 | |
| bool multiView = false | |
| bool indirectCommandBuffers = false | |
| bool shadingRateMap = false | |
| bool depthClamp = true | |
| } | caps |
| QRhiMetalData * | d = nullptr |
| Public Attributes inherited from QRhiImplementation | |
| QRhi * | q |
| bool | debugMarkers = false |
| int | currentFrameSlot = 0 |
| bool | inFrame = false |
| QRhiAdapter * | requestedRhiAdapter = nullptr |
Static Public Attributes | |
| static const int | SUPPORTED_STAGES = 5 |
| Static Public Attributes inherited from QRhiImplementation | |
| static const int | MAX_SHADER_CACHE_ENTRIES = 128 |
Definition at line 380 of file qrhimetal_p.h.
| QRhiMetal::QRhiMetal | ( | QRhiMetalInitParams * | params, |
| QRhiMetalNativeHandles * | importDevice = nullptr ) |
Definition at line 534 of file qrhimetal.mm.
References QRhiMetalData::QRhiMetalData(), d, importedCmdQueue, and importedDevice.
| QRhiMetal::~QRhiMetal | ( | ) |
Definition at line 554 of file qrhimetal.mm.
References d.
| void QRhiMetal::adjustForMultiViewDraw | ( | quint32 * | instanceCount, |
| QRhiCommandBuffer * | cb ) |
Definition at line 2579 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalBuffer::d, QMetalGraphicsPipeline::d, and QMetalGraphicsPipelineData::ExtraBufferManager::HostVisible.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3956 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::resetPerPassState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3075 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3092 of file qrhimetal.mm.
References currentSwapChain, QMetalSwapChainRenderTarget::d, d, QMetalSwapChain::ds, executeDeferredReleases(), finishActiveReadbacks(), QMetalRenderTargetData::ColorAtt::needsDrawableForResolveTex, QMetalRenderTargetData::ColorAtt::needsDrawableForTex, QMetalSwapChain::rtWrapper, and QMetalSwapChain::samples.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3249 of file qrhimetal.mm.
References d, executeDeferredReleases(), and finishActiveReadbacks().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3756 of file qrhimetal.mm.
References QMetalRenderTargetData::colorAttCount, QMetalTextureRenderTarget::create(), currentSwapChain, QMetalCommandBuffer::d, QMetalSwapChain::d, QMetalSwapChainRenderTarget::d, QMetalTextureRenderTarget::d, d, QMetalRenderTargetData::dsAttCount, enqueueResourceUpdates(), QMetalRenderTargetData::ColorAtt::needsDrawableForResolveTex, QMetalRenderTargetData::ColorAtt::needsDrawableForTex, QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and QMetalCommandBuffer::resetPerPassState().
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4533 of file qrhimetal.mm.
References QMetalIndirectCommandBufferData::builtSlot, QMetalIndirectCommandBuffer::d, d, QMetalIndirectCommandBufferData::Slot::encoded, executeBufferHostWritesForCurrentFrame(), QMetalIndirectCommandBufferData::fallbackBuild, QMetalIndirectCommandBufferData::Gpu, QMetalIndirectCommandBufferData::gpuFilled, QMetalCommandBuffer::NoPass, qrhimtl_ensureIcbSlots(), and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 830 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4274 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 610 of file qrhimetal.mm.
References d, and importedDevice.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 805 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1241 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1236 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4268 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1204 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1218 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1246 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1225 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 800 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1211 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1230 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3035 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3048 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3060 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 725 of file qrhimetal.mm.
References d, executeDeferredReleases(), finishActiveReadbacks(), and QRhiMetalData::icbSetupFailed.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4000 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4010 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, executeBufferHostWritesForCurrentFrame(), and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2612 of file qrhimetal.mm.
References QRhiMetal::TessDrawArgs::cbD, QMetalCommandBuffer::currentGraphicsPipeline, QMetalGraphicsPipeline::d, QRhiMetal::TessDrawArgs::NonIndexed, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and tessellatedDraw().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2641 of file qrhimetal.mm.
References QRhiMetal::TessDrawArgs::cbD, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentIndexBuffer, QMetalGraphicsPipeline::d, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and tessellatedDraw().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2999 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, executeBufferHostWritesForCurrentFrame(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4052 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2972 of file qrhimetal.mm.
References executeBufferHostWritesForCurrentFrame(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4033 of file qrhimetal.mm.
References icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1043 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3971 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3080 of file qrhimetal.mm.
References QMetalCommandBuffer::resetPerPassCachedState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3148 of file qrhimetal.mm.
References QMetalSwapChain::currentFrameSlot, currentSwapChain, QMetalSwapChain::d, QMetalSwapChain::frameCount, and QMTL_FRAMES_IN_FLIGHT.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3273 of file qrhimetal.mm.
References d, and finishActiveReadbacks().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3941 of file qrhimetal.mm.
References enqueueResourceUpdates(), finalizeDeferredStoreActions(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
| void QRhiMetal::enqueueResourceUpdates | ( | QRhiCommandBuffer * | cb, |
| QRhiResourceUpdateBatch * | resourceUpdates ) |
Definition at line 3519 of file qrhimetal.mm.
References QRhiResourceUpdateBatchPrivate::activeBufferOpCount, QRhiResourceUpdateBatchPrivate::activeTextureOpCount, QRhiResourceUpdateBatchPrivate::TextureOp::Copy, currentSwapChain, QMetalBuffer::d, QMetalSwapChain::d, QMetalSwapChainRenderTarget::d, QMetalTexture::d, d, QRhiResourceUpdateBatchPrivate::BufferOp::data, QRhiResourceUpdateBatchPrivate::TextureOp::dst, QRhiResourceUpdateBatchPrivate::BufferOp::DynamicUpdate, executeBufferHostWritesForCurrentFrame(), QRhiResourceUpdateBatchPrivate::free(), QRhiResourceUpdateBatchPrivate::TextureOp::GenMips, QRhiResourceUpdateBatchPrivate::get(), QMTL_FRAMES_IN_FLIGHT, QRhiResourceUpdateBatchPrivate::BufferOp::Read, QRhiResourceUpdateBatchPrivate::TextureOp::Read, QMetalSwapChain::rtWrapper, QMetalTexture::samples, QMetalBufferData::slotted, QRhiResourceUpdateBatchPrivate::TextureOp::src, QRhiMetalData::DeferredReleaseEntry::StagingBuffer, QRhiResourceUpdateBatchPrivate::BufferOp::StaticUpload, QRhiMetalData::DeferredReleaseEntry::type, QRhiResourceUpdateBatchPrivate::BufferOp::type, QRhiResourceUpdateBatchPrivate::TextureOp::type, and QRhiResourceUpdateBatchPrivate::TextureOp::Upload.
Referenced by beginComputePass(), beginPass(), endComputePass(), endPass(), and resourceUpdate().
| void QRhiMetal::enqueueShaderResourceBindings | ( | QMetalShaderResourceBindings * | srbD, |
| QMetalCommandBuffer * | cbD, | ||
| int | dynamicOffsetCount, | ||
| const QRhiCommandBuffer::DynamicOffset * | dynamicOffsets, | ||
| bool | offsetOnlyChange, | ||
| const QShader::NativeResourceBindingMap * | nativeResourceBindingMaps[SUPPORTED_STAGES], | ||
| const QMetalShader * | shaders[SUPPORTED_STAGES] ) |
Definition at line 1442 of file qrhimetal.mm.
References QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::d, d, QMetalShaderResourceBindingsData::FRAGMENT, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, SUPPORTED_STAGES, QMetalShaderResourceBindingsData::TESSCTRL, QMetalShaderResourceBindingsData::TESSEVAL, ubufAlignment(), QMetalShaderResourceBindingsData::Stage::usesArgumentBuffer, and QMetalShaderResourceBindingsData::VERTEX.
| void QRhiMetal::enqueueSubresUpload | ( | QMetalTexture * | texD, |
| void * | mp, | ||
| void * | blitEncPtr, | ||
| int | layer, | ||
| int | level, | ||
| const QRhiTextureSubresourceUploadDescription & | subresDesc, | ||
| qsizetype * | curOfs ) |
Definition at line 3383 of file qrhimetal.mm.
| void QRhiMetal::executeBufferHostWritesForCurrentFrame | ( | QMetalBuffer * | bufD | ) |
Definition at line 3744 of file qrhimetal.mm.
References executeBufferHostWritesForSlot().
Referenced by buildIndirect(), dispatchIndirect(), drawIndexedIndirect(), drawIndirect(), enqueueResourceUpdates(), icbDraw(), setShaderResources(), and setVertexInput().
| void QRhiMetal::executeBufferHostWritesForSlot | ( | QMetalBuffer * | bufD, |
| int | slot ) |
Definition at line 3721 of file qrhimetal.mm.
References QMetalBuffer::d.
Referenced by executeBufferHostWritesForCurrentFrame(), and QMetalBuffer::nativeBuffer().
| void QRhiMetal::executeDeferredReleases | ( | bool | forced = false | ) |
Definition at line 4638 of file qrhimetal.mm.
References QRhiMetalData::DeferredReleaseEntry::Buffer, d, qrhimtl_releaseBuffer(), qrhimtl_releaseRenderBuffer(), qrhimtl_releaseSampler(), qrhimtl_releaseTexture(), QRhiMetalData::DeferredReleaseEntry::RenderBuffer, QRhiMetalData::DeferredReleaseEntry::Sampler, QRhiMetalData::DeferredReleaseEntry::Texture, and QRhiMetalData::DeferredReleaseEntry::type.
Referenced by beginFrame(), beginOffscreenFrame(), destroy(), and finish().
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4396 of file qrhimetal.mm.
References QMetalIndirectCommandBufferData::builtSlot, QMetalIndirectCommandBufferData::Cpu, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentIndexBuffer, QMetalGraphicsPipeline::d, QMetalIndirectCommandBuffer::d, d, QMetalIndirectCommandBufferData::fallbackBuild, QMetalIndirectCommandBufferData::gpuFilled, icbUnavailableReason(), qrhimtl_ensureIcbSlots(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
| void QRhiMetal::finalizeDeferredStoreActions | ( | QMetalCommandBuffer * | cbD, |
| bool | passIsEnding ) |
Definition at line 2276 of file qrhimetal.mm.
Referenced by endPass(), and interruptRenderPass().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3292 of file qrhimetal.mm.
References currentSwapChain, d, executeDeferredReleases(), finishActiveReadbacks(), and QMetalCommandBuffer::NoPass.
| void QRhiMetal::finishActiveReadbacks | ( | bool | forced = false | ) |
Definition at line 4685 of file qrhimetal.mm.
References d.
Referenced by beginFrame(), beginOffscreenFrame(), destroy(), endOffscreenFrame(), and finish().
| bool QRhiMetal::icbDraw | ( | QMetalCommandBuffer * | cbD, |
| bool | indexed, | ||
| QMetalBuffer * | indirectBufD, | ||
| quint32 | indirectBufferOffset, | ||
| QMetalBuffer * | countBufD, | ||
| quint32 | countBufferOffset, | ||
| quint32 | maxDrawCount, | ||
| quint32 | stride ) |
Definition at line 2869 of file qrhimetal.mm.
References QMetalCommandBufferData::currentFirstVertexBinding, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentIndexBuffer, QMetalCommandBuffer::d, QMetalGraphicsPipeline::d, d, executeBufferHostWritesForCurrentFrame(), QMetalShaderResourceBindingsData::FRAGMENT, interruptRenderPass(), QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), rebindShaderResources(), and QMetalShaderResourceBindingsData::VERTEX.
| const char * QRhiMetal::icbUnavailableReason | ( | QMetalCommandBuffer * | cbD | ) | const |
Definition at line 2692 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalGraphicsPipeline::d, and QMetalGraphicsPipelineData::icbCapable.
Referenced by drawIndexedIndirectCount(), drawIndirectCount(), and executeIndirect().
| void QRhiMetal::interruptRenderPass | ( | QMetalCommandBuffer * | cbD | ) |
Definition at line 2294 of file qrhimetal.mm.
References finalizeDeferredStoreActions().
Referenced by icbDraw(), and tempComputeEncoder().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 825 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1074 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 874 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 841 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 815 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 820 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3086 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBufferData::lastGpuTime.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1055 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1038 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3070 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1089 of file qrhimetal.mm.
References QMetalPipelineCacheDataHeader::driver, and f().
| bool QRhiMetal::prepareIcb | ( | quint32 | maxDrawCount | ) |
Definition at line 2771 of file qrhimetal.mm.
References d, prepareIcbKernels(), QRhiMetalData::DeferredReleaseEntry::StagingIcbBuffer, and QRhiMetalData::DeferredReleaseEntry::type.
| bool QRhiMetal::prepareIcbKernels | ( | ) |
Definition at line 2712 of file qrhimetal.mm.
References d, and QRhiMetalData::icbSetupFailed.
Referenced by prepareIcb(), and qrhimtl_ensureIcbSlots().
|
static |
Definition at line 565 of file qrhimetal.mm.
|
overridevirtual |
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 996 of file qrhimetal.mm.
References QMTL_FRAMES_IN_FLIGHT.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3749 of file qrhimetal.mm.
References enqueueResourceUpdates().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2212 of file qrhimetal.mm.
References QMetalCommandBuffer::hasBlendConstantsSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3983 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, and QMetalCommandBuffer::recordingPass.
| void QRhiMetal::setDefaultScissor | ( | QMetalCommandBuffer * | cbD | ) |
Definition at line 2118 of file qrhimetal.mm.
References Bounded, and QMetalCommandBuffer::hasCustomScissorSet.
Referenced by endTempComputeEncoding(), setGraphicsPipeline(), and setViewport().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1733 of file qrhimetal.mm.
References QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalGraphicsPipeline::d, QMetalCommandBuffer::hasCustomScissorSet, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and setDefaultScissor().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1142 of file qrhimetal.mm.
References d, and QMetalPipelineCacheDataHeader::driver.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1061 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2187 of file qrhimetal.mm.
References Bounded, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::hasCustomScissorSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1766 of file qrhimetal.mm.
References QMetalComputePipelineData::bufferSizeBuffer, QMetalGraphicsPipelineData::bufferSizeBuffer, QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentComputeSrb, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentGraphicsSrb, QMetalCommandBuffer::currentResSlot, QMetalBuffer::d, QMetalComputePipeline::d, QMetalGraphicsPipeline::d, executeBufferHostWritesForCurrentFrame(), QMetalShaderResourceBindingsData::FRAGMENT, QMetalShaderResourceBindings::lastUsedComputePipeline, QMetalShaderResourceBindings::lastUsedGraphicsPipeline, QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, QMetalBufferData::slotted, SUPPORTED_STAGES, QMetalShaderResourceBindingsData::TESSCTRL, QMetalShaderResourceBindingsData::TESSEVAL, and QMetalShaderResourceBindingsData::VERTEX.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2235 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2224 of file qrhimetal.mm.
References QMetalCommandBuffer::hasStencilRefSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2059 of file qrhimetal.mm.
References QMetalCommandBufferData::currentFirstVertexBinding, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentGraphicsSrb, QMetalCommandBuffer::currentIndexBuffer, QMetalCommandBuffer::d, executeBufferHostWritesForCurrentFrame(), QMetalShaderResourceBindings::maxBinding, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2144 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, setDefaultScissor(), and UnBounded.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1048 of file qrhimetal.mm.
| qsizetype QRhiMetal::subresUploadByteSize | ( | const QRhiTextureSubresourceUploadDescription & | subresDesc | ) | const |
Definition at line 3373 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Implements QRhiImplementation.
Definition at line 794 of file qrhimetal.mm.
| void QRhiMetal::tessellatedDraw | ( | const TessDrawArgs & | args | ) |
Definition at line 2389 of file qrhimetal.mm.
References QRhiMetal::TessDrawArgs::cbD, QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::currentGraphicsPipeline, QMetalBuffer::d, QMetalCommandBuffer::d, QMetalGraphicsPipeline::d, QMetalShaderResourceBindingsData::FRAGMENT, QMetalGraphicsPipelineData::ExtraBufferManager::HostVisible, QMetalGraphicsPipelineData::Tessellation::inControlPointCount, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), QRhiMetal::TessDrawArgs::NonIndexed, rebindShaderResources(), QMetalShaderResourceBindingsData::TESSCTRL, QMetalShaderResourceBindingsData::TESSEVAL, and QMetalShaderResourceBindingsData::VERTEX.
Referenced by draw(), and drawIndexed().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 810 of file qrhimetal.mm.
Referenced by enqueueShaderResourceBindings().
|
static |
Definition at line 7863 of file qrhimetal.mm.
| bool QRhiMetal::baseVertexAndInstance = true |
Definition at line 597 of file qrhimetal_p.h.
| struct { ... } QRhiMetal::caps |
| QMetalSwapChain* QRhiMetal::currentSwapChain = nullptr |
Definition at line 588 of file qrhimetal_p.h.
Referenced by beginFrame(), beginPass(), endFrame(), enqueueResourceUpdates(), and finish().
| QRhiMetalData* QRhiMetal::d = nullptr |
Definition at line 607 of file qrhimetal_p.h.
Referenced by QRhiMetal(), ~QRhiMetal(), beginFrame(), beginOffscreenFrame(), beginPass(), buildIndirect(), QMetalComputePipeline::create(), QMetalSampler::create(), create(), QMetalSwapChain::createOrResize(), QMetalGraphicsPipeline::createTessellationPipelines(), QMetalGraphicsPipeline::createVertexFragmentPipeline(), QMetalBuffer::destroy(), QMetalComputePipeline::destroy(), QMetalGraphicsPipeline::destroy(), QMetalRenderBuffer::destroy(), QMetalSampler::destroy(), QMetalShadingRateMap::destroy(), QMetalTexture::destroy(), destroy(), endOffscreenFrame(), enqueueResourceUpdates(), enqueueShaderResourceBindings(), executeDeferredReleases(), executeIndirect(), finish(), finishActiveReadbacks(), icbDraw(), prepareIcb(), prepareIcbKernels(), qrhimtl_releaseIcbSlots(), releaseCachedResources(), setPipelineCacheData(), QMetalGraphicsPipelineData::Tessellation::tescCompPipeline(), QMetalGraphicsPipelineData::Tessellation::teseFragRenderPipeline(), and QMetalGraphicsPipelineData::Tessellation::vsCompPipeline().
| bool QRhiMetal::depthClamp = true |
Definition at line 604 of file qrhimetal_p.h.
| QRhiDriverInfo QRhiMetal::driverInfoStruct |
Definition at line 591 of file qrhimetal_p.h.
| bool QRhiMetal::importedCmdQueue = false |
Definition at line 587 of file qrhimetal_p.h.
Referenced by QRhiMetal().
| bool QRhiMetal::importedDevice = false |
Definition at line 586 of file qrhimetal_p.h.
Referenced by QRhiMetal(), and create().
| bool QRhiMetal::indirectCommandBuffers = false |
Definition at line 602 of file qrhimetal_p.h.
| bool QRhiMetal::isAppleGPU = false |
Definition at line 599 of file qrhimetal_p.h.
| int QRhiMetal::maxTextureSize = 4096 |
Definition at line 596 of file qrhimetal_p.h.
| int QRhiMetal::maxThreadGroupSize = 512 |
Definition at line 600 of file qrhimetal_p.h.
| bool QRhiMetal::multiView = false |
Definition at line 601 of file qrhimetal_p.h.
| QRhiMetalNativeHandles QRhiMetal::nativeHandlesStruct |
Definition at line 590 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMajor = 0 |
Definition at line 592 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMinor = 0 |
Definition at line 593 of file qrhimetal_p.h.
| QRhi::Flags QRhiMetal::rhiFlags |
Definition at line 585 of file qrhimetal_p.h.
| bool QRhiMetal::shadingRateMap = false |
Definition at line 603 of file qrhimetal_p.h.
|
static |
Definition at line 546 of file qrhimetal_p.h.
Referenced by enqueueShaderResourceBindings(), and setShaderResources().
| QVector< int > QRhiMetal::supportedSampleCounts |
Definition at line 598 of file qrhimetal_p.h.
| QSet<QMetalSwapChain *> QRhiMetal::swapchains |
Definition at line 589 of file qrhimetal_p.h.